On Mon, Nov 28, 2016 at 11:53 AM, Russ Housley <hous...@vigilsec.com> wrote:

> Only the client ever sends the "psk_key_exchange_modes” extension.  In
> fact, the server MUST NOT send a "psk_key_exchange_modes" extension.
>
> The "pre_shared_key” extension is already divided into the structures used
> by the client and the server.  Why not add the ke_modes to the client part
> of the "pre_shared_key” extension?
>

This version allows you to tell the server that you would support a
specific set of modes (so it knows whether to send you a ticket or not)
without the need to allow an empty PSK list (with the small side effect
that you can check the minimum 1 requirement at the syntax level.


This would have the advantage that the ke_modes would be integrity
> protected by the HMAC carried in the PskBinderEntry.
>

It already is protected.

-Ekr


>
> If I am not missing something, then the following would be one way to
> accomplish this change:
>
>       enum { psk_ke(0), psk_dhe_ke(1), (255) } PskKeyExchangeMode;
>
>       struct {
>           opaque identity<0..2^16-1>;
>           PskKeyExchangeMode ke_modes<1..255>;
>           uint32 obfuscated_ticket_age;
>       } PskIdentity;
>
>       opaque PskBinderEntry<32..255>;
>
>       struct {
>           select (Handshake.msg_type) {
>               case client_hello:
>                   PskIdentity identities<6..2^16-1>;
>                   PskBinderEntry binders<33..2^16-1>;
>
>               case server_hello:
>                   uint16 selected_identity;
>           };
>
>       } PreSharedKeyExtension;
>
> _______________________________________________
> TLS mailing list
> TLS@ietf.org
> https://www.ietf.org/mailman/listinfo/tls
>
_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to