AD review draft-ietf-tls-esni-22

Thanks for this document. It is a very interesting technology and I want
to thank everyone who worked on this. As expected, I found no major issues
in it :-) I do have a few minor questions and nits below:


Section 1

        that allows clients to encrypt their ClientHello to such a
deployment.

What is "such a deployment" ?

        DoH [RFC8484] and DPRIVE [RFC7858] [RFC8094]

DPRIVE is a working group, not a protocol. Why not say DoH and DoT ?

Section 3.2

        The server must publish this for all the domains it serves via
Shared or Split Mode.

This is confusing. "The server" might be misunderstood to be the TLS server
itself. I think
what is meant is "domains that wish to use the client-facing server must
publish the appropriate
public key and meta information somewhere/somehow, for example via DNS"

Section 4

        Clients MUST ignore any ECHConfig structure whose public_name
        is not parsable as a dot-separated sequence of LDH labels, as
        defined in [RFC5890], Section 2.3.1 or which begins or end with
        an ASCII dot.

Wouldn't this prevent the root zone from ever running ECH? It might not
matter,
but why not allow it :P

        Clients additionally SHOULD ignore the structure if the final LDH
        label either consists of all ASCII digits (i.e. '0' through '9')
        or is "0x" or "0X" followed by some, possibly empty, sequence
        of ASCII hexadecimal digits (i.e. '0' through '9', 'a' through
        'f', and 'A' through 'F').

This would not allow ECH to work for "00.com", "0x01.com" or "0x07.com",
which are
all currently operational domains.

I don't think this document should try to define what a legal DNS name is.
Perhaps
refer to "Host name" in RFC 8499 (or BCP219) and only state "leave out any
potential
trailing dot" ? Maybe just separately say "SNI's cannot be in the textual
form of an
IP address, as connections to IP addresses omit the SNI entirely" ?

It is a bit sad that ECH currently does not work with a URI that points to
an IP
address. Especially for the split-mode. But I understand that would be a
little
more than just ECH/encrypted-SNI.


        Additionally, clients MAY ignore the ECHConfig if the length of
        any label in the DNS name is longer than 63 octets, as this is
        the maximum length of a DNS label.

Why is this a MAY? Why not a MUST or SHOULD?

Section 4.2

        See Appendix A for guidance on which types of extensions are
appropriate for this structure.

If this is guidance, then it probably does not belong in an appendix, but
in its own real Section ?
Also, since Appendix A is a single paragraph, why not just fold it in right
here?


Section 6.1.6

        If an earlier TLS version was negotiated, the client MUST NOT
enable the False Start optimization

How is this possible? If you sent and received ECH, then you cannot have
negotiated an "earlier" TLS version?
At least not until we have TLS 1.4. And if we have that, wouldn't an
earlier version 1.3 be fine for ECH?


Section 10

Downgrade resistance - makes me think of the tls-dnssec pin discussion :-)

If the HPKE private key is lost and replaced, and the ECH DNS entries are
being
updated, there is a time period (depending on TTL and cache) where the tls
client
connecting to the client-facing TLS server will not be able to distinguish
the
connection from an attack, and thus not downgrade to try without ECH. This
is an
outage. Unfortunately, DoH has no way of asking a "refreshed DNS record" to
get
its DoH server to drop the cached record. I guess the SVCB/HTTPS record
could
introduce a syntax with a prefix on the old keyid or something with an
explicit
signal that points to the updated (uncached because it only exists when
such an
outage appears). But this might be a bit complicated for a failure case. It
is probably
best to postpone such work until it shows to be needed in practice.

Section 10.2

Another instance of "DoH/DPRIVE" instead of "DoH/DoT"

Section 10.5

        It MAY send such values in the ClientHelloInner.

Since it is talking about "such values", this should be "It SHOULD"

Section 10.10.2

I do not understand this section. I think it is trying to say "dont share
the secrets with too many operators", and not "don't share this secret
with many servers/domain under the same administrative control" ? But
it reads like it is recommending that an operator uses multiple smaller
ECH groups preferably over less but bigger groups?

Section 10.10.3

         10.10.3. Prevent SNI-Based Denial-of-Service Attacks

The entire section does not say how to prevent attacks ? Maybe drop the
word "Prevent" from the heading?

Section 10.10.5

        It is RECOMMENDED that servers rotate keys frequently

What is frequently? hourly? daily? weekly? annually ?

Section 11.3:

        These extraneous ECH configurations SHOULD have invalid keys,
        and public names which the server does not respond to.

Why not MUST ?

How does a client know which public names the server does not respond to?

Should it use known-invalid DNS names, eg "invalid:com", or some randomized
long valid but unlikely DNS name? Guidaance would be useful.

Also, the ensure paragraph has nothing to do with IANA and should be moved
to another location in the document.

Should the Notes: part of this registration mention these as "grease
entries" ?



NITS:

Section 1

        there are several ways in which an on-path attacker can learn
private information about the connection

Passive or active or both?

Section 10.5

a different ALPN lists  -> a different ALPN list


Section 10.10.4

        Thus, our strategy for mitigating network ossification

Use "the" instead of "our". It is unclear who "our" would be in this
context.

Section 10.10.5

        This design is not forward secret

Maybe say "is not forward secure" or "has no forward secrecy" ?

Section 10.10.6

        The client authenticates the identity of the backend origin
        server, thereby avoiding unnecessary MiTM attacks.

Aren't MITM attacks always "unnecessary" ? Also wouldn't it be
"avoiding necessary" ?

I think what is meant is "avoiding decryption / re-encryption in the path,
avoiding the need to downgrade the TLS security with trusted third parties"

Section 11.3

        The registration policy for for

Remove duplicate "for".


Paul
_______________________________________________
TLS mailing list -- tls@ietf.org
To unsubscribe send an email to tls-le...@ietf.org

Reply via email to