-
Notifications
You must be signed in to change notification settings - Fork 7
DOCS-426: document hybrid PQC coverage for SaaS and Gateway #193
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
Merged
Merged
Changes from all commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
4ba3174
DOCS-426: document hybrid PQC coverage and reference page
harrison-akeyless 3d59dcd
DOCS-426: remove GODEBUG, normalize ML-KEM 768, add AKY017 enforcement
harrison-akeyless afc40a5
DOCS-426: improve PQC support reference page (metadata, matrix fix, o…
harrison-akeyless 15f0bb6
DOCS-426: strengthen PQC reference intro, matrix, client compatibilit…
harrison-akeyless 4bb0775
DOCS-426: add Windows OpenSSL verification code tab
harrison-akeyless 64ebe5f
DOCS-426: refine PQC compatibility wording and verification interpret…
harrison-akeyless d6c71ac
DOCS-426: improve PQC verification reliability and troubleshooting gu…
harrison-akeyless 86634c7
Merge branch 'v1.0' into v1.0_docs-426-pqc-hybrid-tls
harrison-akeyless 7c6689a
DOCS-426: remove remaining GODEBUG reference from docker advanced config
harrison-akeyless ac84c88
DOCS-426: add .gitleaks.toml allowlist for false positives in tooling…
harrison-akeyless b35f364
Merge branch 'v1.0' into v1.0_docs-426-pqc-hybrid-tls
harrison-akeyless e659459
Merge branch 'v1.0' into v1.0_docs-426-pqc-hybrid-tls
harrison-akeyless 2c8d56b
Merge branch 'v1.0' into v1.0_docs-426-pqc-hybrid-tls
harrison-akeyless 93d2a5e
Merge branch 'v1.0' into v1.0_docs-426-pqc-hybrid-tls
harrison-akeyless eb3bef7
Merge branch 'v1.0' into v1.0_docs-426-pqc-hybrid-tls
harrison-akeyless 16ea255
docs: update OpenSSL version requirement and clarify hybrid PQC confi…
harrison-akeyless 1387b80
Merge branch 'v1.0' into v1.0_docs-426-pqc-hybrid-tls
harrison-akeyless File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| title = "Gitleaks Configuration — technical-documentation" | ||
|
|
||
| # --------------------------------------------------------------------------- | ||
| # Global allowlist | ||
| # --------------------------------------------------------------------------- | ||
| # These entries exempt specific files that contain intentional examples or | ||
| # documentation content, not real credentials. | ||
| # --------------------------------------------------------------------------- | ||
|
|
||
| [allowlist] | ||
| description = "False-positive allowlist for files containing intentional credential-like examples" | ||
|
|
||
| # .github/LEAK_RESPONSE.md — secret-leak response runbook. | ||
| # Contains an intentional JWT header example | ||
| # (`eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...REDACTED`) used to illustrate | ||
| # how to redact JWT tokens in documentation. This is a documentation | ||
| # artifact, not a real credential. | ||
| # | ||
| # .github/markdownlint/custom-rules.js — AKY023 custom lint rule. | ||
| # Contains the string `DATABASE_PASSWORD=hardcoded123` only in a JSDoc | ||
| # comment that documents what the rule is designed to detect. This is a | ||
| # rule-description example, not a real credential. | ||
|
|
||
| paths = [ | ||
| '''\.github/LEAK_RESPONSE\.md''', | ||
| '''\.github/markdownlint/custom-rules\.js''', | ||
| ] | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
100 changes: 100 additions & 0 deletions
100
docs/Akeyless Gateway/configure-gateway/gateway-pqc-support-reference.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,100 @@ | ||
| --- | ||
| title: PQC Support Reference | ||
| excerpt: Hybrid PQC profile and coverage details for Akeyless SaaS and Gateway | ||
| deprecated: false | ||
| hidden: false | ||
| metadata: | ||
| title: 'PQC Support Reference | Akeyless' | ||
| description: 'Hybrid post-quantum cryptography (PQC) profile, coverage matrix, and verification guidance for Akeyless SaaS and Gateway TLS connections.' | ||
| robots: index | ||
| next: | ||
| description: '' | ||
| --- | ||
| Akeyless implements hybrid post-quantum cryptography (PQC) for TLS connections between clients and both the Akeyless SaaS platform and Akeyless Gateway deployments. This page provides the cryptographic profile, coverage matrix, and verification steps for compliance and operational reference. | ||
|
|
||
| ## Cryptography Profile | ||
|
|
||
| Akeyless TLS hybrid PQC connections use the following profile: | ||
|
|
||
| | Parameter | Value | | ||
| | --- | --- | | ||
| | TLS version | `TLS 1.3` | | ||
| | Hybrid key exchange identifier | `X25519MLKEM768` | | ||
| | Classical component | X25519 | | ||
| | Post-quantum component | ML-KEM 768 (NIST FIPS 203) | | ||
|
|
||
| `X25519MLKEM768` indicates a hybrid key exchange where both classical and post-quantum algorithms participate in the TLS handshake. | ||
|
|
||
| ## Coverage and Configuration Matrix | ||
|
|
||
| | Connection path | Hybrid PQC support | Required action | | ||
| | --- | --- | --- | | ||
| | Client to Akeyless SaaS | Enabled by default | No user configuration required | | ||
| | Client to Akeyless Gateway endpoint | Supported, configuration required | Set `MIN_TLS_VERSION=TLSv1.3` on the Gateway deployment | | ||
| | Gateway to Akeyless SaaS | Enabled by default | No user configuration required | | ||
|
|
||
| ## Gateway Configuration Requirements | ||
|
|
||
| To enable hybrid PQC for the Akeyless Gateway endpoint, set the following environment variable in the deployment: | ||
|
|
||
| * `MIN_TLS_VERSION=TLSv1.3` | ||
|
|
||
| When TLS 1.3 is enabled, the Go runtime negotiates `X25519MLKEM768` automatically. No additional flags are required. | ||
|
|
||
| After changing `MIN_TLS_VERSION`, restart or redeploy the Gateway so the updated value is applied. | ||
|
|
||
| Deployment examples: | ||
|
|
||
| * [Gateway Docker Advanced Configuration](https://docs.akeyless.io/docs/gateway-docker-advanced-configuration) | ||
| * [Gateway Kubernetes Helm Values Reference](https://docs.akeyless.io/docs/gateway-kubernetes-helm-values-reference) | ||
|
|
||
| ## Client Compatibility | ||
|
|
||
| Hybrid PQC key exchange requires both peers to support `X25519MLKEM768`. The following clients negotiate it automatically: | ||
|
|
||
| * Current major browsers | ||
| * Go runtime 1.24 and later (including the Akeyless Go SDK and CLI) | ||
|
|
||
| Older clients that do not support `X25519MLKEM768` fall back to a classical key exchange without disrupting the TLS connection. | ||
|
|
||
| ## Verification Guidance | ||
|
|
||
| To verify hybrid PQC on a Gateway endpoint using a browser: | ||
|
|
||
| 1. Open the Gateway endpoint over HTTPS in a browser. | ||
| 2. Open the browser connection security details. | ||
| 3. Confirm the negotiated key exchange includes `X25519MLKEM768`. | ||
|
|
||
| To verify using OpenSSL (requires OpenSSL 3.5.0 or later): | ||
|
|
||
| ```shell Linux and macOS | ||
| openssl s_client -connect <gateway-host>:<port> -tls1_3 2>&1 | grep "Server Temp Key" | ||
| ``` | ||
| ```powershell Windows | ||
| openssl s_client -connect <gateway-host>:<port> -tls1_3 2>&1 | Select-String "Server Temp Key" | ||
| ``` | ||
|
|
||
| A hybrid PQC key exchange returns output similar to: | ||
|
|
||
| ```text | ||
| Server Temp Key: X25519MLKEM768 | ||
| ``` | ||
|
|
||
| Interpretation: | ||
|
|
||
| * `Server Temp Key: X25519MLKEM768`: Hybrid PQC is active. | ||
| * `Server Temp Key: X25519`: The connection negotiated classical key exchange. | ||
|
|
||
| If you expect hybrid PQC but observe `X25519`, confirm that the client supports `X25519MLKEM768` and that the Gateway is configured with `MIN_TLS_VERSION=TLSv1.3`. | ||
|
|
||
| Troubleshooting checklist: | ||
|
|
||
| * Confirm the command is targeting the Gateway endpoint directly. | ||
| * Confirm the Gateway has restarted after applying `MIN_TLS_VERSION=TLSv1.3`. | ||
| * Confirm the client and OpenSSL version support `X25519MLKEM768`. | ||
|
|
||
| ## Related Resources | ||
|
|
||
| * [TLS Settings](https://docs.akeyless.io/docs/gateway-tls-settings) | ||
| * [FIPS Certifications](https://docs.akeyless.io/docs/fips) | ||
| * [Akeyless Blog: Akeyless Advances Security with Post-Quantum Hybrid TLS 1.3](https://www.akeyless.io/blog/post-quantum-akeyless-hybrid-tls-1-3/) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.