Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't change CID on peer CID change #2145

Closed
ekr opened this issue Dec 13, 2018 · 11 comments
Closed

Don't change CID on peer CID change #2145

ekr opened this issue Dec 13, 2018 · 11 comments
Labels
-transport design An issue that affects the design of the protocol; resolution requires consensus.

Comments

@ekr
Copy link
Collaborator

ekr commented Dec 13, 2018

activity correlated if their peers keep using the same destination connection ID
after migration. Endpoints that receive packets with a previously unused
Destination Connection ID SHOULD change to sending packets with a connection ID
that has not been used on any other network path.  The goal here is to ensure
that packets sent on different paths cannot be correlated. To fulfill this
privacy requirement, endpoints that initiate migration and use connection IDs
with length greater than zero SHOULD provide their peers with new connection IDs
before migration.

Caution:

: If both endpoints change connection ID in response to seeing a change in
  connection ID from their peer, then this can trigger an infinite sequence of
  changes.

I don't remember this being what we agreed, and it's not necessary. You only need to change when you see a new path, not after a new CID. That's how we got rid of counting to infinity.

@mikkelfj
Copy link
Contributor

I'm not sure it is always well-defined when you are on a new path and you risk accidental linkage. I believe this was the thinking behind this.

@MikeBishop
Copy link
Contributor

IIRC, @ekr is correct; we agreed to do this on peer address change.

  • If you don't know you've been rebound and you reuse a CID, you've already linked yourself; the peer changing CID in response is pointless.
  • If you either anticipate a rebinding or proactively change ports, and change both CID and address simultaneously, then it doesn't matter which of those triggers the peer to switch.
  • If you switch CID without changing address, the address links you with fairly high probability anyway, so it doesn't really matter if the peer switches.

@MikeBishop MikeBishop added design An issue that affects the design of the protocol; resolution requires consensus. -transport labels Dec 13, 2018
@martinthomson
Copy link
Member

The recommendation exists to avoid linkability across a non-migrating change in connection ID.

@ekr
Copy link
Collaborator Author

ekr commented Dec 14, 2018

I don't think that that's particularly useful, and it seems to create a bunch of new problems.

@janaiyengar
Copy link
Contributor

My recollection is what @MikeBishop says. I remember discussing that changing CID on both sides allows a flow to be broken up into flowlets, but if the address is the same on both sides, that's a pretty clear signal anyways. I am fine with requiring a change only if the peer's CID and address change.

@mikkelfj
Copy link
Contributor

but if the address is the same on both sides, that's a pretty clear signal anyways. I am fine with requiring a change only if the peer's CID and address change.

That is not sufficient because the client could be migrating from domestic wifi to mobile, to train wifi, while the server always sees the IP address of the load balancer.

@ekr
Copy link
Collaborator Author

ekr commented Dec 15, 2018 via email

@kazuho
Copy link
Member

kazuho commented Dec 17, 2018

FWIW, it helps when you have multiple connections coalesced onto a 5-tuple.

An endpoints rotates the sending CIDs of all the connections at once, and that triggers the peer to rotate all of it's sending CIDs at once. Then, it becomes very hard for an observer to track the individual connections.

@mnot
Copy link
Member

mnot commented Feb 8, 2019

Tokyo:

MT has a PR that does just this.

@martinthomson
Copy link
Member

That being #2414 (I'm closing #2413).

@ianswett
Copy link
Contributor

This was closed by #2386

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-transport design An issue that affects the design of the protocol; resolution requires consensus.
Projects
None yet
Development

No branches or pull requests

8 participants