Just replying to a few points.

On Tuesday, July 12, 2016 12:16:24 am Ilari Liusvaara wrote:
> ###  Hello Retry Request
> 
> > selected_group
> > : The mutually supported group the server intends to negotiate and
> >   is requesting a retried ClientHello/KeyShare for.
> > {:br }
> 
> What is written into this field if server selects pure-PSK ciphersuite
> and then decides to reject the ClientHello? Or connections that use
> pure-PSK just plain can't be rejected for any reason (including IP
> address verification in DTLS?)

The HelloRetryRequest message is not applicable to pure-PSK, which does not use 
the KeyShare extension at all. PSK has its own separate extension. ((EC)DHE-PSK 
uses both together)

The purpose of HelloRetryRequest is to allow for clients to not send full keys 
for every single algorithm they support, yet allow the server to still pick 
from that entire list if it needs to. PSK has no equivalent system; pre-shared 
keys are first-flight or bust. If an (EC)DHE-PSK suite is selected, and a valid 
PSK identity is selected, the server can use HelloRetryRequest to reject a 
group in favor of another supported by the client, but it can't reject the 
suite or identity in this manner. The response to no acceptable PSK identity is 
either to negotiate another suite or to abort with a fatal alert.

See draft 14 section 4.2.5:
https://tools.ietf.org/html/draft-ietf-tls-tls13-14#section-4.2.5

> > ## Cipher Suites
> > 
> > Note: The values listed for ECDHE and ChaCha/Poly are preliminary but
> > are being or will be used for interop testing and therefore are likely to be
> > assigned.
> 
> Isn't the RFC already published, so the codepoints are stable?

xiaoyinl fixed the second one of those notes, but that was merged after the 
checkpoint for draft 14. I'll fix this one to just note for ECDHE PSK AES.

> > ## Implementation Pitfalls
> > 
> > -  Have you ensured that all support for SSL, RC4, EXPORT ciphers, and
> >   MD5 (via the "signature_algorithm" extension) is completely removed from
> >   all possible configurations that support TLS 1.3 or later, and that
> >   attempts to use these obsolete capabilities fail correctly?
> >   (see {{backward-compatibility}})
> 
> Better to just nuke the code entierely for all versions.
> 
> "Disabled" code has nasty tendency of coming back to life.

Emphatically agreed, however I worded it this way to be slightly more general. 
If I said that all that code should be universally gutted, I'd risk more people 
ignoring it due to the severe status quo bias that is very common. In lieu of 
modernizing fully and dropping it completely, having these old features 
disabled via the same compile-time option that enables building of TLS 1.3 
would be acceptable, IMO (though, more trouble than it should be worth, and 
still not ideal at all). Bikeshedding better wordings in this section would not 
be unwelcome, if you think anything here can be made better.

> > -  Do you handle TLS extensions in ClientHello correctly, including
> >   unknown extensions or omitting the extensions field completely?
> 
> The extensions field can't be omitted in TLS 1.3. And I would
> consider TLS 1.2 client implementations that send such messages
> as quite pathological.

Implementations should be expected to handle pathological cases gracefully, 
even if only to recognize and reject. ;)


Dave

_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to