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

Discuss loop attack prevention #42

Closed
tfpauly opened this issue Mar 11, 2021 · 6 comments
Closed

Discuss loop attack prevention #42

tfpauly opened this issue Mar 11, 2021 · 6 comments
Assignees

Comments

@tfpauly
Copy link
Collaborator

tfpauly commented Mar 11, 2021

If a proxy does not enforce the uniqueness of mappings from client-to-proxy connections and server CIDs to server-facing sockets, it is possible for a client to induce packet loops through the proxies. We should discuss this and explain in security considerations why this is critical to avoid.

I think this also means we should make the mapping requirement in Section 2.2 more stringent to be unique not only for the client-facing socket, but also the client QUIC connection.

@tfpauly tfpauly self-assigned this Mar 11, 2021
@DavidSchinazi
Copy link
Collaborator

We should also add text to ensure that proxies MUST validate the source IP address of incoming packets when checking the CID mapping - that way a node can't cause a loop without being in the loop itself (which defeats the amplification purpose of creating a loop).

@tfpauly
Copy link
Collaborator Author

tfpauly commented Mar 11, 2021

Great point!

@chris-wood
Copy link
Contributor

It's probably worth clarifying -- beyond what's already there -- that sockets mean 5 tuples here, and maybe even removing the word socket altogether. That seems like an implementation detail. And I can definitely imagine implementations binding to * as their socket and determining the 5 tuple only upon reading a packet.

@DavidSchinazi
Copy link
Collaborator

Agree with Chris, perhaps the term "socket" in the draft is more confusing than just using "5-tuple"? Many people think of a socket as a non-connected socket.

@tfpauly
Copy link
Collaborator Author

tfpauly commented Mar 17, 2021

Yeah, we can call it a 5-tuple, or just a tuple. My main concern is how easy to understand the terms "client-facing 5-tuple" and "server-facing 5-tuple" are.

@tfpauly
Copy link
Collaborator Author

tfpauly commented Jul 18, 2024

I believe loops are handled now by #104

@tfpauly tfpauly closed this as completed Jul 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants