Folks,

I have just uploaded draft-ietf-tls-tls13-17.

The major change in this draft is the removal of the 0-RTT Finished
and resumption_context constructs and their replacement with the
psk_binder. This has a number of side effects:

- Binds in the original transcript into the resumed handshake
  whenever resumption-PSK is used.

- Provides proof of possession of the RMS by the client (subject
  to replay issues). I've moved the obfuscated_ticket_age field
  out of the early_data_indication so that it now provides the
  same limited anti-replay for non-0-RTT PSK.

- Removes the need for any early handshake encryption. This change,
  along with the dual key ladders we introduced in -16, also allowed
  us to simplify the traffic key expansion so we don't need explicit
  labels for each key (they are already used in Derive-Secret).


Other changes included:
- Tweaking the PSK key exchange modes a bit (and removing the
  inoperative ability to specify PSK auth modes, while leaving
  a hook to do it later).

- Cleaned up the cipher suite requirements for resumption and 0-RTT.
  You can resume/do PSK as long as the PSK KDF matches, but to do 0-RTT
  you need the whole cipher suite must match.


This revision resolves all the outstanding technical PRs [0] and all but
one of the non-parked technical issues (#144, whether we should remove the
redundant TLSCipherText.opaque_type and TLSCipherText.record_version
fields). We are pursuing measurements to resolve whether this will
be a compat problem but we don't have them yet.

As usual, comments welcome. We are already working on implementing
-17 in NSS/Firefox and should have it before Seoul.

-Ekr

Full Changelog
- Remove the 0-RTT Finished, resumption_context, and replace with a
  psk_binder field in the PSK itself (*)

- Restructure PSK key exchange negotiation modes (*)

- Add max_early_data_size field to TicketEarlyDataInfo (*)

- Add a 0-RTT exporter and change the transcript for the regular exporter
(*)

- Merge TicketExtensions and Extensions registry. Changes
  ticket_early_data_info code point (*)

- Replace Client.key_shares in response to HRR (*)

- Remove redundant labels for traffic key derivation (*)

- Harmonize requirements about cipher suite matching: for resumption you
  need to match KDF but for 0-RTT you need whole cipher suite. This
  allows PSKs to actually negotiate cipher suites. (*)

- Explicitly allow non-offered extensions in NewSessionTicket

- Explicitly allow predicting ClientFinished for NST

- Clarify conditions for allowing 0-RTT with PSK


[0] The two remaining outstanding PRs are:
#680: Forbid post-handshake authentication except when permitted by
      application profile. This is almost entirely a requirements-level
      change, though it would allow clients to send "unexpected_message"
      when receiving an unexpected CertificateRequest.

#612: TLS 1.3 -> TLS 2.0
      This has no change on the wire format.
_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to