Subject: Why not exporters?

From: Watson Ladd <[email-masked]>
Date: Sun, 14 Jun 2020 16:24:59 -0400

Dear QUIC wg,

I'm afraid I missed the discussion of using exporters in the TLS QUIC
draft. Exporters would assure the domain separation from TLS, and have
an IANA registry to maintain that separation across versions. There
doesn't seem to be a good reason not to do it.

Sincerely,
Watson Ladd

---

From: "Martin Thomson" <[email-masked]>
Date: Mon, 15 Jun 2020 09:37:23 +1000

> doesn't seem to be a good reason not to do it.

Hi Watson,

We used exporters in an earlier version of the specification.  Indeed, the introduction of the early exporter in TLS 1.3 was - at least in part - in support of providing exporter keys that QUIC could use for 0-RTT.

However, when we moved to more closely following the TLS key schedule for packet protection, we decided to use TLS secrets rather than define a Handshake key exporter.  In the current design, those secrets are not used by TLS.

Domain separation is now achieved at the leaf. Until key updates occur, QUIC packet protection keys are derived from the same secrets that TLS uses for record protection, but the labels used for deriving the individual values (key, iv, hp) use a different label.  This ensures that keys cannot be synchronized.  That is in addition to the handshake being different due to containing a QUIC-specific extension and the guarantee provided by TLS that different connections have different keys. It's not as good as a clean separation might be, but there are several layers of defense.

Hope that helps,