Bryan,

Thanks for the thorough review of the sections of the sections of the doc
that I know are of greatest interest to you.  I have made a number of edits
to address your comments, as noted below.

Steve

-----

A malicious CA might revoke a bogus certificate to avoid having browser
vendors take punitive action against the CA and/or to persuade them to not enter the bogus certificate on a vendor-maintained blacklist. However, the CA might provide a “good” OCSP response (from a server it operates) to a targeted user (browser instance) as a way to circumvent the remediation nominally offered by revocation. No component of CT is tasked with detecting this sort of misbehavior by a CA. (The misbehavior is analogous to a log offering split views to different clients. The Audit element of CT is tasked with detecting this sort of attack.)


Just a nitpick: in the parenthetical about “analogous to a log offering split view", may be worth adding a forward-reference to the text below (or just the words “described below”) containing the detailed discussion of that class of attack?

*Fixed.*

3.3 Malicious, Colluding CAs

…

I agree with David Cooper that describing this as “two CAs” is rather strange given the assumption that they have “the same Subject name and public key”. I would call that “One Malicious CA with Two Certificate Chains” or something like that.

*The issue here is whether we define CAs as identical based on their names and public keys, or based on their location in a PKI, or based on their physical instantiation, … . In the example I posed, the CAs are distinct based on two of these three criteria. I’ve edited the text to add a parenthetical discussion of this issue:*

**

*(The following text refers to these as two CAs, because they might be represented by entities that are organizationally distinct, perhaps realized by different physical presences. However, because they share the same name and key pair, one also might view them as the same CA that appears in two cert paths terminating at different TAs.)***
The above next never explicitly describes what the actual relevant attack is, or why exactly “two trust anchors” make the attack back bad and can foil the remediation procedures. It almost does, but not quite. It needs to say something like, “The CA that logged the bogus certificate may get detected and the certificate revoked via that trust anchor, but the same certificate remains usable and un-revoked via the other trust anchor through which the bogus certificate was not logged or revoked.” Or something like that.

*The text you cited is part of describing the attack context, prior to describing the attack per se.*

I guess the text in 3.3.1 does get to discussing this “main point", but only after the reader has waded through the several paragraphs above, without having (yet) been made aware of the whole reason for existence of this whole section. It’s probably best to summarize the attack/implications (and perhaps forward-reference the extended discussion below) in one quick sentence toward the beginning of 3.3.


*The first paragraph of 3.3 describes the goal of the attack and, at a top level how it is effected, which I think suffices. It says:*

**

*There is also the potential that two or more CAs might collude to issue a bogus certificate in a fashion designed to foil the remediation (but not detection) safeguards envisioned by CT. Their goal would be trick a CT-aware browser into accepting a bogus certificate because it was accompanied by a valid SCT, while evading certificate revocation status indications.***

**

…

A compromised (non-malicious) CA may be able to revoke the bogus certificate if it is detected by a Monitor, and the targeted Subject has been notified. It can do so only when the serial number of the bogus certificate is made known to this CA. Also, the bogus certificate cannot have been issued with an Authority Information Access (AIA) or CRL Distribution Point (CRL DP) extension that enables only the malicious twin to revoke the certificate. (The AIA extension in the bogus certificate could be used to direct relying parties to an OCSP server controlled by the malicious twin. The CRL DP extension could be used to direct relying parties to a CRL controlled by the malicious twin.) If the bogus certificate contains either extension, the compromised CA cannot effectively revoke it, but it will also be apparent that the bogus certificate

It’s probably worth clarifying exactly how this is “apparent” and to whom. e.g., something like, “also be apparent to anyone who checks the certificate against the uncompromised log and finds the SCT missing”, assuming that’s what you had in mind. Inferable, but just best to be explicit.

*I have revised the paragraph to clarify what I had in mind:*

**


