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

Add Round 3 PQ TLS Policies #2842

Merged
merged 6 commits into from
Jul 2, 2021
Merged

Conversation

alexw91
Copy link
Contributor

@alexw91 alexw91 commented May 19, 2021

Resolved issues:

N/A

Description of changes:

Adds 8 new Security Policies with Post Quantum Ciphers.

Each new PQ Security Policy appends Round 3 versions of Kyber, BIKE, and SIKE to an existing security policy.

TLS 1.2 Security Policies

PQ-TLS-1-1-2021-05-17 is based on ELBSecurityPolicy-TLS-1-1-2017-01
PQ-TLS-1-0-2021-05-18 is based on 20190214
PQ-TLS-1-0-2021-05-19 is based on ELBSecurityPolicy-2016-08
PQ-TLS-1-0-2021-05-20 is based on KMS-PQ-TLS-1-0-2020-07

TLS 1.3 Security Policies

PQ-TLS-1-1-2021-05-21 is based on ELBSecurityPolicy-TLS-1-1-2017-01
PQ-TLS-1-0-2021-05-22 is based on 20190214
PQ-TLS-1-0-2021-05-23 is based on ELBSecurityPolicy-2016-08
PQ-TLS-1-0-2021-05-24 is based on KMS-PQ-TLS-1-0-2020-07

  • Found and fixed a bug where S2N_SUPPORTED_KEM_GROUPS_COUNT was smaller than required, resulting in KEM parsing code to write beyond the end of an array.
  • Added runtime array bounds check to ensure that array is not written out of bounds

Call-outs

There are still some missing Round 3 Known Answer Test vectors that are missing. I will add these Test Vectors in a follow up PR (Edit: Completed in #2936).

Testing:

Adds many new units tests that performs local TLS key exchanges using all PQ algorithms in all new PQ security policies. Extended many existing TLS 1.3 PQ unit tests to automatically test all supported KEM's.

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

tls/s2n_kem_preferences.c Outdated Show resolved Hide resolved
tls/s2n_kem_preferences.c Outdated Show resolved Hide resolved
tls/s2n_kem_preferences.c Outdated Show resolved Hide resolved
tls/s2n_tls_parameters.h Outdated Show resolved Hide resolved
@alexw91 alexw91 force-pushed the pq_security_policies_2021 branch 3 times, most recently from e4cbda5 to 110c26d Compare June 24, 2021 00:06
@alexw91 alexw91 requested a review from bbutch June 24, 2021 00:08
@alexw91 alexw91 changed the title [DRAFT] Add Round 3 PQ TLS Policies Add Round 3 PQ TLS Policies Jun 25, 2021
@alexw91 alexw91 marked this pull request as ready for review June 25, 2021 22:33
tls/s2n_tls_parameters.h Outdated Show resolved Hide resolved
tls/s2n_kem.c Outdated Show resolved Hide resolved
tls/s2n_kem.c Outdated Show resolved Hide resolved
utils/s2n_safety.h Outdated Show resolved Hide resolved
tls/s2n_kem.c Outdated Show resolved Hide resolved
tls/extensions/s2n_client_supported_groups.c Outdated Show resolved Hide resolved
tls/s2n_kem_preferences.c Show resolved Hide resolved
tls/s2n_kem_preferences.c Show resolved Hide resolved
tls/s2n_kem_preferences.c Show resolved Hide resolved
Co-authored-by: Wesley Rosenblum <55108558+WesleyRosenblum@users.noreply.github.com>
dougch pushed a commit to dougch/s2n-tls that referenced this pull request Jul 12, 2021
* Add Round 3 PQ TLS Policies

* Create S2N_SUPPORTED_KEM_GROUPS_COUNT and ALL_SUPPORTED_KEM_GROUPS, and integrate them into unit tests

* Update PQ Security Policies to use x25519 if available

* Final touches

* Address CR Feedback

* Update tls/s2n_tls_parameters.h

Co-authored-by: Wesley Rosenblum <55108558+WesleyRosenblum@users.noreply.github.com>

Co-authored-by: Wesley Rosenblum <55108558+WesleyRosenblum@users.noreply.github.com>
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.

4 participants