Subject: [quicwg/base-drafts] More about authenticating Version Negotiation (#3871)

From: Martin Thomson <[email-masked]>
Date: Tue, 07 Jul 2020 23:48:26 -0700

This clarifies that it is a mechanism in the target QUIC version that
authenticates the information.

This also lifts the strong requirement on authenticating the contents of
Version Negotiation.  QUIC version 1 does not do this and so does not
comply with this requirement.  The intent was always that only
information that is used needs to be authenticated in this way.

(This is a tiny bit of evasion as Version Negotiation is used in QUIC
version 1 as a signal that a version is not supported, which results in
clients abandoning connections.)

Closes #3828.
You can view, comment on, or merge this pull request online at:

  https://github.com/quicwg/base-drafts/pull/3871

-- Commit Summary --

  * More about authenticating Version Negotiation

-- File Changes --

    M draft-ietf-quic-invariants.md (8)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/3871.patch
https://github.com/quicwg/base-drafts/pull/3871.diff

-- 
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/pull/3871

---

From: Martin Thomson <[email-masked]>
Date: Tue, 07 Jul 2020 23:50:34 -0700

@martinthomson pushed 1 commit.

0f0c2ccc3d606e62bac1fa77e71709d9416330b8  Reword

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3871/files/8b1d53f27a638bbc9f5a5b4bc0dac53616aea171..0f0c2ccc3d606e62bac1fa77e71709d9416330b8

---

From: Martin Thomson <[email-masked]>
Date: Tue, 14 Jul 2020 15:08:29 -0700

@martinthomson commented on this pull request.

> @@ -334,8 +334,8 @@ requires that middleboxes retain state for every connection ID they see.
 
 The Version Negotiation packet described in this document is not
 integrity-protected; it only has modest protection against insertion by off-path
-attackers.  QUIC versions MUST define a mechanism that authenticates the values
-it contains.
+attackers.  A QUIC version that uses a Version Negotiation packet MUST define a
+mechanism to verify authenticate the values the packet contains.

```suggestion
mechanism to authenticate the values the packet contains.
```

-- 
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/pull/3871#pullrequestreview-448500570

---

From: Mike Bishop <[email-masked]>
Date: Tue, 14 Jul 2020 15:08:34 -0700

@MikeBishop commented on this pull request.

One could still argue that QUIC v1 "uses" the VN packet to indicate lack of support.

-- 
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/pull/3871#pullrequestreview-448500527

---

From: Martin Thomson <[email-masked]>
Date: Tue, 14 Jul 2020 15:08:40 -0700

4ac2b341f40beb5a0a939fcf19b85a3184b89de4  authenticate but verify

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3871/files/0f0c2ccc3d606e62bac1fa77e71709d9416330b8..4ac2b341f40beb5a0a939fcf19b85a3184b89de4

---

From: ianswett <[email-masked]>
Date: Tue, 14 Jul 2020 15:08:41 -0700

@ianswett approved this pull request.

-- 
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/pull/3871#pullrequestreview-448500662

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 14 Jul 2020 15:13:10 -0700

@janaiyengar commented on this pull request.

> @@ -298,8 +298,8 @@ contains no other fields.  An endpoint MUST ignore a packet that contains no
 Supported Version fields, or a truncated Supported Version.
 
 Version Negotiation packets do not use integrity or confidentiality protection.
-Specific QUIC versions define mechanisms to authenticate the packet as part of
-the connection establishment process.
+Specific QUIC versions might include protocol elements that allow endpoints to
+detect when the set of supported versions is modified or corrupted.

```suggestion
detect modification or corruption in the set of supported versions.
```

-- 
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/pull/3871#pullrequestreview-448500236

---

From: Mike Bishop <[email-masked]>
Date: Tue, 14 Jul 2020 15:15:45 -0700

```suggestion
attackers.  A specification which permits clients to change the QUIC version in use
based on the contents of a Version Negotiation packet MUST also define a
```
Something like this?

-- 
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/pull/3871#discussion_r454676695

---

From: Martin Thomson <[email-masked]>
Date: Tue, 14 Jul 2020 15:16:50 -0700

38a50a59c03b62bf602ce03153dbe8e56bb1fe67  Only authenticate if you change

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3871/files/4ac2b341f40beb5a0a939fcf19b85a3184b89de4..38a50a59c03b62bf602ce03153dbe8e56bb1fe67

---

From: Martin Thomson <[email-masked]>
Date: Tue, 14 Jul 2020 15:17:14 -0700

51c526569736209bef98caf749e02e7e302b38c5  modification/corruption reword

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3871/files/38a50a59c03b62bf602ce03153dbe8e56bb1fe67..51c526569736209bef98caf749e02e7e302b38c5

---

From: Martin Thomson <[email-masked]>
Date: Tue, 14 Jul 2020 19:20:31 -0700

Merged #3871 into master.

-- 
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/pull/3871#event-3546587458