Ben,
Thanks for taking the time to perform a thorough review of this doc.
I have made a number of edits in response to your comments, as described
below.
Page 3
First para ends with a spurious ")".
*Fixed*
There are two classes of beneficiaries of CT: certificate Subjects
and relying parties (RPs). In the initial focus context of CT, the
Web PKI, Subjects are web sites and RPs are browsers employing HTTPS
to access these web sites.
CAs are also beneficiaries - they get to find out about key loss or
abuse of their platform, for example.
*Good point. I’ll change the text accordingly.***
it directs a replying party to an OCSP
server
Should be "relying".
*Fixed*
Page 4
Finally, if an RP were to check logs for
individual certificates, that would disclose to logs the identity of
web sites being visited by the RP, a privacy violation. Thus this
attack model assumes that RPs will not check log entries.
It is not clear that:
a)All RPs care about privacy in this respect,
*True, but it is still appropriate to note that log checking is a
potential privacy violation for those that do perform checks, as DKG
noted a while ago.*
b)That checking logs is necessarily privacy violating (for example,
we've announced an experimental DNS-based protocol for log checking,
which we are implementing in Chrome),
*The mechanism you describe minimizes the privacy problem, but since it
is not part of the standard, it is not appropriate to assume it will be
used by all RPs that confirm to the standard.*
therefore it seems unwarranted to assume that RPs will not check log
entries.
*I have modified the sentence a bit to address your comments:*
*Thus this attack model does not assume that all RPs will check log
entries.***
Page 5
There is no
agreed-upon Audit function design for CT at the time of this
writing. As a result, the model merely notes where Auditing is
needed to detect certain classes of attacks.
Section 9.4 of 6962-bis-14 has a comprehensive design for auditing.
*I revised the text to note that the audit functions we enumerated in
our spec for a CT auditor have now been defined. They don't seem to be
“comprehensive” i.e., they don’t detect split log views, so the fact
that there additional work on auditing is ongoing also is noted.*
Page 6
[ 4] SCT (embedded in pre-cert, if applicable)
SCTs are not embedded in pre-certs.
*Fixed the legend to refer to certificates, not pre-certificates.*
Page 8
Spoofing
enables an adversary to acquire information that a TLS-enabled
client would not communicate if the client were aware of the
spoofing.
There are surely many other issues with spoofing - e.g. serving malware.
*Fair point. I have revised the text to note delivery of malware, or
delivery of misinformation from a website as well.*
An adversary
may achieve this in various ways, e.g., by causing a user to click
on a link to the website, or by manipulation of the DNS response
sent to a TLS client.
If a link alone works, then the site is not spoofed with a mis-issued
certificate, surely?
*Good point. I removed the reference to clicking on a bogus link.*
Also, MitM is probably the most common attack vector.
*Maybe a user in a public WiFi context is susceptible to this sort of
attack, but in many contexts a MITM attack is difficult to mount.
Nonetheless, I will add MITM as an example here.*
The elements of CT may themselves be targets of attacks, as
described below. A criminal organization might compromise a CA and
cause it to issue bogus certificates, or it may exert influence over
a CA (or CA staff) to do so, e.g., through extortion or physical
threat. (Even though the CA is not intentionally malicious in this
case, the action is equivalent to a malicious CA, hence the use of
the term "bogus" here.) A nation state may operate or influence a CA
that is part of the large set of "root CAs" in browsers. A CA,
acting in this fashion, is termed a "malicious" CA. A nation state
also might compromise a CA in another country, to effect issuance of
bogus certificates. In this case the (non-malicious) CA, upon
detecting the compromise (perhaps because of CT) is expected to work
with Subjects to remedy the mis-issuance.
There's also social engineering, which is mentioned elsewhere, but I
suspect should be here, too.
*I added a mention of social engineering here.*
It seems unlikely that a
compromised, non-malicious, log would...
This seems odd - a compromised non-malicious log is effectively
uncompromised, isn't it?
*If the log’s private key has been stolen so that an adversary can use
the key to generate SCTs, then the log is compromised in that sense,
even though it is not malicious.*
Page 9.
CT is not designed to
detect and counter this type of locally-authorized interception.
Actually CT is designed to detect it but it seems likely that browsers
will explicitly ignore it.
*I added this text in response to a message from Eran, but I have
revised to text to not mention detection._*
Page 10.
(and elsewhere) is there really any difference between a benign
third-part monitor and self-monitoring? Couldn't the doc be simplified
by treating them as the same?
*The taxonomy adopted for this document distinguishes between benign and
malicious versions of CT system elements. When a Subject monitors its
own behalf, that distinction does not apply, i.e., a self monitor is
always viewed as benign. This drives at least part of the distinction
you note.*
(A misbehaving log also could create and report entries
for bogus certificates that have not been issued by the indicated CA
(hereafter called "fake")
This is slightly confusing, as on the face of it, the log could not
create such a cert, since it doesn't have the CA key. Later wording
makes it clear that the idea is that the cert would not, in fact, be
signed by a trusted CA.
*I don't’ see a need to change the text here since, as you note, the
next sentence explains that a fake entry would not be signed by the
indicated CA.*
3.1.1.2.1/3.1.1.2.2
Since I think that benign third party and self monitors are essentially
the same, it is odd that these two sections differ so much.
*They are not the same when the 3^rd party Monitor is malicious, but I
agree that there is no significant difference when the 3^rd party
Monitor is benign.I consolidated these two sections.*
Page 11.
Note that independent of any mis-issuance on the part of the CA, a
misbehaving Monitor could issue false warnings to a Subject that it
protects. These could cause the Subject to report non-existent
semantic problems to the issuing CA and cause the CA to do needless
investigative work or perhaps incorrectly revoke and re-issue the
Subject's certificate.
This para is general, rather than to do with the section it is in, and
hence should probably be somewhere else.
*The paragraph describes a type of behavior by a misbehaving 3^rd party
Monitor, so it belongs in a section that has such a title.*
However, the CT architecture does not describe how
such behavior by browsers can be deployed incrementally throughout
the Internet. As a result, this attack model does not assume that
browsers will reject a certificate that is not accompanied by an
SCT.
Given that incremental deployment is already under way, this seems
unnecessarily dogmatic.
*The text says that if a browser rejects a certificate because it lacks
an SCT, then incremental deployment is problematic. Your assertion that
CT is being incrementally deployed with respect to browsers is based on
behavior that does not cause a certificate to be rejected under these
circumstances.But, to make sure the issue is clear, I have revised the
text as follows:*
**
*However, **the CT architecture does not describe **how CT can be
deployed incrementally if browsers reject all certificates not
accompanied by an SCT. (A browser might “discriminate” againsuch
certificates, e.g. via warnings or other UI signals. Because a user
would be free to ignore of override such indications, incremental
deployment is possible under these assumptions.) As a result, this
attack model does not assume that browsers will reject a certificate
that is not accompanied by an SCT.***
Page 13.
For example, the CA could make excuses about inadequate
proof that the certificate is bogus, or argue that it cannot quickly
revoke the certificate because of legal concerns, etc. In this case,
the CT mechanisms will have detected mis-issuance, but the
information logged by CT does not help remedy the problem. (See
Sections 4 and 6.)
The logged information clearly _helps_, it just may not be all that is
needed.
*Fair point. I have modified the text to say “**the information logged
by CT may not suffice to remedy the problem.”***
Page 14.
3.2.2.1 is essentially the same as 3.1.1.2, just refer to the previous text?
*I could do that, but it’s just one paragraph and I think it’s a bit
easier for a reader to see the text in context rather than have to flip
back to the earlier section.*
Page 15.
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. This section
explores such scenarios.
The attack as described only requires colluding CAs in the case where EE
certs do not contain links to revocation information.
When EE certs do contain such links, the attack described is simply an
attack on certificate revocation, regardless of whether one or more CAs
might have issued the doppelgangers.
In either case, the attack is nothing to do with CT, which does not
claim to do anything to help with integrity or correctness of revocation
information.
*The cited sentence notes that the goal of the attack is to cause a
CT-aware browser to accept a certificate that, by CT goals, it ought
not. In this sense, the attack is directly relevant to CT. I agree that
the attack is one that exploits a residual vulnerability in revocation
in general. However, this section describes the impact of that
vulnerability in the context of CT, and thus seems relevant to the
threat analysis.*
Even if the bogus certificates contain an AIA extension pointing to
an OCSP server the attack might still succeed. (As noted in the
Section 1, RFC 5280 does not mandate inclusion this extension, but
its presence is required by CABF requirements.) As noted in Section
3.2.1.1.1, a malicious CA could send a "good" OCSP response to a
targeted browser instance, even if other parties are provided with a
"revoked" response. Also note that a TLS server can supply an OCSP
response to a browser as part of the TLS handshake [RFC6961], if
requested by the browser. A TLS server posing as the entity named in
the bogus certificate could acquire a "good" OCSP response from the
colluding CAs to effect the attack. Only if the browser relies upon
a trusted, third-party OCSP responder, one not part of the
collusion, would the attack fail.
All this is independent of the attack and of CT, and applies generally
to revocation.
*See my rationale above for inclusion of this discussion.*
The analysis above also applies to the use of CRLs to disseminate
certificate revocation status data. The doppelganger certificate
could contain a CRL distribution point extension instead of an AIA
extension. In that case a site supplying CRLs for the colluding CAs
could supply different CRLs to different requestors, in an attempt
to hide the revocation status of the doppelganger from targeted
browsers instances. This is analogous to a split-view attack
effected by a CT log. However, as noted in Section 3.2.1.1 and
3.2.1.1.1, no element of CT is responsible for detecting
inconsistent reporting of certificate revocation status data.
(Monitoring in the CT context tracks log entries made by CAs or
Subjects. Auditing is designed to detect misbehavior by logs, not by
CAs per se.)
Likewise.
*Ibid.*
Page 20.
This will happen
only if the log performs syntactic checks in general, and if the log
is capable of performing the checks applicable to the submitted
(pre-)certificate.
Anyone can detect syntactic mis-issuance, the log does not need to do it.
*The threat analysis focuses on what the CT system says its elements
will do, not what some outside entity
not defined by the system might do.*
For example: https://crt.sh/?cablint=1+week
<https://www.google.com/url?q=https://crt.sh/?cablint%3D1%2Bweek&sa=D&ust=1461067017647000&usg=AFQjCNHX_OatZkczH7TIIEeyYuTshcFzIg>.
Page 21.
If the (pre-)certificate is submitted by the non-malicious issuing
CA, and if the CA has a record of the certificate content
Clearly there is a record in the log!
*Good point. I’ve revised the text accordingly.*
This analysis suggests that syntactic mis-issuance of a certificate
can be avoided by a CA if it makes use of logs that are capable of
performing these checks for the types of certificates that are
submitted,
The CA can obviously perform these checks itself, logs are not special
in this regard.
*This discussion is addressing the (not uncommon) situation in which a
CA fails to perform the appropriate checks.Long ago you noted that this
is a persistent problem and used that observation to justify the CT log
language that provides leeway for a log to accept any certificate
irrespective of whether it meets 5280 or any other certificate syntax
criteria. So, it seems a bit disingenuous to suggest that a CA would be
relied upon to perform these checks, in general.*
Throughout this section there is talk about syntactic checking by logs,
which is not a defined function of logs.
*Syntax checking was proposed as an optional log function that you and
your co-authors rejected. Thus this text notes that IF a log were to
perform such checks, certain attacks could be detected on behalf of
browsers (which also have a terrible track record of enforcing syntactic
rules).*
Unfortunately, experience suggests that
many browsers do not perform thorough syntactic checks on
certificates, and so it seems unlikely that browsers will be a
reliable way to detect erroneous certificates.
What is unfortunate is that a very large number of extant certs have
syntax errors and so browsers can't usefully perform checks.
*I see we agree on this aspect of the problem. I am surprised that you
noted that CAs could be relied upon to perform syntax checking (your
comment above) given the reality that you cited here!*
Moreover, a protocol
used by a browser to notify a Subject and/or CA of an erroneous
certificate represents a DoS potential, and thus may not be
appropriate.
Subjects are already subject to DoS by virtue of serving web pages. This
doesn't seem like a valid concern.
*Adding additional DoS opportunities is rarely viewed as a good idea.
The text says it “may not be appropriate” and I stand by that.*
Such browsers would benefit from
having such checks performed by a log and reported in the SCT.
Browsers don't need help to perform syntax checks, it just isn't viable
to do so.
*I have revised the text as follows:*
**
*Such browsers might benefit from having syntax checks performed by a
log and reported in the SCT, although the pervasive nature of
syntactically-defective certificates may limit the utility of such
checks.***
Page 26.
Thus, for now, CT does not seem to provide a
way to remedy this form of attack, even though it provides a basis
for detecting such attacks.
CT doesn't claim to provide remedies for attacks, just information that
reveals them. Once more, you are describing a flaw with the whole
system, not a flaw in CT.
*You’re right that CT does not claim to remedy attacks; it claims to
facilitates remediation. So, I have revised the text as follows:*
**
*Thus, for now, CT does not seem to provide a way to facilitate
remediation of this form of attack, even though it provides a basis for
detecting such attacks.***
Absent a well-defined mechanism that enables Monitors to verify that
data from logs are reported in a consistent fashion, CT cannot claim
to provide protection against logs that are malicious or may
conspire with, or are victims of, attackers effecting certificate
mis-issuance. The mechanism needs to protect the privacy of users
with respect to which web sites they visit. It needs to scale to
accommodate a potentially large number of self-monitoring Subjects
and a vast number of browsers, if browsers are part of the
mechanism. Even when an Audit mechanism is defined, it will be
necessary to describe how the CT system will deal with a misbehaving
or compromised log. For example, will there be a mechanism to alert
all browsers to reject SCTs issued by such a log? Absent a
description of a remediation strategy to deal with misbehaving or
compromised logs, CT cannot ensure detection of mis-issuance in a
wide range of scenarios.
The absence of a standard to do a thing does not make the thing
impossible. In practice, none of this actually seems to be a problem,
nor in need of standardisation at this time.
*6962-bis is targeted as a standard track document. Thus, when one
evaluates the CT threat environment we should restrict our attention to
what is standardized. We can’t speculate on behavior that MIGHT take
place but is not specified in a standard, and cite that as a mitigating
factor with respect to an attack or a privacy concern.*
_______________________________________________
Trans mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/trans