Skip to content

Commit

Permalink
clarify how to handle Retry, as well as stating that a fixed mapping …
Browse files Browse the repository at this point in the history
…bet. versions and salts is better than nothing
  • Loading branch information
kazuho committed Oct 30, 2019
1 parent 69d9969 commit 373257b
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions draft-ietf-quic-transport.md
Original file line number Diff line number Diff line change
Expand Up @@ -2789,6 +2789,23 @@ following steps:
decrypts the embedded token and recovers the alternative initial salt, uses
that to decrypt the payload of the Initial packet.

* When sending a Retry in response to an Initial packet carrying an alternative
version number, the server embeds the NEW_TOKEN token found in the Initial

This comment has been minimized.

Copy link
@MikeBishop

MikeBishop Oct 30, 2019

Contributor

This is one possible design, for a server that wants to do minimal work. A server could, however, extract the salt and put it in the Retry token, no? We should word this as a suggested implementation, not as the only one.

This comment has been minimized.

Copy link
@kazuho

kazuho Oct 31, 2019

Author Member

Yes, the entire list if about one possible design, and it is been clarified as such in the sentence that precedes the list.

I have moved "typically" to the beginning of the sentence that it would be more prominent (had a typo too).

packet within the retry token it issues. Once the server receives a response
from the client carrying that retry token and the path is validated, it
decrypts the NEW_TOKEN token embedded in the retry token to recover the
alternative initial salt that is to be used for unprotecting the packet
payload.

Instead of associating a new alternative initial salt to every NEW_TOKEN token,
a server might map a fixed salt to each of the alternative version numbers it
issues. Such design is not recommended, as an active attacker might build a
list of known alternative version numbers and their initial salts and use that
list to decrypt the payload of Initial packets using those alternative version
numbers. But still, having a set of version numbers and initial salts used
concurrently is considered better than just using the default values of QUIC in
terms of preventing ossification.

A server MUST NOT send a Version Negotitation packet in response to a long
header packet with an alternative version number it has advertised.

Expand Down

0 comments on commit 373257b

Please sign in to comment.