This appears in https://tlswg.github.io/tls13-spec/#resumption-and-psk

"As the server is authenticating via a PSK, it does not send a Certificate
or a CertificateVerify message. When a client offers resumption via PSK, it
SHOULD also supply a “key_share” extension to the server to allow the
server to decline resumption and fall back to a full handshake, if needed. "

-Ekr




On Tue, Mar 7, 2017 at 11:35 AM, Roelof Du Toit <roelof_dut...@symantec.com>
wrote:

> Thank you.
>
>
>
> The following text in 4.2.7 prompted my scenario:
>
> ""
>
> A server which receives an “early_data” extension MUST behave in one of
> three ways:"
>
> ..
>
> - Request that the client send another ClientHello by responding with a
> HelloRetryRequest. A client MUST NOT include the “early_data” extension in
> its followup ClientHello.
>
> ""
>
>
>
> My conclusion from your replies is that the burden is on the client to
> avoid the scenario by including an empty key_share (with corresponding
> sigalgs and supported_groups) when sending early_data with psk_ke mode (vs
> psk_dhe_ke).  It might be worth warning implementers about that in the spec.
>
>
>
> --Roelof
>
>
>
> *From: *David Benjamin <david...@chromium.org>
> *Date: *Tuesday, March 7, 2017 at 1:05 PM
> *To: *Eric Rescorla <e...@rtfm.com>, Roelof Du Toit <
> roelof_dut...@symantec.com>
> *Cc: *"tls@ietf.org" <tls@ietf.org>
> *Subject: *Re: [TLS] Allow KeyShare in HelloRetry if not advertised in
> ClientHello?
>
>
>
> On Tue, Mar 7, 2017 at 12:49 PM Eric Rescorla <e...@rtfm.com> wrote:
>
> On Tue, Mar 7, 2017 at 9:44 AM, Roelof Du Toit <roelof_dut...@symantec.com
> > wrote:
>
> All,
>
>
>
> The current language in https://tlswg.github.io/tls13-
> spec/#rfc.section.4.1.4 states:
>
> As with ServerHello, a HelloRetryRequest MUST NOT contain any extensions
> that were not first offered by the client in its ClientHello, with the
> exception of optionally the “cookie” (see Section 4.2.2
> <https://tlswg.github.io/tls13-spec/#cookie>) extension.
>
>
>
> I am analyzing the following message flow:
>
> ClientHello
>
> + early_data
>
> + psk_key_exchange_modes = psk_ke
>
> + pre_shared_key --------->
>
> (Early Data) ---------> *reject*
>
> <--------- HelloRetryRequest (not allowed to add key_share)
>
> ClientHello
>
> + supported_groups
>
> + key_share ---------> *not supported*
>
>
>
> At that point in the flow the server is not allowed to send another
> HelloRetryRequest.  To avoid that the client would need some hints in the
> HelloRetryRequest.
>
> Would it be possible to allow an exception to send key_share and/or
> supported_groups in a HelloRetryRequest if not offered in ClientHello?
>
>
>
> I would prefer not. If the client is willing to do DH, it should offer
> KeyShare in its initial ClientHello.
>
>
>
>  In particular, per 4.2.5:
>
>
>
> "Clients MAY send an empty client_shares vector in order to request group
> selection from the server at the cost of an additional round trip."
>
>
>
> David
>
_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to