*A compromised (non-malicious) CA may be able to revoke the bogus certificate if it is detected by a Monitor, and the targeted Subject has been notified. **It can do so only when the serial number of the bogus certificate is made known to this CA and assuming that the bogus certificate was not issued with an Authority Information Access (AIA) or CRL Distribution Point (CRL DP) extension that enables only the malicious twin to revoke the certificate. (The AIA extension in the bogus certificate could be used to direct relying parties to an OCSP server controlled by the malicious twin. The CRL DP extension could be used to direct relying parties to a CRL controlled by the malicious twin.)If the bogus certificate contains either extension, the compromised CA cannot effectively revoke it. However, the presence of either of these extensions provides some evidence that an entity other than the compromised CA issued the certificate in question. (If the extensions differ from those in other certificates issued by the compromised CA, that is suspicious.)*

If the serial number of the bogus certificate is the same as for a valid, not-expired certificate issued by the CA (to the target or to another Subject), then revocation poses a problem. This is because revocation of the bogus

nitpick: extra space between “revocation” and “poses"

*Fixed *



certificate will also invalidate a legitimate certificate. This problem may cause the compromised CA to delay revocation, thus allowing the bogus certificate to remain a danger for a longer time.

Wait - isn’t the basic assumption of this section that the CA’s private key has been stolen? And in that case, shouldn’t the CA’s public key itself be revoked and considered untrustworthy, together with any certificate the CA has signed in the past (or signs in the future) with that key? It seems like even if there is a “legitimate certificate” that was signed by the same key, it should get revoked too! If that’s not the case, then the “why” needs to be clarified in the above paragraph, and it needs to be stated in what situations a relying party may still deem the “legitimate certificate” trustworthy despite being signed by a compromised CA key.



3.4.2 Benign CA, Compromised Log

A benign CA does not issue bogus certificates, except as a result of an accident or attack. So, in normal operation, it is not clear what behavior by a compromised log would yield an attack. If a bogus certificate is issued by a benign CA (under these circumstances) is submitted to a compromised (non-malicious) log, then both an SCT and a log entry will be created. Again, it is not clear what additional adverse actions the compromised log would perform to further an attack on CT.

Although not quite as worrisome as other attacks in practice, there is a DoS/censorship attack opportunity through equivocation here that might be worth mentioning. In particular, the compromised log could provide an SCT for a legitimate cert, and include the cert in a version of the log it shows most people, but then the compromised log server (or an evil twin of it) could send targeted relying parties a different log history that doesn’t include the legitimate cert. As a result, a web browser run by a targeted user will find the cert missing from the log and inform the user that the web site may be insecure/compromised, thus making the user (falsely) think the web site is broken rather than the log server.

Of course, if the targeted user’s web browser can and does gossip STHs with benign CT servers, the discrepancy between the log server’s two histories will be detectable, and it will become known that the log server is compromised. However, if the user’s web browser is unable to gossip STHs with benign CT servers (e.g., because the only trusted auditor(s) are blocked), or if the browser is unwilling to gossip STHs for privacy reasons, or just doesn’t want the state/storage costs of tracking and gossiping all log-servers’ STH histories, then the attack might go undetected and the user might persistently think the web site itself is compromised or just broken. This might actually be a behavior desired by the attacker (effectively block the website but make the user think it’s the website’s fault) in some state-censorship type scenarios.


*I have added the following paragraphs just before 3.4.3, to better explain the impact of log compromise.*

**

*It is worth noting that if a benign CA was attacked and thus issued one or more bogus certificates, then a colluding, malicious log might provide split views of its log to help conceal the bogus certificate from targeted users. Specifically, the log would show an accurate set of log entries (and STHs) to most clients, but would maintain a separate log view for targeted users. This sort of attack motivates the need for Audit capabilities based on “gossiping” [gossip]. However, even if such mechanisms are employed, they might be thwarted if a user is unable to exchange log information with trustworthy partners.*

**

3.4.3 Compromised CA, Compromised Log

As noted in 3.4.1, an evil twin CA may issue a bogus certificate that contains the same Subject name as a legitimate certificate issued by the compromised CA. Alternatively, the bogus certificate may contain a different name but reuse a serial number from a valid, not revoked certificate issued by that CA.

The evil twin CA might submit a bogus certificate to the evil twin of a compromised log. The operator of the evil

