Subject: [TLS] ServerHello layout in TLS 1.3

From: Hannes Mehnert <[email-masked]>
Date: Sat, 12 Dec 2015 12:08:05 +0000

Hi,

while implementing the TLS 1.3 draft, I came across the modified
ServerHello message - it does neither contain a SessionID nor a
CompressionMethod field.  This makes code which supports both TLS 1.3
and earlier versions more complicated*:  a client sending out a
ClientHello does not know which protocol version the server is willing
to talk.

Thus, depending on the protocol version inside of the server hello, the
remainder of the packet needs to be parsed.

I'm not sure whether it is worth to safe two bytes (empty SessionID and
NULL CompressionMethod) to introduce such an intrinsic dependency.

Is there a reason behind this change, apart from cleanup?

Thanks,

Hannes

*: It is not hard to implement a conditional here, but it makes the
control flow of the code unnecessary complex imho, especially since up
to TLS-1.2 client and server hello can be parsed by the same function
(modulo the list vs single ciphersuite and compression method, see
https://github.com/mirleft/ocaml-tls/blob/99384104e09b21a736872854e0a69615a4545780/lib/reader.ml#L295-L327).

---

From: Eric Rescorla <[email-masked]>
Date: Sat, 12 Dec 2015 12:28:01 -0800

> Is there a reason behind this change, apart from cleanup?

I'm not aware of ay reason besides cleanup. I don't feel strongly
about the current state.

-Ekr

> _______________________________________________
> TLS mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/tls
>
>

---

From: Dave Garrett <[email-masked]>
Date: Sat, 12 Dec 2015 19:14:58 -0500

> I'm not aware of ay reason besides cleanup. I don't feel strongly

Leaving cruft around increases risk of mistakes; if you leave in obsolete fields when they're not needed anymore, a dumb implementation might accidentally use it or be tricked into doing so by an attacker. That said, the world will not end if yet more kludgy placeholders are needed. I'd prefer to avoid that if at all possible, though.

Dave