Hi,

Per the latest draft of TLS 1.3, both "supported_groups" and "key_share"
extensions are REQUIRED for DHE or ECDHE cipher suites (Section 8.2).  Both
extension need to provide the supported named groups in preference order.
Looks like the functions are overlapped.  I was wondering, it may be nice
to obsolete the "supported_groups" extension, and use "key_share" extension
for both the supported named groups and the key exchange information for
each group.

For the "supported_groups" extension, the description is (Section 6.3.2.2):
   ---------------
   Clients which offer one or more (EC)DHE cipher suites MUST send at
   least one supported NamedGroup value and servers MUST NOT negotiate
   any of these cipher suites unless a supported value was provided.  If
   this extension is not provided and no alternative cipher suite is
   available, the server MUST close the connection with a fatal
   "missing_extension" alert.  (see Section 8.2) If the extension is
   provided, but no compatible group is offered, the server MUST NOT
   negotiate a cipher suite of the relevant type.  For instance, if a
   client supplies only ECDHE groups, the server MUST NOT negotiate
   finite field Diffie-Hellman.  If no acceptable group can be selected
   across all cipher suites, then the server MUST generate a fatal
   "handshake_failure" alert.
   ---------------

For the "key_share" extension, the description is (Section 6.3.2.3):
   ---------------
   Clients which offer one or more (EC)DHE cipher suites MUST send at
   least one supported KeyShare value and servers MUST NOT negotiate any
   of these cipher suites unless a supported value was provided.  If
   this extension is not provided in a ServerHello or retried
   ClientHello, and the peer is offering (EC)DHE cipher suites, then the
   endpoint MUST close the connection with a fatal "missing_extension"
   alert.
   ---------------

The "supported_groups" extension defines the groups, while the "key_share"
extension defines both the groups and the key exchange information.  Both
extension has its own preferences for the supported named groups.  It's
easy to get conflicted if the two preferences are not consistent.  The
"key_share" extension contains the information of the supported named
groups.  So, the information can be used to indicate the client supported
named groups.  Maybe, for TLS 1.3, it is not necessary to use the
"supported_groups" extension any more.

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

Reply via email to