From 236a6423c75b7c8dc57c4222308b723530248cd0 Mon Sep 17 00:00:00 2001 From: Owen McGonagle Date: Sat, 9 May 2026 23:04:08 -0400 Subject: [PATCH] Enforce TLS 1.3 minimum for PQC key exchange 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 Signed-off-by: Owen McGonagle --- cmd/main.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cmd/main.go b/cmd/main.go index df763ea5..99d5d18f 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -124,6 +124,12 @@ func main() { tlsOpts = append(tlsOpts, disableHTTP2) } + // PQC: Enforce TLS 1.3 minimum for quantum-safe key exchange (X25519MLKEM768). + // Go 1.24+ enables hybrid ML-KEM by default, but only when TLS 1.3 is negotiated. + tlsOpts = append(tlsOpts, func(c *tls.Config) { + c.MinVersion = tls.VersionTLS13 + }) + // Create watchers for metrics and webhooks certificates var metricsCertWatcher, webhookCertWatcher *certwatcher.CertWatcher