Ben,

Thanks for the feedback on my attack analysis text. I will make some changes based on
your comments.


    *XX*.1 Non-malicious Web PKI CA context



Note that there's nothing special about the log here: anyone can detect syntactic mis-issuance by simply feeding the certificate to an appropriate tool.
I agree. But, if a log elects to offer this service, the results of the check visible to all clients (e.g., TLS and Monitors) and that has two useful benefits. Also, even if a log does not perform a syntax check, the fact that a submitter asserted the type of cert being logged is useful to TLS clients,
and maybe to Monitors and the Audit function.

The lack of a requirement for rejection does not mean that popular TLS clients will not reject. As you know, Chrome will shortly stop showing EV indicators for EV certs without valid SCTs, even though there is no requirement to do so.

It seems to me a more accurate analysis would be along the lines of:

_"If TLS clients do not reject certificates or otherwise notify users when no SCT is provided, the preferred strategy for an attacker is to not log bogus certificates_. (See XX.1.2.2 and Note 3.)."
I agree with your suggested text change.

    *XX*.1.2.2 The bogus certificate may not have been submitted to
    any logs. In this case, Monitors will not detect the bogus
    certificate. _Since TLS clients are not required to reject a
    certificate that lacks (or is not accompanied by) an SCT, or even
    to notify a user in such situations, the attacker will not be
    thwarted in this case._ (See Note 3.)

ibid.

    XX.1.2.3 The bogus certificate may have been submitted to logs
    that are conspiring with the attacker. In this case, Monitors will
    not detect the bogus certificate because the logs will suppress a
    bogus certificate log entry. TLS clients will not reject a bogus
    certificate in this case, because it is accompanied by an SCT. In
    this scenario, unless Monitors “gossip” to detect conspiring logs,
    the bogus certificate will not be detected. _Because there are no
    requirements for such gossiping, an attack of this sort can
    succeed based on the current CT design._


Again, lack of requirement does not imply lack of implementation. Again, I would suggest this should be phrased conditionally.
In the context of a standard, one OUGHT NOT (as per 6919) rely on client behavior that is not mandated. I could re-phrase this, but there is a bigger issue lurking here. If mandated client behavior is out of scope for 6269-bis, i.e., if the doc focuses only on the operation of logs, then I believe the doc cannot be evaluated (and thus approved by the WG) until ancillary docs specifying client behavior have been completed. My argument is that we don't know if the spec for log operation is complete and correct until we know what log clients will do based on interactions with a log,
processing of SCTs, etc.

    __

    XX.1.2.4 If a semantically bogus certificate is submitted to
    non-conspiring logs, a Subject performing self-monitoring will be
    able to detect the bogus certificate and request revocation.


Not sure of the relevance of "non-conspiring" here?
If logs conspire with a CA, they may not report a log entry for a bogus cert to an affected subject.

    _Since there is no requirement that a TLS client can be configured
    to reject a certificate that has not been syntactically checked
    (as indicated by the SCT), a malicious CA need not worry about
    failing a log-based check. Similarly, _

    _since there is no requirement for a TLS client to reject a
    certificate that was logged by an operator that does not perform
    syntactic checks, the fourth approach noted above will succeed as
    well_. If a client were configured to know which versions of
    certificate types are applicable to its use of a certificate, the
    second and third strategies noted above could be thwarted.


Again, the log has no special role to play in the detection of syntactic errors: TLS clients that wish to reject such certificates can do so unaided. Indeed, I would've thought conformance to existing RFCs would imply such behaviour - and if they don't, surely CT is not the place to fix that?
I noted above why syntax checking by logs is beneficial. Experience shows that a number of TLS clients have been very bad about checking certs relative to existing RFCs, so having such checks offered by logs is beneficial for that reason too. CT is supposed to create an infrastructure that helps detect/deter issuance of "mis-issued" certs? Syntactically broken certs are mis-issued, relative
to a specified cert profile, whether that DV, EV, S/MIME, or whatever.

    *XX*.2.2 Because the CA is presumed malicious, it may choose to
    not submit a certificate to a log. This avoids detection of
    syntactic mis-issuance by a log, but it also means there is no SCT
    for the certificate. _Since there is no requirement for a TLS
    client to reject a certificate that lacks (or is not accompanied
    by) an SCT, this form of mis-issuance will succeed. (See Note 3.)_


See above (both on requirements and on CT's role in syntax).
see my (distinct) replies to you comments above.

    *XX*.2.3 A malicious CA may submit a certificate to one or more
    logs that collude with this CA to not perform syntactic checks,
    even though they claim to do so. In this case syntactic
    mis-issuance will not be detected by logs. The log entry and the
    SCT for a syntactically invalid certificate will assert that the
    certificate syntax was verified. Unless Monitors also perform
    syntactic checks, this form of mis-issuance will not be thwarted.
    TLS clients will believe that the certificate has been
    syntactically verified.


Why would they believe that, given there's no requirement to do such verification?
Since there appear to be NO TLS client requirements today :-).

As I mentioned earlier, until we have a complete set of specs for client behavior, TLS clients and Monitors, we can't have high confidence that the CT log spec is right.


    ***XX*.2.4.1 A bogus certificate may not have been submitted to
    any logs. In this case, Monitors will not detect the bogus
    certificate. _Since there is no requirement for a TLS client to
    reject a certificate that lacks (or is not accompanied by) an SCT,
    there is no motivation for an attacker to submit the certificate
    in this case. (See Note 3.)_


See above.
I'll change this to be consistent with the text change you noted earlier.

    A final note: Now that certificate pinning has been approved as a
    standard (currently in the RFC Editor’s queue), it is appropriate
    to factor in its use by TLS clients. It would appear that pinning
    will dramatically reduce the set of TLS clients that are
    vulnerable to mis-issuance; a client that pins a certificate for a
    web site would reject a bogus certificate without use of any CT
    mechanisms. The security considerations section of 6962-bis needs
    to note this, since deployment of pinning appears to reduces the
    need for CT in the Web PKI context.


It is Google's view that pinning is not a scalable solution, unlike CT. We do not agree that pinning reduces the need for CT.
Well, some part of Google obviously believes pinning is a useful solution, since all three editors for
the pinning spec are from Google :-).

More to the point, we're developing an IETF RFC; Google's "view" is just one input. Thus your
very terse reply is not a basis for failing to address this obvious issue.

Steve

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

Reply via email to