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

More about authenticating Version Negotiation #3871

Merged
merged 5 commits into from Jul 15, 2020

Conversation

martinthomson
Copy link
Member

This clarifies that it is a mechanism in the target QUIC version that
authenticates the information.

This also lifts the strong requirement on authenticating the contents of
Version Negotiation. QUIC version 1 does not do this and so does not
comply with this requirement. The intent was always that only
information that is used needs to be authenticated in this way.

(This is a tiny bit of evasion as Version Negotiation is used in QUIC
version 1 as a signal that a version is not supported, which results in
clients abandoning connections.)

Closes #3828.

This clarifies that it is a mechanism in the target QUIC version that
authenticates the information.

This also lifts the strong requirement on authenticating the contents of
Version Negotiation.  QUIC version 1 does not do this and so does not
comply with this requirement.  The intent was always that only
information that is used needs to be authenticated in this way.

(This is a tiny bit of evasion as Version Negotiation is used in QUIC
version 1 as a signal that a version is not supported, which results in
clients abandoning connections.)

Closes #3828.
@martinthomson martinthomson added editorial An issue that does not affect the design of the protocol; does not require consensus. -invariants labels Jul 8, 2020
@@ -334,8 +334,8 @@ requires that middleboxes retain state for every connection ID they see.

The Version Negotiation packet described in this document is not
integrity-protected; it only has modest protection against insertion by off-path
attackers. QUIC versions MUST define a mechanism that authenticates the values
it contains.
attackers. A QUIC version that uses a Version Negotiation packet MUST define a
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One could still argue that QUIC v1 "uses" the VN packet to indicate lack of support.

Copy link
Contributor

@MikeBishop MikeBishop Jul 14, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
attackers. A QUIC version that uses a Version Negotiation packet MUST define a
attackers. A specification that permits clients to change the QUIC version in
use based on the contents of a Version Negotiation packet MUST also define a

Something like this?

martinthomson and others added 2 commits July 15, 2020 08:16
Co-authored-by: Jana Iyengar <jri.ietf@gmail.com>
@martinthomson martinthomson merged commit 07556b0 into master Jul 15, 2020
@martinthomson martinthomson deleted the authenticate-vn-external branch July 15, 2020 02:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-invariants editorial An issue that does not affect the design of the protocol; does not require consensus.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Inconsistency regarding future protection of version negoitation
4 participants