Subject: [quicwg/base-drafts] Servers have to change connection IDs in Retry (#3147)

From: Martin Thomson <[email-masked]>
Date: Wed, 23 Oct 2019 20:52:23 -0700

Two changes here: better explanation of why, and a validation requirement on clients.

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

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

-- Commit Summary --

  * Retry changes the connection ID always
  * Add a MUST discard requirement for bad SCID

-- File Changes --

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

-- Patch Links --

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

---

From: Marten Seemann <[email-masked]>
Date: Wed, 23 Oct 2019 20:56:59 -0700

marten-seemann 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/3147#pullrequestreview-306307908

---

From: Kazuho Oku <[email-masked]>
Date: Wed, 23 Oct 2019 20:58:22 -0700

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/3147#pullrequestreview-306308191

---

From: ianswett <[email-masked]>
Date: Thu, 24 Oct 2019 06:52:19 -0700

ianswett approved this pull request.

Thanks for the PR!

> @@ -1636,10 +1636,14 @@ As long as it is not possible for an attacker to generate a valid token for
 its own address (see {{token-integrity}}) and the client is able to return
 that token, it proves to the server that it received the token.
 
-A server can also use a Retry packet to defer the state and processing costs
-of connection establishment.  By giving the client a different connection ID to
-use, a server can cause the connection to be routed to a server instance with
-more resources available for new connections.
+A server can also use a Retry packet to defer the state and processing costs of
+connection establishment.  Requiring the server to provide a different
+connection ID, along with the original_connection_id transport parameter defined
+in {{transport-parameter-definitions}}, forces the server to demonstrate that
+it, or an entity it cooperates with, received the original Initial packet from
+the client.  Providing a different connection ID also grants a server some
+control over how subsequent packets are routed.  This can be used to direct
+connections to a server instance with more resources available.

```suggestion
connections to a different server instance.
```

> @@ -1636,10 +1636,14 @@ As long as it is not possible for an attacker to generate a valid token for
 its own address (see {{token-integrity}}) and the client is able to return
 that token, it proves to the server that it received the token.
 
-A server can also use a Retry packet to defer the state and processing costs
-of connection establishment.  By giving the client a different connection ID to
-use, a server can cause the connection to be routed to a server instance with
-more resources available for new connections.
+A server can also use a Retry packet to defer the state and processing costs of
+connection establishment.  Requiring the server to provide a different
+connection ID, along with the original_connection_id transport parameter defined
+in {{transport-parameter-definitions}}, forces the server to demonstrate that
+it, or an entity it cooperates with, received the original Initial packet from
+the client.  Providing a different connection ID also grants a server some
+control over how subsequent packets are routed.  This can be used to direct
+connections to a server instance with more resources available.

There are lots of possible reasons why, so I wouldn't attempt to enumerate them.

-- 
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/3147#pullrequestreview-306589799

---

From: Nick Banks <[email-masked]>
Date: Thu, 24 Oct 2019 14:47:52 +0000 (UTC)

nibanks 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/3147#pullrequestreview-306634629

---

From: Martin Thomson <[email-masked]>
Date: Thu, 24 Oct 2019 22:27:11 -0700

@martinthomson pushed 1 commit.

6d5698c1c0059d7e6adb460829acd06aa8c74b68  Don't say why, it just is

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3147/files/cd51ae103b6f0f221bed411e3c803a73cb1dcacb..6d5698c1c0059d7e6adb460829acd06aa8c74b68

---

From: Martin Thomson <[email-masked]>
Date: Thu, 24 Oct 2019 22:27:23 -0700

Merged #3147 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/3147#event-2742982825

---

From: MikkelFJ <[email-masked]>
Date: Thu, 24 Oct 2019 23:37:51 -0700

mikkelfj commented on this pull request.

> @@ -4150,8 +4154,10 @@ the client included in the Source Connection ID of the Initial packet.
 
 The server includes a connection ID of its choice in the Source Connection ID
 field.  This value MUST not be equal to the Destination Connection ID field of
-the packet sent by the client.  The client MUST use this connection ID in the
-Destination Connection ID of subsequent packets that it sends.
+the packet sent by the client.  A client MUST discard a Retry packet that
+contains a Source Connection ID field that is identical to the Destination
+Connection ID field of its Initial packet.  The client MUST use this connection
+ID in the Destination Connection ID field of subsequent packets that it sends.

Post merge, but "The client MIST use this connection ID" reads as if it refers to the invalid duplicate ID.

-- 
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/3147#pullrequestreview-307006058

---

From: Martin Thomson <[email-masked]>
Date: Fri, 25 Oct 2019 01:01:00 -0700

martinthomson commented on this pull request.

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

-- 
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/3147#discussion_r338929684