Skip to content

Is TLSv1.2 and TLSv1.3 approved in any versions of AWS-LC-FIPS? #2921

@xnox

Description

@xnox

Security issue notifications

This is not a security issue, but a compliance one.

Problem:

ACVP testing has 3 TLS related algorithms that one can test:

  • KDF TLS (for TLSv1.0/v1.1/v1.2 without Extended Master Secret Support)
  • TLS v1.2 KDF RFC7627 (TLSv1.2 with Extended Master Secret Support)
  • TLS v1.3 KDF

Searching all Amazon vendor modules with algorithms set to "TLS v1.2 KDF RFC7627" and "TLS v1.3 KDF" brings up that only Amazon Linux OpenSSL has approved mode for modern TLS.

https://csrc.nist.gov/projects/cryptographic-algorithm-validation-program/validation-search?searchMode=implementation&vendor=Amazon&productType=-1&algorithm=164%2C165&ipp=25

Noticeably no tests for AWS-LC.

Separately if one instead searches for KDF TLS, lots of Amazon cryptographic modules show up, however all of them are likely capped at deprecated TLS v1.2 without Extended Master Secret support - or simply use TLSv1.2 with EMS / TLSv1.3 in unapproved mode and ignore service indicators.

Also security policies either do not mention TLSv1.3 at all in neither approved or unapproved service tables; or do make TLSv1.3 scenario references.

Solution:

Is TLSv1.3 vendor affirmed in AWS-LC? If yes, can the future security policies be updated to state so?

Can you please add "TLS v1.2 KDF RFC7627" and "TLS v1.3 KDF" in future ACVP tests for AWS-LC?

Competitive analysis

As a comparison, BoringCrypto does validate "TLS v1.2 KDF RFC7627" and "TLS v1.3 KDF" since 2023 submissions, see:

https://csrc.nist.gov/projects/cryptographic-algorithm-validation-program/validation-search?searchMode=implementation&vendor=Google&product=BoringCrypto&productType=-1&algorithm=164%2C165&ipp=25

Thus boringcrypto like code can be ACVP tested for these.

Requirements / Acceptance Criteria:

Please see FIPS 140-3 IG 2.4.B, Resolution, Item 7 w.r.t. TLS v1.3

Out of scope:

I actually don't know if anybody actually cares. As clearly lots of people are using TLSv1.3 and don't check service indicators and likely no auditor ever looks at this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions