When implementing 0-RTT, an in particular the ticket_age extension, we
discovered that this greatly increases the complexity of the server
state machine.  The problem is that the server is making decisions
about what to send in the ServerHello based on the content of messages
that appear after the ClientHello.  Worse, this means that the server
is making decisions based on material that is not hashed into the
session transcript [1].

David Benjamin rather flippantly described a solution to this problem:
XOR the ticket age value with something that is either derived from
the old session keys or was included in the NewSessionTicket message.

I propose we take David's solution.  After all, simple is better:

  https://github.com/tlswg/tls13-spec/pull/503

To be clear, this means we lose the generality provided by having
encrypted extensions in the client's first flight.  I can't find a
reason to be sad about that; the only other possible use for this was
encrypted SNI, but I think we can find better ways to solve that
particular problem.


[1] This lead to ugly patches like what
https://github.com/tlswg/tls13-spec/issues/501 suggests.

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

Reply via email to