I would make it explicit here that the “evil twin CA” and the “evil twin of a compromised log” are very likely to be one and the same, i.e., just the attacker himself. Perhaps just “…of a compromised log (which may be the same attacker)."


*I added a new, 2^nd paragraph to 3.4.3:*

**

*An attacker who compromises a log might act in one of two ways. It might use the private key of the log only to generate SCTs for a malicious CA or the evil twin of a compromised CA. If a browser checks the signature on an SCT but does not contact a log to verify that the certificate appears in the log, then this is an effective attack strategy. Alternatively, the attacker might not only generate SCTs, but also pose as the compromised log, at least with regard to requests from targeted users. In the latter case, this “evil twin” log could respond to STH requests from targeted users, making appear that the compromised log was offering a split view (thus acting as a malicious log). To detect this attack an Auditor needs to employ a gossip mechanism that is able to acquire CT data from diverse sources, a feature not yet part of the base CT system.*

**

*I revised the start of the next paragraph to say:*

*The evil twin CA might submit a bogus certificate to the evil twin of a compromised log. (The same adversary may be controlling both.)*

twin log can use the purloined private key to generate SCTs for certificates that have not been logged by its legitimate counterpart. These SCTs will appear valid relative to the public key associated with the legitimate log. However, an STH issued by the legitimate log will not correspond to a tree containing these SCTs. Thus thorough checking of the SCTs issued by the evil twin log will identify this discrepancy.

"Thorough checking" by whom, against what reference point?

*I revised the text to clarify what I had in mind.*

**

*However, an STH issued by the legitimate log will not correspond to a tree (maintained by the compromised log) containing these SCTs. Thus checking the SCTs issued by the evil twin log against STHs from the compromised log will identify this discrepancy. As noted above, if an attacker uses the key to generate log entries and respond to log queries, like an evil twin CA, the effect is analogous to a malicious log.)***

Here it is important to bring out the question (again) of whether the relying party or parties targeted with this attack can, or do, gossip with uncompromised CT entities in order to be able to do that cross-checking.

*I believe the revised text cited above makes this clearer.*

If the compromised CA and compromised server are giving those bad certs and bad SCTs to a large body of users, at least some of whom check STH inclusion proofs and gossip regularly with uncompromised CT log servers, auditors, or monitors, then they will likely be able to notice the discrepancy fairly quickly. However, if the evil twin CA+log is attacking only a few users in a much more targeted fashion, and is in sufficient control of the target users’ external connectivity to prevent them from gossiping with legitimate CT parties (or if the attacker simply happens to know that those users are running software that disable gossip for privacy reasons), then no one will ever have the opportunity to notice the discrepancy. I think this really needs to be made explicit.

An Auditor checking for log consistency might conclude that the compromised log is acting maliciously, and is presenting a split view to its clients.

How does this Auditor actually obtain both “views” of the compromised log?

*There are two views only if the attacker uses the purloined key to generate a parallel log, not just generate SCTs. In this case an Auditor will see that the bogus SCTs don’t fit into the tree maintained by the compromised log.It might infer (incorrectly) that the log is malicious, as the text says. I made a small change to the sentence to clarify this:*

**

*An Auditor checking for log consistency and with access to bogus SCTs, might conclude that the compromised log is acting maliciously, and is presenting a split view to its clients.***

If the Auditor is obtaining log records directly from the compromised log server, then presumably the log server will send it only one of the two views.

*Yes, if the Auditor has access only to the evil twin log,that’s right. But, in that case, we’re back to the case of a malicious log.*

(Legitimate Auditors can be deceived through equivocation just as easily as clients!) This text needs to specify under what conditions the Auditor can notice the discrepancy: e.g., if it obtains one view from the log server and learns about a different view via gossip with other Auditors, Monitors, and/or relying parties that can and choose to gossip with it.

*I revised the text to make this issue more explicit:*

*An Auditor checking for log consistency (relying on a gossip mechanism to acquire log views from diverse sources) might conclude that the compromised log is acting maliciously, and is presenting a split view to its clients.***


_______________________________________________
Trans mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/trans

Reply via email to