Skip to content

Commit

Permalink
Merge pull request #1621 from quicwg/retry-start-over
Browse files Browse the repository at this point in the history
Explicitly permit starting over
  • Loading branch information
martinthomson authored Aug 2, 2018
2 parents 1015d83 + d247472 commit 6cab84b
Showing 1 changed file with 8 additions and 1 deletion.
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
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

0 comments on commit 6cab84b

Please sign in to comment.