Subject: Re: [quicwg/base-drafts] Better describe the use of Preferred Address (#3354)

From: Eric Kinnear <[email-masked]>
Date: Thu, 06 Feb 2020 03:47:27 -0800

erickinnear commented on this pull request.

> @@ -1036,9 +1036,9 @@ be used again and requests that the peer replace it with a new connection ID
 using a NEW_CONNECTION_ID frame.
 
 As discussed in {{migration-linkability}}, each connection ID MUST be used on
-packets sent from only one local address.  An endpoint that migrates away from a
-local address SHOULD retire all connection IDs used on that address once it no
-longer plans to use that address.
+packets sent from only one local address, and MUST NOT be used across multiple
+paths that are opened intentionally.  An endpoint SHOULD retire connection IDs
+as they become unusable.

I'd tend to agree here.

I think the normative text in question is: 
> ##### Section 9.5 Privacy Implications of Connection Migration
> ...
> An endpoint MUST use a new connection ID if it initiates connection migration as
described in {{initiating-migration}} or probes a new network path as described
in {{probing}}.  An endpoint MUST use a new connection ID in response to a
change in the address of a peer if the packet with the new peer address uses an
active connection ID that has not been previously used by the peer.

This seems to me like: 
> each connection ID MUST be used on packets sent from only one local address

still has value as normative text (although it would likely be better all in one place).

Not sure the new text improves on what's there now, does:
> , and MUST NOT be used across multiple paths that are opened intentionally.

add anything to clarity of this point?

-- 
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/3354#discussion_r375789360

---

From: Eric Kinnear <[email-masked]>
Date: Thu, 06 Feb 2020 04:16:37 -0800

Ah, I see later some of this is covered :)

-- 
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/3354#discussion_r375801092

---

From: Eric Kinnear <[email-masked]>
Date: Sun, 09 Feb 2020 23:30:45 -0800

> @@ -2194,11 +2194,13 @@ linked by any other entity.
 At any time, endpoints MAY change the Destination Connection ID they send to a
 value that has not been used on another path.
 
-An endpoint MUST use a new connection ID if it initiates connection migration as
-described in {{initiating-migration}} or probes a new network path as described
-in {{probing}}.  An endpoint MUST use a new connection ID in response to a
-change in the address of a peer if the packet with the new peer address uses an
-active connection ID that has not been previously used by the peer.
+An endpoint MUST use a new connection ID when it initiates connection migration
+as described in {{initiating-migration}} or {{preferred-address}}, or when it
+probes a new network path as described in {{probing}}, and MUST NOT reuse

Writing down the results of a discussion in ZRH about stating this in terms of endpoints (not client/server) and addresses (not paths):
- An endpoint MUST NOT reuse a CID when sending from more than one local address
- An endpoint MUST NOT reuse a CID when sending to more than one destination address

With the following exceptions/additions:
- An endpoint SHOULD NOT respond to a newly seen incoming CID with an outgoing CID that it has used before (should since it may not have a new one to use)
- An endpoint MAY skip switching if it has strong reason to believe that the remote endpoint didn't try to change (i.e. if CID didn't change and only port changed, it's likely NAT rebinding), although this exception is only necessary if it doesn't have a new one to use

(Modulo some wording tweaks)

I *think* this is the current state of the text, just rearranging to collapse the separate requirements into one cluster that's hopefully easy to understand. Will incorporate this into the SPA PR if that seems reasonable to you.

-- 
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/3354#discussion_r376900327