Eric Rescorla
2018-11-21 21:51:27 UTC
Following up, I don't see any response to these comments.
-Ekr
-Ekr
I have one other non-blocking comment: Why is this document Experimental?
People are already deploying CT without this. It seems like PS would make
more sense or Informational.
Alexey, I leave it to you.
-Ekr
People are already deploying CT without this. It seems like PS would make
more sense or Informational.
Alexey, I leave it to you.
-Ekr
Eric Rescorla has entered the following ballot position for
draft-ietf-httpbis-expect-ct-07: Discuss
When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)
Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.
https://datatracker.ietf.org/doc/draft-ietf-httpbis-expect-ct/
----------------------------------------------------------------------
----------------------------------------------------------------------
https://mozphab-ietf.devsvcdev.mozaws.net/D4579
This generally seems like a sound mechanism, but I believe there are
some points here that are sufficiently unclear they might create
interop problems,s o I am balloting DISCUSS.
Most importantly, this document just says you support CT, but that
creates a potential interop problem if say 6962-tris had a different
way of delivering CT information or a different syntax. I'm not saying
you need a version here, but you need to indicate that it's not
forward-looking.
Also, see below.
DETAIL
S 2.4.
it interact with HSTS's hard failure reqs.
S 3.1.
S 3.1.
----------------------------------------------------------------------
----------------------------------------------------------------------
not support CT, then it would (a) accept a misissued certificate that
(b) was not discoverable
S 2.1.1.
Why are you allowing HTTP?
S 2.3.2.
to a potentially incompatible CT version, or otherwise reconfigure the
client.
S 2.3.2.1.
s/adding/added/?
S 2.3.2.1.
S 2.3.2.2.
this ia term of art somewhere.
S 2.3.2.2.
This MAY seems out of place, given that you already said MAY.
S 2.4.
What does "as soon as possible" mean?
S 2.4.
S 2.4.1.
S 3.1.
certs?
S 3.1.
draft-ietf-httpbis-expect-ct-07: Discuss
When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)
Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.
https://datatracker.ietf.org/doc/draft-ietf-httpbis-expect-ct/
----------------------------------------------------------------------
----------------------------------------------------------------------
https://mozphab-ietf.devsvcdev.mozaws.net/D4579
This generally seems like a sound mechanism, but I believe there are
some points here that are sufficiently unclear they might create
interop problems,s o I am balloting DISCUSS.
Most importantly, this document just says you support CT, but that
creates a potential interop problem if say 6962-tris had a different
way of delivering CT information or a different syntax. I'm not saying
you need a version here, but you need to indicate that it's not
forward-looking.
Also, see below.
DETAIL
S 2.4.
beginning an HTTP conversation over the TLS channel.
If a connection to a Known Expect-CT Host violates the UA's CT
policyIf a connection to a Known Expect-CT Host violates the UA's CT
(i.e., the connection is not CT-qualified), and if the Known
Expect-CT Host's Expect-CT metadata indicates an "enforce" configuration,
the UA MUST treat the CT compliance failure as an error.
Is this supposed to be a hard failure, as with HSTS. If not, how doesthe UA MUST treat the CT compliance failure as an error.
it interact with HSTS's hard failure reqs.
S 3.1.
(This may differ from the value of the
"served-certificate-chain"key.) The value is provided as an array of strings, which MUST
appear in the order matching the chain that the UA validated;
eachappear in the order matching the chain that the UA validated;
string in the array is the Privacy-Enhanced Mail (PEM)
representation of each X.509 certificate as described in
[RFC7468].
What happens if you try to construct multiple paths?representation of each X.509 certificate as described in
[RFC7468].
S 3.1.
does not have or does not trust the public key of the log
fromwhich the SCT was issued), "valid" (indicating that the UA
successfully validated the SCT as described in Section 5.2 of
[RFC6962] or Section 8.2.3 of [I-D.ietf-trans-rfc6962-bis]),
orsuccessfully validated the SCT as described in Section 5.2 of
[RFC6962] or Section 8.2.3 of [I-D.ietf-trans-rfc6962-bis]),
"invalid" (indicating that the SCT validation failed because
of, e.g., a bad signature).
Is "invalid" anything other than the specific cases listed above?of, e.g., a bad signature).
----------------------------------------------------------------------
----------------------------------------------------------------------
allows web host operators to instruct user agents to expect valid
Signed Certificate Timestamps (SCTs) to be served on connections to
these hosts. Expect-CT allows web host operators to discover
misconfigurations in their Certificate Transparency deployments and
ensure that misissued certificates accepted by UAs are discoverable
in Certificate Transparency logs.
I don't believe that it does this. Consider a client which simply didSigned Certificate Timestamps (SCTs) to be served on connections to
these hosts. Expect-CT allows web host operators to discover
misconfigurations in their Certificate Transparency deployments and
ensure that misissued certificates accepted by UAs are discoverable
in Certificate Transparency logs.
not support CT, then it would (a) accept a misissued certificate that
(b) was not discoverable
S 2.1.1.
Figure 2: Syntax of the report-uri directive value
"absolute-URI" is defined in Section 4.3 of [RFC3986].
Hosts may set "report-uri"s that use HTTP or HTTPS. If the scheme
in"absolute-URI" is defined in Section 4.3 of [RFC3986].
Hosts may set "report-uri"s that use HTTP or HTTPS. If the scheme
Why are you allowing HTTP?
S 2.3.2.
the "enforce", "max-age", or "report-uri" header field value
directives convey information different from that already
maintained by the UA. If the "max-age" directive has a value of
0, the UA MUST remove its cached Expect-CT information if the
hostdirectives convey information different from that already
maintained by the UA. If the "max-age" directive has a value of
0, the UA MUST remove its cached Expect-CT information if the
was previously noted as a Known Expect-CT Host, and MUST NOT
notethis host as a Known Expect-CT Host if it is not already noted.
As noted above, I think you need to clear the cache when you upgradeto a potentially incompatible CT version, or otherwise reconfigure the
client.
S 2.3.2.1.
this host as a Known Expect-CT Host if it is not already noted.
2.3.2.1. Noting Expect-CT
Upon receipt of the Expect-CT response header field over an error-
free TLS connection (including the validation adding in Section
2.4),2.3.2.1. Noting Expect-CT
Upon receipt of the Expect-CT response header field over an error-
free TLS connection (including the validation adding in Section
s/adding/added/?
S 2.3.2.1.
host's domain name and its associated Expect-CT directives in non-
volatile storage.
To note a host as a Known Expect-CT Host, the UA MUST set its
Expect-volatile storage.
To note a host as a Known Expect-CT Host, the UA MUST set its
CT metadata given in the most recently received valid Expect-CT
header field, as specified in Section 2.3.2.2.
This seems ungrammatical. Set it where?header field, as specified in Section 2.3.2.2.
S 2.3.2.2.
2.3.2.2. Storage Model
If the substring matching the host production from the Request-URI
(of the message to which the host responded) does not congruently
match an existing Known Expect-CT Host's domain name, per the
I would say "exactly match" rather than "congruently match" unlessIf the substring matching the host production from the Request-URI
(of the message to which the host responded) does not congruently
match an existing Known Expect-CT Host's domain name, per the
this ia term of art somewhere.
S 2.3.2.2.
understands them, the UA MAY note them as well.
UAs MAY set an upper limit on the value of max-age, so that UAs
thatUAs MAY set an upper limit on the value of max-age, so that UAs
have noted erroneous Expect-CT hosts (whether by accident or due to
attack) have some chance of recovering over time. If the server
setsattack) have some chance of recovering over time. If the server
a max-age greater than the UA's upper limit, the UA MAY behave as
ifThis MAY seems out of place, given that you already said MAY.
S 2.4.
When a UA connects to a Known Expect-CT Host using a TLS
connection,if the TLS connection has no errors, then the UA will apply an
additional correctness check: compliance with a CT Policy. A UA
should evaluate compliance with its CT Policy whenever connecting
toadditional correctness check: compliance with a CT Policy. A UA
should evaluate compliance with its CT Policy whenever connecting
a Known Expect-CT Host, as soon as possible. However, the check
canWhat does "as soon as possible" mean?
S 2.4.
terminates the connection due to an Expect-CT failure, this could
cause the UA to skip subsequent correctness checks. When the CT
compliance check is skipped or bypassed, Expect-CT reports
(Section 3) will not be sent.
When CT compliance is evaluted for a Known Expect-CT Host, the UA
Nit: evaluatedcause the UA to skip subsequent correctness checks. When the CT
compliance check is skipped or bypassed, Expect-CT reports
(Section 3) will not be sent.
When CT compliance is evaluted for a Known Expect-CT Host, the UA
S 2.4.1.
"report-uri" (Section 3).
2.4.1. Skipping CT compliance checks
It is acceptable for a UA to skip CT compliance checks for some
hosts2.4.1. Skipping CT compliance checks
It is acceptable for a UA to skip CT compliance checks for some
according to local policy. For example, a UA may disable CT
Should this be MAY?S 3.1.
o "scts": the value represents the SCTs (if any) that the UA
received for the Expect-CT host and their validation statuses.
The value is provided as an array of JSON objects. The SCTs may
appear in any order. Each JSON object in the array has the
So these just apply to the EE cert? What about CT for the non-EEreceived for the Expect-CT host and their validation statuses.
The value is provided as an array of JSON objects. The SCTs may
appear in any order. Each JSON object in the array has the
certs?
S 3.1.
of, e.g., a bad signature).
* The "source" key, with a string value that indicates from
where* The "source" key, with a string value that indicates from
the UA obtained the SCT, as defined in Section 3 of [RFC6962]
and Section 6 of [I-D.ietf-trans-rfc6962-bis]. The UA MUST
setand Section 6 of [I-D.ietf-trans-rfc6962-bis]. The UA MUST
the value to one of "tls-extension", "ocsp", or "embedded".
What do these mean? They seem obvious, but you don't say.