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

crypto/boringssl: perform dummy seal when client resets keys too #1965

Merged
merged 1 commit into from
Mar 7, 2025

Conversation

ghedo
Copy link
Member

@ghedo ghedo commented Mar 6, 2025

This is yet more fallout from b17904e (also see 7d686e1). This time the missing dummy seal is for clients, after the initial epoch is reset (e.g. due to retry or version negotiation), which also causes the initial key material to be dervied again.

When that happens, and if the client's PTO fires (e.g. because the server is slow to respond) that will trigger the client to create a new Initial packet that will fail to seal because the initial seal context expects a packet number of 0, while the actual packet number is greater than that as it's a retransmission.

This only happens when the client's initial PTO fires because otherwise it would just send a Handshake packet instead, without using the initial key material.

This is yet more fallout from b17904e (also see 7d686e1). This time the
missing dummy seal is for clients, after the initial epoch is reset
(e.g. due to retry or version negotiation), which also causes the
initial key material to be dervied again.

When that happens, and if the client's PTO fires (e.g. because the
server is slow to respond) that will trigger the client to create a new
Initial packet that will fail to seal because the initial seal context
expects a packet number of 0, while the actual packet number is greater
than that as it's a retransmission.

This only happens when the client's initial PTO fires because otherwise
it would just send a Handshake packet instead, without using the initial
key material.
@ghedo ghedo requested a review from a team as a code owner March 6, 2025 18:24
@ghedo ghedo merged commit 987dc66 into master Mar 7, 2025
36 checks passed
@ghedo ghedo deleted the client-dummy-seal branch March 7, 2025 08:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants