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

Guard initial packet against amplification attack via compression #596

Closed
mikkelfj opened this issue Jun 6, 2017 · 8 comments
Closed

Guard initial packet against amplification attack via compression #596

mikkelfj opened this issue Jun 6, 2017 · 8 comments
Labels
-transport design An issue that affects the design of the protocol; resolution requires consensus. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.

Comments

@mikkelfj
Copy link
Contributor

mikkelfj commented Jun 6, 2017

If an attacker has access to a network with efficient IP payload compression, it may be comparatively cheap for the sender to transmit Client Initial packets even if the packets are required to be 1280 bytes long. This can be mitigated by replacing padding with random data, or a some pattern that is not trivially compressible.

I am not familiar with options today, but the following RFC do discuss such a compression technology, and other options may appear in the future:
https://tools.ietf.org/html/rfc3173

@martinthomson martinthomson added design An issue that affects the design of the protocol; resolution requires consensus. -transport labels Jun 6, 2017
@martinthomson
Copy link
Member

Why do you think that an attacker would want to follow your advice to randomly pad? I would have thought that allowing randomized data would give them a greater advantage in constructing a packet that is otherwise valid, but that decompresses to something insane.

FWIW, I don't think that this is worth worrying about.

@mikkelfj
Copy link
Contributor Author

mikkelfj commented Jun 6, 2017

It would be a pseudorandom verifiable sequence, such as the fibbonnachi sequence of some initial seed.

I don't know if this is worth worrying about or not, I am just raising the potential issue. Attacks appear to come frome the most unexpected angles.

@mikkelfj
Copy link
Contributor Author

mikkelfj commented Jun 6, 2017

Related: there may be other ways to deal with this, such as proof of work instead of large packet size, but that obviously has its own issues.

@ianswett
Copy link
Contributor

ianswett commented Jun 6, 2017

To clarify, you're imagining an attacker behind a proxy which compresses packets? Given the vast majority of packets flowing through 443 are encrypted, and a large portion of the rest is the TLS handshake(which encrypts poorly), I'm not sure why one would deploy such a proxy?

If there is no reason to believe this sort of proxy is common, I would tend to agree with Martin that this isn't worth worrying about.

@mikkelfj
Copy link
Contributor Author

mikkelfj commented Jun 6, 2017

I am, for example, imagining a large cloud hosting environment with high bandwidth compressed backbone for inter-datacenter links. You could feed outbound traffic at high rates that condense at server elsewhere. Such a backbone would have no concern for port 443 at the point of compression and if a common server vulnerability was found, many hosted services could join in a DDoS attack.

For comparison, some storage networks for iSCSI do terminate TCP connections near sender and internally transfer packets using larger MTUs and possible with hardware compression to move large data volumes over a distance.

Still, I am no saying this is a major concern, just pointing out the possibillity.

@mikkelfj
Copy link
Contributor Author

mikkelfj commented Jun 6, 2017

Another example would be government controlled internet backbones used in cyber warfare that exploit a backbone compression standard at IP level or below.

@martinthomson
Copy link
Member

If this is indeed a problem, then it is a generic IP problem. We need to constrain what it is that we want to solve. I'm going to risk the wrath of our chairs and close this as out of scope.

@mnot mnot added the has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list. label Mar 5, 2019
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. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.
Projects
None yet
Development

No branches or pull requests

4 participants