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

Explicitly permit starting over #1621

Merged
merged 1 commit into from
Aug 2, 2018
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion draft-ietf-quic-transport.md
Original file line number Diff line number Diff line change
Expand Up @@ -806,7 +806,8 @@ A client MUST NOT reset the packet number it uses for 0-RTT packets. The keys
used to protect 0-RTT packets will not change as a result of responding to a
Retry or Version Negotiation packet unless the client also regenerates the
cryptographic handshake message. Sending packets with the same packet number in
that case would compromise the packet protection for all 0-RTT packets.
that case could compromise the packet protection for all 0-RTT packets because
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why the change from "would" to "could". Could seems a lot more likely.

Copy link
Member Author

Choose a reason for hiding this comment

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

It's not guaranteed - if the exact same data is sent again, then there is no compromise. And, from what I know of some implementations, that might even work. But it's a long shot. I'll tweak it to change emphasis.

the combination of key and nonce could be used to protect different content.

Receiving a Retry or Version Negotiation packet, especially a Retry that changes
the connection ID used for subsequent packets, indicates a strong possibility
Expand All @@ -818,6 +819,12 @@ MUST assume that all packets up to the current packet number are in flight,
starting from a packet number of 0. Thus, 0-RTT packets could need to use a
longer packet number encoding.

A client MAY instead generate a fresh cryptographic handshake message and start
packet numbers from 0. This ensures that new 0-RTT packets will not use the
same keys, avoiding any risk of key and nonce reuse; this also prevents 0-RTT
packets from previous handshake attempts from being accepted as part of the
connection.


### Minimum Packet Size

Expand Down