Subject: [quicwg/base-drafts] Ben Kaduk's Invariants Comment 4 (#4511)

From: Lucas Pardue <[email-masked]>
Date: Tue, 05 Jan 2021 19:27:05 -0800

@kaduk said:

> Section 7
> 
>    The Version Negotiation packet described in this document is not
>    integrity-protected; it only has modest protection against insertion
>    by off-path attackers.  An endpoint MUST authenticate the contents of
>    a Version Negotiation packet if it attempts a different QUIC version
>    as a result.
> 
> Can we give some indication of how this authentication might be done?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/4511

---

From: Martin Thomson <[email-masked]>
Date: Wed, 06 Jan 2021 00:57:57 -0800

This is a common question, but I'm still reluctant to say anything.

The best reference I can offer is either [draft-ietf-quic-version-negotiation](https://tools.ietf.org/html/draft-ietf-quic-version-negotiation) or [draft-thomson-tls-snip](https://martinthomson.github.io/snip/draft-thomson-tls-snip.html).  The former currently doesn't really do anything to address this problem, and I've only a promise to look into this, not even a real commitment to do something.  My personal draft is maybe better as the latest version directly addresses the problem, but that had only a lukewarm reception when I presented it and I don't like downrefs to drafts, especially those that aren't working group items.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/4511#issuecomment-755172966

---

From: kaduk <[email-masked]>
Date: Wed, 06 Jan 2021 18:52:59 -0800

I guess #4607 might have some bearing here as well.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/4511#issuecomment-755849461

---

From: Mike Bishop <[email-masked]>
Date: Thu, 07 Jan 2021 13:57:37 -0800

It *might* be done by including information from VN packets in transport parameters of the eventually-selected version, so the endpoints can validate that they selected the proper version after the fact.  That's the most obvious approach.  One could also imagine dedicated frame types, something not specific to QUIC, etc.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/4511#issuecomment-756411672

---

From: kaduk <[email-masked]>
Date: Thu, 07 Jan 2021 15:53:14 -0800

I had something along the lines of Mike's thought in mind; "There are multiple mechanisms available by which such authentication could occur, including using transport parameters and the TLS transcript hash to provide mutual agreement on the contents of the version negotiation packet, but no such mechanism is currently defined."

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/4511#issuecomment-756457184

---

From: Martin Thomson <[email-masked]>
Date: Thu, 07 Jan 2021 17:36:38 -0800

I'm still reluctant to say that.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/4511#issuecomment-756491837

---

From: Lars Eggert <[email-masked]>
Date: Tue, 12 Jan 2021 00:21:40 -0800

I'm labelling this as editorial, since the request was to "add some indication", which doesn't sound like normative text. If someone would like to argue for adding such text, please prepare a PR.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/4511#issuecomment-758489859

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 12 Jan 2021 00:34:59 -0800

I propose close with no action. I'm fine without the MUST even, but I can see the argument that it is useful in requiring authentication. I don't see the point in talking about what an endpoint _might_ do; we have to define that in a future spec.

Similar to #4697, is it worth stating that future standards-track spec will describe how to do this authentication?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/4511#issuecomment-758496874

---

From: kaduk <[email-masked]>
Date: Tue, 12 Jan 2021 17:11:13 -0800

> I propose close with no action. 

Okay.

> Similar to #4697, is it worth stating that future standards-track spec will describe how to do this authentication?

While I'm not opposed to mentioning it, I did look at this text and choose not to propose a change for it as part of #4697 .

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/4511#issuecomment-759137195

---

From: Martin Thomson <[email-masked]>
Date: Tue, 12 Jan 2021 17:38:48 -0800

Closed #4511.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/4511#event-4198990809