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

default max stream limit should be finite for security reasons #416

Closed
grmocg opened this issue Feb 25, 2014 · 3 comments
Closed

default max stream limit should be finite for security reasons #416

grmocg opened this issue Feb 25, 2014 · 3 comments

Comments

@grmocg
Copy link
Contributor

grmocg commented Feb 25, 2014

One of the interesting attack vectors against HTTP2 is to successfully allow a client to begin a session with a website, then attempt to probe its compression context by forging acks (to ensure the TCP send window continues to be open), by having javascript (or equivalent) emit links to the DOM linking to the site whose cookie/secret in the compression context is going to attack and thus causing the browser to continue to emit TLS records which the attacker then black-holes, though it observes the size of the packets).

This is particularly fun because it provides the server little/no information that it is occurring.

By limiting the number of concurrent streams, however, this attack can be greatly slowed and be forced to be visible-- since no data is sent until the TLS handshake completes, the server which has the certificate needs to be contacted if the attacker wishes to continue to press the attack. This implies that that server is given at least that signal, and it also implies that the attacker must wait for this to succeed before continuing to attack.

@martinthomson
Copy link
Collaborator

This is mitigation for #373.

@mnot
Copy link
Member

mnot commented Mar 5, 2014

Discussed in London; closing with no action.

@mnot mnot closed this as completed Mar 5, 2014
@grmocg
Copy link
Contributor Author

grmocg commented Mar 5, 2014

This proposal has no merit and would be ineffectual, since an attacker could cancel requests, causing the streams to be reset, and thus the limit is useless.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants