OSPRH-28889: PQC: Enforce TLS 1.3 minimum for quantum-safe key exchange#593
OSPRH-28889: PQC: Enforce TLS 1.3 minimum for quantum-safe key exchange#593mcgonago wants to merge 1 commit into
Conversation
Set MinVersion to tls.VersionTLS13 on the operator's TLS configuration so that Go 1.24+ can negotiate hybrid X25519MLKEM768 (ML-KEM) key exchange. Without this floor, connections may fall back to TLS 1.2 which cannot negotiate post-quantum key exchange, leaving the operator vulnerable to Harvest Now, Decrypt Later (HNDL) attacks. Related: OSPRH-28889 Related: OSPRH-27427 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Owen McGonagle <omcgonag@redhat.com>
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: mcgonago The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
@mcgonago: This pull request references OSPRH-28889 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
Related to ssl.conf centralized to lib-common (OSPRH-30239). PQC TLS defaults will most likely follow a change in lib-common PR-697. See OSPRH-28889 for details. |
Summary
tls.VersionTLS13as the minimum TLS version for the operator's webhook and metrics serversContext
NIST has standardized ML-KEM (FIPS 203) for post-quantum key encapsulation. Go 1.24+ automatically negotiates the hybrid X25519MLKEM768 key exchange when both endpoints support TLS 1.3. Without setting
MinVersion: tls.VersionTLS13, the operator may accept TLS 1.2 connections that cannot use quantum-safe key exchange.This is PR #1 of the PQC compliance work for horizon-operator (OSPRH-27427).
Changes
cmd/main.go: Added a TLS option function that setsMinVersiontotls.VersionTLS13on the sharedtlsOptsslice, which feeds both the webhook server and metrics server TLS configurations.Validation
go build ./...-- passesgo test ./internal/horizon/...-- passesRelated tickets
Post-merge verification