Here are my comments on 6962-bis:
Section 1.
Still no definition of mis-issuance here. Why not use the text I
supplied months ago, and cite the threat analysis document?
There ought to be a mentionof the residual vulnerabilities that arise
when usingname-redacted pre-certificates or wildcard certificates, in
light of the recent discussions. Specifically, the problems Monitors
face in trying to protect a Subject when the Subject’s name is
encompassed by SCTs associated with these certificates.
I thought the WG agreed, long ago, to not mandate behavior for TLS
clients with regard to the presence or absence of SCTs. Yet this section
says
“TLS clients can thus require that all certificates they accept asvalid
are accompanied by signed timestamps.”
which seems to be pretty close to that.
Section 3
The term “preannounce” seems odd. “Pre-register” might make more sense,
given that the action of submission to a log is a form of registration.
Online dictionaries that I queried gave definitions for preannounce that
didn’t seem to be a great match to this activity.
Saying that the submission of a pre-certificatesignifies a binding
intent to issue the certificate is slightly misleading. A CA might not
wind up issuing the associated certificate, for a variety of reasons. I
think it would be better to just drop the word “binding” here.
Section 4
Suggested re-wording:
We define a mechanism to allow these private labels to not appear in
public logs, *while still retaining the security benefits that accrue
from using certificate transparency mechanisms.*
In Section 4.1 wording is used to motivate the need for name-redacted
pre-certificates. It does not say, explicitly, that wildcard
certificates can be logged and used in the CT context. It also should
note the possible problems they represent for Monitors.
Given the recent debate about name-redaction, I’m not convinced that the
description in 4.2.2 provides sufficient detail for Monitors and TLS
clients to know precisely how to compare an SCT for a name-redacted
pre-certificate to a certificate.
RFC 5280 states that name constraints is a critical extension, so the
text in 4.3 conflicts with that RFC.
Section 5
The text still says
Log operators MUST NOT impose any conditions on retrieving or sharing
data from the log.
I asked if Rich’s on-list statement about how Akamai planned to operate
a log was consistent with this mandate, but never received a response.
Section 5.1 should include a statement that the list of trust anchors
accepted by a log is part of the log’s metadata.
Section 5.3 allows a log to create it’s own OID, instead of using one of
the log ID registries. This seems to allow for collisions, and is not
consistent with the general IETF rationale for creating registries.
The description for log shutdown is much improved from prior version
that I read. However, there are a couple of requirements here that don’t
have an associated explanation of how they can be achieved.
Make it known to clients and monitors that the log will be frozen
Keep the log running until the certificates in all of its entries have
expired or exist in other logs (this can be determined by scanning other
logs or connecting to domains mentioned in the certificates and
inspecting the SCTs served).
Section 8
The opening sentence is 5 lines long, which makes it a bit hard to read.
But, overall, this section is much improved over previous versions.
The description the benefits and disadvantages of the certificate
extensionto carry an SCT mentions inclusion proofs. This may be
confusing to readers, since the extension does not contain an
inclusionproof. It would be better to say that use of this method to
deliver an SCT requires that a TLS client use a different mechanism to
acquire an inclusion proof (and STH).
In Section 8.1 the discussion of collusion between a CA and a log ought
to cite the relevant section(s) of the threat analysis.
Section 9
The transparency information extension MUST be non-critical, for
backward compatibility with TLS clients that are nopt CT-aware.
Note that an OCSP responder may be separate from a CA; the wording in
9.1.1 needs to be revised to reflect that.
What does 9.2 means when it says
When a certificate chain includes such a certificate, this indicates
that CT compliance is required.
Required by what?
Section 10
The opening sentence is not very useful for a standards track document.
It suggests CT lacks a well-defined architecture.
The metadata list in 10.1 seems to omit the set of trust anchors
accepted by the log.
In 10.2.4 the text says “…The client then has to verify …” Did you mean
to say “MUST” here?
The language in 10.2.5 about compliance isn’t very useful, when
separated from the text in 10.2.7. Why have these as two separate
subsections?
The wording in 10.2.7 seems intended to skirt the prior agreement to not
mandate client behavior in the event of amissing SCT. Also, the wording
is sloppy. For example, the text says
In the case that use of TLS with a _valid_ certificate is mandated ...
Certificate _validity_ is defined by 5280 and profiles thereof. Do you
mean to say a _CT-compliant certificate_ here? The same comment applies
to the next bullet which describes what to do if use of a “valid
certificate” is optional. Also, what does it mean for a TLS client to
“not treat the certificate as valid?”
The definition of a Monitor still seems to be wrong, and the recent
debate about name-redacted certificates gives further evidence of that.
I think most folks believe the primary function of a Monitor is to
observe logs to detect when a certificate is logged that is not
consistent with the Monitor’s information about the Subject of the
logged certificate. The definitionof a Monitor provided here makes this
function optional. It attributes to a Monitor a function that is, I
believe, a function of Auditing.
The text here is not very precise in describing Monitor behavior re
looking for log entries that conflict with certificates the Monitor is
trying to protect. I suggest using text from
draft-kent-trans-monitor-auditor-01.txt. For example:
A Monitor observes a set of logs to detect certificate mis-issuance. A
Monitor notifies a Subject [CA-Subject] when a bogus (orerroneous)
certificate [draft-ietf-trans-threat-analysis] has been issued on behalf
of that Subject. Every CT-aware Subject is expected to either perform
self-Monitoring or to arrange with a third-party Monitor to detect
mis-issued certificates on behalf of the Subject.
Similarly, the description of how a Monitor does its job seems to omit
what I believe is its critical function. Again, the cited I-D above
provide a concise description in its introduction:
A Monitor performs its function by examining all entries from a set of
logs and comparing these entries to reference data for a set of one or
more Subjects. The reference data consists, at a minimum, of a list of
Subject and Subject Alternative Names and the pubic key information
associated with each, supplied by the Subject. If a Monitor detects a
log entry for a certificate that is inconsistent with the reference data
for a Subject, the Monitor notifies the Subject. A Subject may perform
self-monitoring.
Overall, this section seems inadequate as a description of Monitor
functionality.
Section 10.4 describes audit functions reasonably well, but presents a
view that there is no separate Auditor function in CT. That conflicts
with the design in draft-ietf-trans-gossip-02, and with
draft-kent-trans-monitor-auditor-01. I suggest that the first paragraph
of this subsection be reworded to characterize the Audit function as one
that may be performed by a client, Monitor, or by a separate entity.
This subsection also ends with a statement not appropriate for a
standard track document, as I have noted before:
The following algorithm outlines may be useful for clients that wish to
perform various audit operations.
The statement above should be revised to _require_ that an element
performing the Audit function MUST perform all of these checks in a
fashion that produces results identical to those that the algorithms
would yield. If the document doesn’t establish these algorithms as
authoritative it is not defining what the Audit function is, and the
text is not a very useful part of a standards track document.
Section 11
The last sentence here probably ought to be:
Certificates in the frozen log that have not yet expired and require new
SCTs _SHOULD_ be submitted to the new log and the SCTs from that log
used instead.
Section 13
The introduction text here is good, but it should be augmented with a
discussion of the problems for Monitors posed by wildcard and
name-redacted certificates (if the latter feature is retained). A
reference to the threat document also would be appropriate here, rather
than as a separate, trivial subsection (13.7). I suggest deleting that
subsection.
13.1 says that a TLS client _may_ (lowercase) decide to reject a
certificate w/o an SCT. This language is rather squishy compared to the
strict language in 9.2.
13.2 should refer to Monitors (10.3) as the entities that detect
mis-issuance. Monitors might be domain owners, as suggested, or CAs, or
third parties, but the text here mentions only the 1^st example.
13.3 notes an important consideration, and its advice to CAs is good.
Saying that clients may make a decision to reject such certificates
underlines the potential for interoperability problems. I guess that’s
OK for a statement in an SC section, but it seems a bit vague.
I note that 13.4 refers to a trusted Auditor, which conflicts with the
characterization of Auditing in Section 10. Making the chnges I suggest
to section would address this issue.
_______________________________________________
Trans mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/trans