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

Perform 2-RTT Handshake to upgrade to PQ when possible #4526

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

alexw91
Copy link
Contributor

@alexw91 alexw91 commented Apr 25, 2024

Resolved issues:

N/A

Description of changes:

Updates s2n to always prefer upgrading to a PQ Hybrid KeyShare whenever possible, even if doing so would require a 2 round trip handshake. s2n's current behavior is to choose the best KeyShare option possible in a 1-RTT handshake first, and only if a 1-RTT is not possible will a KeyShare algorithm that requires a 2-RTT handshake be chosen. After this change, s2n's server-side negotiation logic will consider a Hybrid PQ KeyShare as higher priority than completing the handshake in 1-RTT. This is to ensure that Hybrid PQ KeyShares will be guaranteed to be negotiated during any transition periods between one PQ KeyShare algorithm and another PQ KeyShare algorithm (where a newer PQ algorithm isn't mutually supported yet, but the older PQ algorithm can be negotiated in 2 round trips).

There is further discussion of this change in the IETF mailing list, and in a draft RFC by David Benjamin from Google:

Call-outs:

N/A

Testing:

Unit Tests

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@alexw91 alexw91 force-pushed the 2-rtt-pq-handshake branch 4 times, most recently from e923ece to e2d4a2c Compare May 21, 2024 16:35
@alexw91 alexw91 marked this pull request as ready for review May 21, 2024 17:16
@alexw91 alexw91 requested review from lrstewart and WillChilds-Klein and removed request for lrstewart May 21, 2024 17:59
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

1 participant