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

Relax age out text #172

Merged
merged 3 commits into from Jan 20, 2021
Merged

Relax age out text #172

merged 3 commits into from Jan 20, 2021

Conversation

ekr
Copy link
Collaborator

@ekr ekr commented Dec 7, 2020

You don't want to age out before you get epoch 3 because otherwise you might be dropping when you have handshake packets.

age out the epoch 1 keys upon receiving the first epoch 2 record
and SHOULD NOT accept epoch 1 data after the first epoch 3 record
prevents in TLS. Servers SHOULD NOT accept epoch 1 data after the first epoch 3 record
is received. (See {{dtls-epoch}} for the definitions of each epoch.)
Copy link
Contributor

Choose a reason for hiding this comment

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

So the original advise was too strong, but I think that this is still too strong.

Early data has been accepted, the risk exists. Being tolerant of packet ordering is a good practice. I don't see why this couldn't just be:

Servers SHOULD NOT accept records from epoch 1 indefinitely once they are able to process records from epoch 3. Though reordering of IP packets can result in records from epoch 1 arriving after records from epoch 3, this is not likely to persist for very long relative to the round trip time. Servers could discard epoch 1 data that arrives after the first epoch 3 data, or retain the ability to process epoch 1 data for a short period.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I don't see the purpose here as trying to limit damage. The complete handshake retrospectively blesses the 0-RTT data I believe. I see the purpose as just "age out keys fast". But I think your text is fine too. @chris-wood ?

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes, the goal is to encourage people not to keep 0-RTT keys too long, because they might not have PCS. The replay risk is essentially a non-issue, except to the extent that it might already have been replayed.

Copy link
Contributor

Choose a reason for hiding this comment

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

@martinthomson's suggested text seems in line with how QUIC deals with this reordering issue, so I'd vote to take his suggestion.

age out the epoch 1 keys upon receiving the first epoch 2 record
and SHOULD NOT accept epoch 1 data after the first epoch 3 record
prevents in TLS. Servers SHOULD NOT accept epoch 1 data after the first epoch 3 record
is received. (See {{dtls-epoch}} for the definitions of each epoch.)
Copy link
Contributor

Choose a reason for hiding this comment

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

@martinthomson's suggested text seems in line with how QUIC deals with this reordering issue, so I'd vote to take his suggestion.

draft-ietf-tls-dtls13.md Outdated Show resolved Hide resolved
Co-authored-by: Christopher Wood <caw@heapingbits.net>
@hannestschofenig
Copy link
Collaborator

For my understanding: what is the harm of keeping the 0-RTT keys around till the end of the handshake?

@ekr
Copy link
Collaborator Author

ekr commented Dec 28, 2020

"Yes, the goal is to encourage people not to keep 0-RTT keys too long, because they might not have PCS. The replay risk is essentially a non-issue, except to the extent that it might already have been replayed."

@chris-wood chris-wood changed the title The advise to aggressively age out was too aggressive Relax age out text Jan 4, 2021
@chris-wood chris-wood merged commit 054b8d9 into tlswg:master Jan 20, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants