Subject: [quicwg/base-drafts] ODCID is a special for validating the server address (#4344)

From: Martin Thomson <[email-masked]>
Date: Sun, 08 Nov 2020 17:03:02 -0800

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

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

-- Commit Summary --

  * ODCID is a special for validating the server address

-- File Changes --

    M draft-ietf-quic-transport.md (5)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/4344.patch
https://github.com/quicwg/base-drafts/pull/4344.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/4344

---

From: Jana Iyengar <[email-masked]>
Date: Sun, 08 Nov 2020 20:12:48 -0800

@janaiyengar approved this pull request.

An editorial suggestion, but LGTM

> +least 64 bits of entropy.  For the client, the value of the Destination
+Connection ID field in its first Initial packet also fulfills this requirement,
+such that successfully processing any packet validates the server address.

```suggestion
least 64 bits of entropy. A client can consider the server address validated on
successfully processing any packet received from the server, since for
encrypting its Initial packets,	the server uses the destination connection ID
from the client's first Initial packet (Section 5.2 of {{QUIC-TLS}}).
```

-- 
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/4344#pullrequestreview-525905798

---

From: Martin Thomson <[email-masked]>
Date: Sun, 08 Nov 2020 20:17:29 -0800

@martinthomson pushed 1 commit.

c06648102104f5641b68c0d2c0277f51c7b721b1  Magic

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/4344/files/b071df74ea202128052ab5ffea450e6bdd3f2fc2..c06648102104f5641b68c0d2c0277f51c7b721b1

---

From: Martin Thomson <[email-masked]>
Date: Sun, 08 Nov 2020 20:19:24 -0800

@martinthomson commented on this pull request.

Actually, I might want to reverse this change.  It's not just Initial encryption, it's also Retry and Version Negotiation that the ODCID helps with.

-- 
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/4344#discussion_r519544687

---

From: Kazuho Oku <[email-masked]>
Date: Sun, 08 Nov 2020 21:12:10 -0800

@kazuho commented on this pull request.

Thank you for working on the PR. LGTM modulo one minor point below.

> @@ -1928,8 +1928,10 @@ consider the peer address to have been validated.
 
 Additionally, an endpoint MAY consider the peer address validated if the peer
 uses a connection ID chosen by the endpoint and the connection ID contains at
-least 64 bits of entropy.  This means that any valid packet received by the
-client validates the server address.
+least 64 bits of entropy. A client can consider the server address validated on
+successfully processing any packet received from the server, since for

Rather than "any packet", I think we might wan to say "Initial packet"? By stating as such, we can be clear that the receipt of Retry packets does not mean that the path has been validated. We do not need to be worried about Handshake or 1-RTT packets because processing an Initial packet is the prerequisite for obtaining keys necessary to decrypt Handshake and 1-RTT packets.

-- 
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/4344#pullrequestreview-525927859

---

From: Martin Thomson <[email-masked]>
Date: Sun, 08 Nov 2020 21:58:30 -0800

So any packet is correct, if we also say "successfully processed".  Retry and VN both echo the Destination Connection ID field, and Initial packets use encryption.  This is why I think that I will roll back Jana's proposed change - at least partly.

-- 
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/4344#discussion_r519567966

---

From: Martin Thomson <[email-masked]>
Date: Sun, 08 Nov 2020 22:03:33 -0800

@martinthomson pushed 2 commits.

9f1c03c02d1cb2211b2e9c2cb80b3d15ea7e3c00  Revert "Magic"
da211523b8a525cdd13c77cc67505df6025d8fe4  More words on client validation of the server address

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/4344/files/c06648102104f5641b68c0d2c0277f51c7b721b1..da211523b8a525cdd13c77cc67505df6025d8fe4

---

From: Kazuho Oku <[email-masked]>
Date: Mon, 09 Nov 2020 00:02:15 -0800

@martinthomson Re Retry, I'm not sure if that is the case.

[Section 17.2.5.1](https://quicwg.org/base-drafts/draft-ietf-quic-transport.html#section-17.2.5.1-2) specifies that a server MUST NOT echo the value of the DCID field of an Initial packet that it receives. Therefore, for a client, receiving a Retry packet does not mean that the server has received the Initial packet carrying the DCID that the client chose.

-- 
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/4344#discussion_r519615129

---

From: Martin Thomson <[email-masked]>
Date: Mon, 09 Nov 2020 00:32:31 -0800

Oh right.  It's the authentication tag in Retry that provides that proof.  Such a complicated, fiddly protocol.

-- 
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/4344#discussion_r519630394

---

From: Kazuho Oku <[email-masked]>
Date: Mon, 09 Nov 2020 03:55:14 -0800

@kazuho 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/4344#pullrequestreview-526179377

---

From: Kazuho Oku <[email-masked]>
Date: Mon, 09 Nov 2020 03:57:43 -0800

Ah right. Receipt of Retry packets do validate the address using a different mechanism 🤦 

-- 
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/4344#discussion_r519754491

---

From: Kazuho Oku <[email-masked]>
Date: Mon, 09 Nov 2020 03:59:20 -0800

LGTM modulo https://github.com/quicwg/base-drafts/pull/4344#discussion_r519630394.

-- 
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/4344#pullrequestreview-526182198

---

From: Mike Bishop <[email-masked]>
Date: Mon, 09 Nov 2020 08:22:20 -0800

Merged #4344 into transport/generalize_cid_pv.

-- 
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/4344#event-3974617538