@blamejs/exceptd-skills 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +232 -0
- package/ARCHITECTURE.md +267 -0
- package/CHANGELOG.md +616 -0
- package/CONTEXT.md +203 -0
- package/LICENSE +200 -0
- package/NOTICE +82 -0
- package/README.md +307 -0
- package/SECURITY.md +73 -0
- package/agents/README.md +81 -0
- package/agents/report-generator.md +156 -0
- package/agents/skill-updater.md +102 -0
- package/agents/source-validator.md +119 -0
- package/agents/threat-researcher.md +149 -0
- package/bin/exceptd.js +183 -0
- package/data/_indexes/_meta.json +88 -0
- package/data/_indexes/activity-feed.json +362 -0
- package/data/_indexes/catalog-summaries.json +229 -0
- package/data/_indexes/chains.json +7135 -0
- package/data/_indexes/currency.json +359 -0
- package/data/_indexes/did-ladders.json +451 -0
- package/data/_indexes/frequency.json +2072 -0
- package/data/_indexes/handoff-dag.json +476 -0
- package/data/_indexes/jurisdiction-clocks.json +967 -0
- package/data/_indexes/jurisdiction-map.json +536 -0
- package/data/_indexes/recipes.json +319 -0
- package/data/_indexes/section-offsets.json +3656 -0
- package/data/_indexes/stale-content.json +14 -0
- package/data/_indexes/summary-cards.json +1736 -0
- package/data/_indexes/theater-fingerprints.json +381 -0
- package/data/_indexes/token-budget.json +2137 -0
- package/data/_indexes/trigger-table.json +1374 -0
- package/data/_indexes/xref.json +818 -0
- package/data/atlas-ttps.json +282 -0
- package/data/cve-catalog.json +496 -0
- package/data/cwe-catalog.json +1017 -0
- package/data/d3fend-catalog.json +738 -0
- package/data/dlp-controls.json +1039 -0
- package/data/exploit-availability.json +67 -0
- package/data/framework-control-gaps.json +1255 -0
- package/data/global-frameworks.json +2913 -0
- package/data/rfc-references.json +324 -0
- package/data/zeroday-lessons.json +377 -0
- package/keys/public.pem +3 -0
- package/lib/framework-gap.js +328 -0
- package/lib/job-queue.js +195 -0
- package/lib/lint-skills.js +536 -0
- package/lib/prefetch.js +372 -0
- package/lib/refresh-external.js +713 -0
- package/lib/schemas/cve-catalog.schema.json +151 -0
- package/lib/schemas/manifest.schema.json +106 -0
- package/lib/schemas/skill-frontmatter.schema.json +113 -0
- package/lib/scoring.js +149 -0
- package/lib/sign.js +197 -0
- package/lib/ttp-mapper.js +80 -0
- package/lib/validate-catalog-meta.js +198 -0
- package/lib/validate-cve-catalog.js +213 -0
- package/lib/validate-indexes.js +83 -0
- package/lib/validate-package.js +162 -0
- package/lib/validate-vendor.js +85 -0
- package/lib/verify.js +216 -0
- package/lib/worker-pool.js +84 -0
- package/manifest-snapshot.json +1833 -0
- package/manifest.json +2108 -0
- package/orchestrator/README.md +124 -0
- package/orchestrator/dispatcher.js +140 -0
- package/orchestrator/event-bus.js +146 -0
- package/orchestrator/index.js +874 -0
- package/orchestrator/pipeline.js +201 -0
- package/orchestrator/scanner.js +327 -0
- package/orchestrator/scheduler.js +137 -0
- package/package.json +113 -0
- package/sbom.cdx.json +158 -0
- package/scripts/audit-cross-skill.js +261 -0
- package/scripts/audit-perf.js +160 -0
- package/scripts/bootstrap.js +205 -0
- package/scripts/build-indexes.js +721 -0
- package/scripts/builders/activity-feed.js +79 -0
- package/scripts/builders/catalog-summaries.js +67 -0
- package/scripts/builders/currency.js +109 -0
- package/scripts/builders/cwe-chains.js +105 -0
- package/scripts/builders/did-ladders.js +149 -0
- package/scripts/builders/frequency.js +89 -0
- package/scripts/builders/jurisdiction-clocks.js +126 -0
- package/scripts/builders/recipes.js +159 -0
- package/scripts/builders/section-offsets.js +162 -0
- package/scripts/builders/stale-content.js +171 -0
- package/scripts/builders/summary-cards.js +166 -0
- package/scripts/builders/theater-fingerprints.js +198 -0
- package/scripts/builders/token-budget.js +96 -0
- package/scripts/check-manifest-snapshot.js +217 -0
- package/scripts/predeploy.js +267 -0
- package/scripts/refresh-manifest-snapshot.js +57 -0
- package/scripts/refresh-sbom.js +222 -0
- package/skills/age-gates-child-safety/skill.md +456 -0
- package/skills/ai-attack-surface/skill.md +282 -0
- package/skills/ai-c2-detection/skill.md +440 -0
- package/skills/ai-risk-management/skill.md +311 -0
- package/skills/api-security/skill.md +287 -0
- package/skills/attack-surface-pentest/skill.md +381 -0
- package/skills/cloud-security/skill.md +384 -0
- package/skills/compliance-theater/skill.md +365 -0
- package/skills/container-runtime-security/skill.md +379 -0
- package/skills/coordinated-vuln-disclosure/skill.md +473 -0
- package/skills/defensive-countermeasure-mapping/skill.md +300 -0
- package/skills/dlp-gap-analysis/skill.md +337 -0
- package/skills/email-security-anti-phishing/skill.md +206 -0
- package/skills/exploit-scoring/skill.md +331 -0
- package/skills/framework-gap-analysis/skill.md +374 -0
- package/skills/fuzz-testing-strategy/skill.md +313 -0
- package/skills/global-grc/skill.md +564 -0
- package/skills/identity-assurance/skill.md +272 -0
- package/skills/incident-response-playbook/skill.md +546 -0
- package/skills/kernel-lpe-triage/skill.md +303 -0
- package/skills/mcp-agent-trust/skill.md +326 -0
- package/skills/mlops-security/skill.md +325 -0
- package/skills/ot-ics-security/skill.md +340 -0
- package/skills/policy-exception-gen/skill.md +437 -0
- package/skills/pqc-first/skill.md +546 -0
- package/skills/rag-pipeline-security/skill.md +294 -0
- package/skills/researcher/skill.md +310 -0
- package/skills/sector-energy/skill.md +409 -0
- package/skills/sector-federal-government/skill.md +302 -0
- package/skills/sector-financial/skill.md +398 -0
- package/skills/sector-healthcare/skill.md +373 -0
- package/skills/security-maturity-tiers/skill.md +464 -0
- package/skills/skill-update-loop/skill.md +463 -0
- package/skills/supply-chain-integrity/skill.md +318 -0
- package/skills/threat-model-currency/skill.md +404 -0
- package/skills/threat-modeling-methodology/skill.md +312 -0
- package/skills/webapp-security/skill.md +281 -0
- package/skills/zeroday-gap-learn/skill.md +350 -0
- package/vendor/blamejs/LICENSE +201 -0
- package/vendor/blamejs/README.md +54 -0
- package/vendor/blamejs/_PROVENANCE.json +54 -0
- package/vendor/blamejs/retry.js +335 -0
- package/vendor/blamejs/worker-pool.js +418 -0
|
@@ -0,0 +1,546 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pqc-first
|
|
3
|
+
version: "1.0.0"
|
|
4
|
+
description: Post-quantum cryptography first mentality — hard version gates, algorithm sunset tracking, loopback learning for NIST/IETF standards evolution
|
|
5
|
+
triggers:
|
|
6
|
+
- pqc
|
|
7
|
+
- post-quantum
|
|
8
|
+
- quantum cryptography
|
|
9
|
+
- quantum safe
|
|
10
|
+
- ml-kem
|
|
11
|
+
- ml-dsa
|
|
12
|
+
- slh-dsa
|
|
13
|
+
- harvest now decrypt later
|
|
14
|
+
- quantum migration
|
|
15
|
+
- crypto migration
|
|
16
|
+
- openssl pqc
|
|
17
|
+
- fips 203
|
|
18
|
+
- fips 204
|
|
19
|
+
- fips 205
|
|
20
|
+
data_deps:
|
|
21
|
+
- cve-catalog.json
|
|
22
|
+
- framework-control-gaps.json
|
|
23
|
+
atlas_refs: []
|
|
24
|
+
attack_refs: []
|
|
25
|
+
framework_gaps:
|
|
26
|
+
- NIST-800-53-SC-8
|
|
27
|
+
- NIST-800-53-SC-28
|
|
28
|
+
rfc_refs:
|
|
29
|
+
- RFC-8446
|
|
30
|
+
- DRAFT-IETF-TLS-ECDHE-MLKEM
|
|
31
|
+
- DRAFT-IETF-TLS-HYBRID-DESIGN
|
|
32
|
+
- RFC-9180
|
|
33
|
+
- RFC-9420
|
|
34
|
+
- RFC-9794
|
|
35
|
+
- RFC-8032
|
|
36
|
+
- RFC-9106
|
|
37
|
+
forward_watch:
|
|
38
|
+
- NIST FIPS 206 (HQC — backup KEM)
|
|
39
|
+
- NIST SP 800-208 (stateful hash-based signatures — LMS/XMSS)
|
|
40
|
+
- IETF RFC for ML-KEM in TLS 1.3 (draft-connolly-tls-mlkem-key-agreement)
|
|
41
|
+
- IETF RFC for hybrid X25519+ML-KEM (RFC 9180 extension)
|
|
42
|
+
- OpenSSL 3.5 default algorithm changes
|
|
43
|
+
- CISA PQC Migration Project timelines
|
|
44
|
+
- NSA CNSS advisory updates (Commercial National Security Algorithm Suite 2.0)
|
|
45
|
+
- EU ENISA PQC transition timeline updates
|
|
46
|
+
- Browser TLS negotiation support for ML-KEM (Chrome, Firefox milestones)
|
|
47
|
+
- HSM/TPM vendor PQC firmware support timelines
|
|
48
|
+
- New CRQC timeline estimates from academic cryptanalysis
|
|
49
|
+
cwe_refs:
|
|
50
|
+
- CWE-327
|
|
51
|
+
d3fend_refs:
|
|
52
|
+
- D3-FE
|
|
53
|
+
- D3-MENCR
|
|
54
|
+
last_threat_review: "2026-05-01"
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
# PQC-First Mentality
|
|
58
|
+
|
|
59
|
+
## Threat Context (mid-2026)
|
|
60
|
+
|
|
61
|
+
The post-quantum migration is not a planning exercise. It is an operational deadline against an adversary that is already collecting ciphertext.
|
|
62
|
+
|
|
63
|
+
**Standards state as of mid-2026:**
|
|
64
|
+
- **FIPS 203 (ML-KEM)** — finalized 2024-08-13. Module-Lattice KEM. Production-ready.
|
|
65
|
+
- **FIPS 204 (ML-DSA)** — finalized 2024-08-13. Module-Lattice signature. Production-ready.
|
|
66
|
+
- **FIPS 205 (SLH-DSA)** — finalized 2024-08-13. Stateless hash-based signature. Production-ready.
|
|
67
|
+
- **FIPS 206 (HQC)** — still pending. Hamming Quasi-Cyclic backup KEM. Expected finalization 2026–2027.
|
|
68
|
+
- **NIST SP 800-227** (ML-KEM implementation guidance) — draft, finalization tracked.
|
|
69
|
+
|
|
70
|
+
**CRQC timeline pressure has tightened:**
|
|
71
|
+
- **NSA CNSA 2.0** mandates PQC for National Security Systems by 2030. This deadline is not aspirational — it is binding for NSS vendors and rolling forward through the federal supply chain.
|
|
72
|
+
- **US OMB M-23-02** requires federal agencies to maintain a PQC migration inventory and timeline. Inventory compliance is being audited; migration progress is the next reporting cycle.
|
|
73
|
+
- **EU ENISA** PQC transition mandate is progressing toward binding Member State implementation timelines; commercial entities operating in EU jurisdictions should treat 2027–2028 as the alignment window.
|
|
74
|
+
- Academic CRQC estimates have shortened. Aggressive estimates of 5–8 years (from mid-2026) now appear in peer-reviewed cryptanalysis literature, not only opinion pieces.
|
|
75
|
+
|
|
76
|
+
**Harvest-now-decrypt-later (HNDL) is the active threat surface:**
|
|
77
|
+
- Adversaries are recording encrypted traffic today. State-level adversaries have been doing this since at least 2013 (public knowledge); the scale has expanded with cheaper storage.
|
|
78
|
+
- Any data with a sensitivity window of 10+ years that is currently protected only by classical asymmetric cryptography must be treated as **already-compromised on the CRQC date**. The encryption-at-rest archive built in 2026 with RSA-2048 key-wrapping is decryptable in the 2030s by a state-level adversary that captured the keys today.
|
|
79
|
+
- HNDL is not theoretical — the operational decision is whether to accept the loss when CRQC arrives or to migrate the cryptographic envelope now while migration is possible at planned-change pace rather than incident-response pace.
|
|
80
|
+
|
|
81
|
+
**OpenSSL 3.5+ hard version gate (April 2025 release):**
|
|
82
|
+
- Ships ML-KEM, ML-DSA, and SLH-DSA in the stable mainline. The "PQC isn't available in production tooling" excuse is retired as of April 2025.
|
|
83
|
+
- Hybrid TLS key agreement (X25519MLKEM768) is the operational migration path — not a research mode.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Framework Lag Declaration
|
|
88
|
+
|
|
89
|
+
PQC migration exposes a framework class lag: every major commercial framework defines cryptographic requirements algorithm-agnostically ("strong cryptography", "appropriate cryptographic mechanisms"), which means none of them mandate PQC explicitly even though the threat model has shifted.
|
|
90
|
+
|
|
91
|
+
| Framework | Control | What It Misses for PQC Migration |
|
|
92
|
+
|---|---|---|
|
|
93
|
+
| NIST 800-53 | SC-13 (Cryptographic Protection) | Requires "cryptographic mechanisms" with FIPS-validated algorithms. ML-KEM/ML-DSA/SLH-DSA are now FIPS-validated, but SC-13 does not require their selection over classical FIPS algorithms. An organization fully compliant with SC-13 today can be using exclusively RSA-2048 and ECDSA-P-256 and still pass audit — while leaving every long-sensitivity archive HNDL-vulnerable. |
|
|
94
|
+
| NIST 800-53 | SC-8 / SC-28 (Transmission / At-Rest Confidentiality) | Algorithm-neutral. No PQC requirement. |
|
|
95
|
+
| ISO 27001:2022 | A.8.24 (Use of Cryptography) | Algorithm-agnostic. Requires that cryptographic use be "appropriate" without defining what appropriate means against a CRQC threat model. An ISO-certified org with no PQC plan is fully compliant. |
|
|
96
|
+
| PCI DSS 4.0 | §4.2.1 (Strong Cryptography in Transit) | Defines "strong cryptography" by reference to NIST guidance that pre-dates FIPS 203/204/205 mandates. AES-128+ and RSA-2048+ satisfy the requirement. No PQC mandate. |
|
|
97
|
+
| NIS2 | Art. 21(2)(h) | Requires "policies on cryptography and, where appropriate, encryption". Silent on algorithm specifics, silent on PQC, silent on HNDL. "Appropriate" is left to the entity. |
|
|
98
|
+
| DORA | Art. 9 (ICT Security Measures) | Requires encryption commensurate with risk. Does not operationalize quantum risk. |
|
|
99
|
+
| EU CRA | Essential Requirements Annex I | References "appropriate cryptography for the level of risk". No PQC specifics. |
|
|
100
|
+
| HIPAA Security Rule | §164.312(a)(2)(iv), §164.312(e)(2)(ii) | Algorithm-neutral "addressable" encryption. No PQC mandate. PHI sensitivity windows routinely exceed 20 years. |
|
|
101
|
+
| CNSA 2.0 (US classified) | Algorithm Suite | **Does** mandate ML-KEM, ML-DSA, SLH-DSA for NSS by 2030. The only major framework with a hard PQC mandate as of mid-2026 — and it applies only to National Security Systems. Commercial frameworks have not yet aligned. |
|
|
102
|
+
| UK NCSC CAF | Principle B.4 (Cryptography) | Recommends following NCSC guidance which now references PQC transition planning, but the CAF principle itself is outcome-based and does not mandate PQC. |
|
|
103
|
+
| AU ISM | Control 0467 (Cryptographic Equipment and Algorithms) | References ASD-Approved Cryptographic Algorithms (AACAs). AACA list does not yet require PQC for non-classified data. |
|
|
104
|
+
| ISO 27001:2022 | A.8.10 (Information Deletion) | HNDL counterpoint: even where deletion is implemented, an adversary who captured the ciphertext before deletion still possesses the encrypted record. Framework has no concept of "ciphertext exfiltration during transmission" as a deletion-defeating event. |
|
|
105
|
+
|
|
106
|
+
**Net effect:** an organization can be fully compliant with NIST 800-53, ISO 27001:2022, PCI DSS 4.0, NIS2, DORA, HIPAA, and SOC 2 simultaneously while having zero PQC deployment and a 30-year HNDL exposure window. Compliance is not protection in this control class.
|
|
107
|
+
|
|
108
|
+
### Expanded jurisdictional coverage (per `data/global-frameworks.json`)
|
|
109
|
+
|
|
110
|
+
Sovereign-cyber programs outside the EU/UK/AU/ISO axis are producing the most concrete PQC migration signals as of mid-2026; the cross-walk below is required for any cryptographic-control gap analysis:
|
|
111
|
+
|
|
112
|
+
- **Israel (INCD Cyber Defense Methodology v2.0 + NCD PQC guidance):** Israel's National Cyber Directorate has published PQC migration guidance for critical-infrastructure operators emphasising hybrid X25519+ML-KEM-768 as the operational TLS profile and ML-DSA for code signing in defence-industry supply chains. The INCD baseline is one of the few national methodologies that explicitly names FIPS 203/204/205 algorithms.
|
|
113
|
+
- **Switzerland (FINMA Circular 2023/1 + FADP):** FINMA's operational-resilience expectations for banks include crypto-agility as a named capability; FADP Art. 8 (data security) is interpreted by the FDPIC to require migration planning for long-sensitivity-window data — HNDL is recognised in supervisory dialogues, not yet in binding guidance.
|
|
114
|
+
- **Japan (PPC + NISC + FISC):** NISC's PQC migration roadmap (CRYPTREC-aligned) tracks NIST FIPS 203/204/205 and projects a 2030–2031 migration horizon for government systems. FISC Security Guidelines apply CRYPTREC algorithm recommendations to the financial sector; PPC interprets APPI safeguards as evolving with cryptographic state of the art.
|
|
115
|
+
- **South Korea (NIS / KISA + KCMVP):** KISA's KCMVP scheme is the Korean analogue to FIPS 140-3 and is mid-transition to incorporate KpqC (Korean PQC) candidates alongside NIST FIPS 203/204/205. Dual-algorithm requirements for export-sensitive products are emerging.
|
|
116
|
+
- **China (OSCCA / SCA + CSL):** OSCCA-mandated algorithms (SM2/SM3/SM4/SM9) are evolving toward post-quantum variants under the Chinese cryptographic standards process. Operators bridging CN and ISO/NIST regimes face a parallel-stack migration problem, not a single-stack one.
|
|
117
|
+
- **Hong Kong (HKMA TM-E-1 / SA-2):** HKMA expects authorized institutions to maintain crypto-inventory and to track PQC migration timelines as part of operational resilience. No hard mandate, but supervisory dialogues are active.
|
|
118
|
+
- **Taiwan (Cyber Security Management Act + TaiCS PQC roadmap):** CSMA-classified A/B/C CII operators are subject to TaiCS-published PQC migration milestones with sector-specific guidance from the FSC (financial) and BoE (energy).
|
|
119
|
+
- **Indonesia (UU PDP + BSSN):** BSSN cryptographic guidance references NIST FIPS publications; UU PDP Art. 35 (security obligations) is interpreted to evolve with cryptographic state of the art.
|
|
120
|
+
- **Vietnam (Cybersecurity Law + Decree 53):** Cryptographic-product certification under Decree 53 includes a parallel-stack expectation for systems handling "important data"; PQC migration is not yet mandated but is on the BCY (Government Cipher Committee) roadmap.
|
|
121
|
+
- **Brazil (LGPD + ANPD):** ANPD has signalled that "state-of-the-art" technical measures under LGPD Art. 46 will include PQC consideration for long-sensitivity-window data; no hard mandate yet.
|
|
122
|
+
- **US sub-national — NYDFS 23 NYCRR 500.15:** Encryption-of-nonpublic-information requirement is algorithm-agnostic but recently amended (Nov 2023) to require periodic CISO review of cryptographic controls — operationally this is the hook for PQC inclusion in covered entities' annual review cycles, ahead of any federal mandate beyond CNSA 2.0.
|
|
123
|
+
|
|
124
|
+
PQC migration is the clearest example of the project's hard rule #5 (global-first): the lag is not uniformly distributed — INCD, KISA, and BSI/ANSSI guidance leads, while many compliance-framework controls still treat algorithm choice as ungoverned.
|
|
125
|
+
|
|
126
|
+
### IETF Tracking — The IETF Lag IS the Framework Lag for PQC
|
|
127
|
+
|
|
128
|
+
FIPS 203/204/205 are NIST publications, but the operational PQC migration story is IETF-tracked. TLS 1.3 (RFC 8446) is not PQC-ready on its own; hybrid groups arrive via `draft-ietf-tls-ecdhe-mlkem` and the general `draft-ietf-tls-hybrid-design` framework. Both are drafts as of mid-2026. HPKE (RFC 9180, classical-only today) is the substrate for TLS ECH and MLS (RFC 9420); PQC composition for HPKE is being worked at IETF CFRG. Terminology pins on RFC 9794 (Terminology for PQC, September 2025). EdDSA (RFC 8032) — what exceptd uses for skill integrity signing — is not PQC-safe; SLH-DSA / ML-DSA migration applies here too. Compliance frameworks (NIST 800-53 SC-13, ISO 27001:2022 A.8.24, PCI DSS 4.0 §4.2.1, NIS2 Art. 21) do not yet require any specific RFC or draft. CNSA 2.0 requires PQC migration by 2030 but does not specify which IETF profile. See `data/rfc-references.json` for the tracked entries.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## TTP Mapping
|
|
133
|
+
|
|
134
|
+
This skill addresses a **future-state attack class** that is not yet represented in `data/atlas-ttps.json` or in MITRE ATT&CK as of v15. CRQC-enabled record-and-decrypt is a known gap in the ATT&CK matrix — the framework currently has no technique that captures "adversary decrypts previously-captured ciphertext using a quantum cryptanalytic capability". This is intentionally called out: the skill's `atlas_refs` and `attack_refs` are empty arrays because no published TTP currently maps cleanly to the threat. Empty arrays here are not a stand-in for missing content — they are a deliberate gap flag.
|
|
135
|
+
|
|
136
|
+
| Technique Reference | Maps To PQC Threat? | Gap Description |
|
|
137
|
+
|---|---|---|
|
|
138
|
+
| MITRE ATT&CK T1557 (Adversary-in-the-Middle) | Partial — operational family | T1557 covers AitM credential capture and traffic interception. The capture half of HNDL falls into T1557 operationally; the later decrypt phase has no ATT&CK technique. |
|
|
139
|
+
| MITRE ATT&CK T1040 (Network Sniffing) | Partial — capture phase | Covers passive traffic capture. Does not cover the strategic-archive intent of HNDL, where the captured data has no immediate use and is stored for future decryption. |
|
|
140
|
+
| MITRE ATT&CK — "Cryptanalysis via CRQC" | **MISSING** | No technique presently captures CRQC-enabled decryption of previously-captured ciphertext. Known gap in ATT&CK v15. |
|
|
141
|
+
| MITRE ATLAS | **MISSING (out of scope)** | ATLAS scope is ML/AI system attacks. CRQC cryptanalysis is not in ATLAS scope. |
|
|
142
|
+
| CAPEC-114 (Authentication Abuse) | Indirect | Forged signatures via broken signature scheme would manifest as authentication abuse, but CAPEC does not enumerate "signature scheme broken by CRQC" as a precondition. |
|
|
143
|
+
| CAPEC-475 (Signature Spoofing by Improper Validation) | Indirect | Same — the post-CRQC equivalent has no CAPEC entry. |
|
|
144
|
+
|
|
145
|
+
**Gap flag (consumed by framework-gap-analysis skill):** The CRQC-decrypt threat class is a registered gap. When MITRE publishes an ATT&CK technique covering CRQC-enabled cryptanalysis, this skill's `attack_refs` and the TTP table above require update.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Exploit Availability Matrix
|
|
150
|
+
|
|
151
|
+
| Dimension | Status | Detail |
|
|
152
|
+
|---|---|---|
|
|
153
|
+
| Public PoC available? | **Yes** | Every classical algorithm broken by Shor's algorithm has known PQC-on-classical-hardware research implementations. The mathematical attack is published; only the quantum hardware to run it at relevant scale is gated. Shor's algorithm itself has run on small problem instances on every major quantum hardware platform. |
|
|
154
|
+
| CISA KEV listed? | **N/A** | KEV tracks exploited software CVEs. Algorithm-class breaks do not appear in KEV by structure of the catalog. This is itself a framework gap — there is no equivalent KEV for "algorithm classes under active capture-and-store attack". |
|
|
155
|
+
| AI-accelerated? | **Yes** | AI-accelerated cryptanalysis on classical primitives is an active research domain in 2026. AI-discovered weakness in lattice problems is a forward-watch item; AI-acceleration of side-channel attacks on classical implementations during the migration window is already operational. |
|
|
156
|
+
| Active exploitation? | **Confirmed (capture phase)** | The HNDL capture phase is confirmed active across state-level adversaries and is publicly documented in threat-intelligence reporting. The decrypt phase awaits CRQC; the ciphertext is being accumulated now. |
|
|
157
|
+
| Live-patchable / fast migration? | **No** | Algorithm migration is months-to-years for any non-trivial cryptographic footprint. Rip-and-replace is not viable. Hybrid (X25519 + ML-KEM-768) is the operational migration path because it (a) preserves classical interop, (b) adds PQC security against HNDL immediately, and (c) lets the classical component be removed later once interop catches up. |
|
|
158
|
+
| Detection of HNDL in progress? | **No reliable detection** | Passive ciphertext capture is undetectable in transit. The only defense is to render the captured ciphertext valueless via PQC encryption before capture, or to ensure the data's sensitivity window expires before CRQC arrival. |
|
|
159
|
+
| Migration tooling maturity? | **Mature for libraries, immature for systems** | OpenSSL 3.5+, Go 1.23+, Rust ml-kem 0.3+, Bouncy Castle 1.78+ ship FIPS-aligned PQC. HSM/TPM vendor firmware support is uneven. Certificate authority PQC issuance is limited. PKI-wide migration is the hard part. |
|
|
160
|
+
|
|
161
|
+
**Cross-references:** `data/exploit-availability.json` tracks per-CVE PoC and KEV status with `last_verified` dates; algorithm-class threats use the matrix above because they do not map to a single CVE.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Core Principle
|
|
166
|
+
|
|
167
|
+
Every cryptographic design decision defaults to post-quantum algorithms. Classical-only cryptography is a deprecated choice requiring explicit justification. The question is not "should we use PQC?" — the question is "what justifies not using PQC here?"
|
|
168
|
+
|
|
169
|
+
This is not paranoia. It is operational security grounded in:
|
|
170
|
+
1. Harvest-now-decrypt-later (HNDL) attacks are ongoing
|
|
171
|
+
2. NIST standardization is complete for three algorithms (FIPS 203/204/205)
|
|
172
|
+
3. Migration timelines for sensitive data exceed expected cryptographically relevant quantum computer (CRQC) arrival windows
|
|
173
|
+
4. OpenSSL 3.5+ ships PQC primitives in stable release; there is no longer a "PQC isn't available in standard tooling" excuse
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Version Gates — Non-Negotiable Minimums
|
|
178
|
+
|
|
179
|
+
These are hard version gates. Using older versions for new PQC-capable work is a drift error, not a trade-off.
|
|
180
|
+
|
|
181
|
+
### OpenSSL
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
Minimum version: OpenSSL 3.5.0 (released April 2025)
|
|
185
|
+
Why: First OpenSSL release with ML-KEM, ML-DSA, and SLH-DSA in the stable mainline
|
|
186
|
+
Provider API for post-quantum algorithms
|
|
187
|
+
FIPS 140-3 module certification in progress for 3.x branch
|
|
188
|
+
|
|
189
|
+
Rejected versions:
|
|
190
|
+
OpenSSL 1.1.x: EOL, no PQC, security-only patches ended
|
|
191
|
+
OpenSSL 3.0.x / 3.1.x / 3.2.x / 3.3.x: Pre-stable PQC; use only if 3.5 unavailable
|
|
192
|
+
with documented justification
|
|
193
|
+
|
|
194
|
+
Check:
|
|
195
|
+
openssl version # must be >= 3.5.0
|
|
196
|
+
openssl list -key-managers | grep -i kem # ML-KEM must appear
|
|
197
|
+
openssl list -signature-algorithms | grep -i mldsa # ML-DSA must appear
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### liboqs / OQS Provider
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
Minimum: liboqs 0.11.0+ with OpenSSL OQS Provider 0.7.0+
|
|
204
|
+
Use case: Where OpenSSL 3.5 mainline PQC is insufficient (additional algorithm agility,
|
|
205
|
+
experimental algorithms, research)
|
|
206
|
+
Note: OQS provider algorithms are NOT FIPS-certified. Use for hybrid modes with a
|
|
207
|
+
FIPS-certified classical component.
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### BoringSSL (Google/Android)
|
|
211
|
+
|
|
212
|
+
```
|
|
213
|
+
Use Kyber768 (ML-KEM draft) hybrid mode: already deployed in Chrome since 2023
|
|
214
|
+
Post-FIPS-203 finalization: ML-KEM-768 via `SSL_CTX_set1_curves_list("X25519Kyber768Draft00:X25519")`
|
|
215
|
+
Note: BoringSSL follows Chrome's needs; track chromestatus.com for ML-KEM graduation
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Go
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
Minimum: Go 1.23+ (crypto/mlkem package added)
|
|
222
|
+
Go 1.24+ (full ML-KEM-768 and ML-KEM-1024 in stdlib)
|
|
223
|
+
PQC TLS: crypto/tls supports X25519MLKEM768 key agreement in Go 1.23+
|
|
224
|
+
Check: go version # must be >= 1.23
|
|
225
|
+
grep mlkem go.sum # if using crypto/mlkem directly
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Rust
|
|
229
|
+
|
|
230
|
+
```
|
|
231
|
+
Minimum: ml-kem crate 0.3.0+ (pure Rust FIPS 203 implementation)
|
|
232
|
+
ml-dsa crate 0.1.0+
|
|
233
|
+
rustls >= 0.23 with aws-lc-rs backend for PQC TLS
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Python
|
|
237
|
+
|
|
238
|
+
```
|
|
239
|
+
Minimum: cryptography >= 42.0.0 (PQC via OpenSSL 3.x bindings)
|
|
240
|
+
pqcrypto >= 0.2.0 (pure-Python reference implementations — not production use)
|
|
241
|
+
For production: use cryptography library backed by OpenSSL 3.5+
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Java / JVM
|
|
245
|
+
|
|
246
|
+
```
|
|
247
|
+
Minimum: Bouncy Castle 1.78+ (ML-KEM, ML-DSA, SLH-DSA implementations)
|
|
248
|
+
JDK 23 Preview / JDK 25+ (Module system PQC)
|
|
249
|
+
For enterprise: IBM JCE PQC provider or Bouncy Castle FIPS module
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Algorithm Registry
|
|
255
|
+
|
|
256
|
+
### Current NIST-Standardized Algorithms (Production Use)
|
|
257
|
+
|
|
258
|
+
| Algorithm | FIPS Standard | Purpose | Key Size | Notes |
|
|
259
|
+
|---|---|---|---|---|
|
|
260
|
+
| ML-KEM-512 | FIPS 203 | KEM (128-bit security) | 800B public key | Minimum — prefer ML-KEM-768 |
|
|
261
|
+
| ML-KEM-768 | FIPS 203 | KEM (192-bit security) | 1184B public key | Recommended baseline |
|
|
262
|
+
| ML-KEM-1024 | FIPS 203 | KEM (256-bit security) | 1568B public key | High-security, long-lived data |
|
|
263
|
+
| ML-DSA-44 | FIPS 204 | Signature (128-bit security) | 1312B public key | Minimum |
|
|
264
|
+
| ML-DSA-65 | FIPS 204 | Signature (192-bit security) | 1952B public key | Recommended baseline |
|
|
265
|
+
| ML-DSA-87 | FIPS 204 | Signature (256-bit security) | 2592B public key | High-security, code signing |
|
|
266
|
+
| SLH-DSA-SHAKE-128s | FIPS 205 | Hash-based signature (small) | 32B public key | Tamper-evident logs, audit chains |
|
|
267
|
+
| SLH-DSA-SHAKE-128f | FIPS 205 | Hash-based signature (fast) | 32B public key | Performance-sensitive signing |
|
|
268
|
+
| SLH-DSA-SHAKE-256f | FIPS 205 | Hash-based signature (high-sec) | 64B public key | Critical infrastructure, long-lived certs |
|
|
269
|
+
|
|
270
|
+
### Algorithm Selection Guide
|
|
271
|
+
|
|
272
|
+
```
|
|
273
|
+
Use ML-KEM-768 for:
|
|
274
|
+
- TLS key exchange (X25519 + ML-KEM-768 hybrid)
|
|
275
|
+
- Session key establishment
|
|
276
|
+
- Symmetric key encapsulation
|
|
277
|
+
- General-purpose KEM
|
|
278
|
+
|
|
279
|
+
Use ML-KEM-1024 for:
|
|
280
|
+
- Long-lived key pairs (> 5 years)
|
|
281
|
+
- Keys protecting data with > 20-year sensitivity
|
|
282
|
+
- PQC envelope for secrets requiring harvest-now-decrypt-later protection
|
|
283
|
+
|
|
284
|
+
Use ML-DSA-65 for:
|
|
285
|
+
- Code signing
|
|
286
|
+
- Certificate signatures
|
|
287
|
+
- API authentication signatures
|
|
288
|
+
- JWT signing
|
|
289
|
+
|
|
290
|
+
Use SLH-DSA-SHAKE-256f for:
|
|
291
|
+
- Tamper-evident audit chain checkpoints
|
|
292
|
+
- Root certificates / trust anchors
|
|
293
|
+
- Any signature that must remain valid for > 20 years
|
|
294
|
+
|
|
295
|
+
Never use standalone (non-hybrid) for new deployments:
|
|
296
|
+
RSA (any key size), ECDH (P-256, P-384, X25519 standalone), ECDSA standalone
|
|
297
|
+
These remain for: (1) compatibility with systems that cannot negotiate PQC,
|
|
298
|
+
(2) FIPS 140-2 environments pending FIPS 140-3 recertification
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### Deprecated / Being Deprecated
|
|
302
|
+
|
|
303
|
+
| Algorithm | Status | Action Required |
|
|
304
|
+
|---|---|---|
|
|
305
|
+
| RSA-2048 | Deprecated for new use | Migrate to ML-DSA or hybrid. Existing: track rotation schedule. |
|
|
306
|
+
| RSA-4096 | Deprecated for new use (larger key doesn't help against quantum) | Same |
|
|
307
|
+
| P-256 / ECDSA-256 | Deprecated standalone for new use | Use as hybrid classical component only |
|
|
308
|
+
| P-384 / ECDSA-384 | Deprecated standalone for new use | Hybrid classical component |
|
|
309
|
+
| X25519 standalone | Deprecated for new key exchange | Use X25519 + ML-KEM-768 hybrid |
|
|
310
|
+
| AES-128 GCM | Reduce security margin post-quantum; prefer AES-256 or XChaCha20 | Migrate symmetric encryption to 256-bit |
|
|
311
|
+
| SHA-256 standalone | Reduce security margin post-quantum; prefer SHA3-256 or SHA-512 | Context-dependent migration |
|
|
312
|
+
| SHA-1, MD5 | Already broken, not quantum-related | Immediately remove |
|
|
313
|
+
|
|
314
|
+
### Classical Algorithms Retained as Hybrid Components
|
|
315
|
+
|
|
316
|
+
These algorithms remain in use as the classical component of hybrid constructions. They are not deprecated — they are downgraded from standalone to hybrid-required:
|
|
317
|
+
|
|
318
|
+
- P-384 (ECDH) — hybrid with ML-KEM (P-384 + ML-KEM-1024)
|
|
319
|
+
- X25519 — hybrid with ML-KEM-768 (X25519 + ML-KEM-768)
|
|
320
|
+
- AES-256-GCM — retained as symmetric cipher (unaffected by quantum)
|
|
321
|
+
- ChaCha20-Poly1305 / XChaCha20-Poly1305 — retained (unaffected by quantum)
|
|
322
|
+
- HMAC-SHA256/512 — retained for MAC (symmetric, quantum-safe with current key sizes)
|
|
323
|
+
- Argon2id — retained for password hashing (symmetric)
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## Hybrid Construction Requirements
|
|
328
|
+
|
|
329
|
+
All new asymmetric cryptographic operations must use hybrid mode until PQC-only is validated in the deployment context.
|
|
330
|
+
|
|
331
|
+
### Hybrid KEM Standard
|
|
332
|
+
|
|
333
|
+
```
|
|
334
|
+
Hybrid KEM = CLASSICAL_KEM + ML-KEM
|
|
335
|
+
Shared secret = KDF(classical_secret || ml_kem_secret)
|
|
336
|
+
|
|
337
|
+
Recommended combinator: SHAKE256
|
|
338
|
+
SS = SHAKE256(classical_SS || ml_kem_SS || context)
|
|
339
|
+
where context = algorithm identifiers for both components
|
|
340
|
+
|
|
341
|
+
Baseline hybrid: X25519 + ML-KEM-768
|
|
342
|
+
High-security hybrid: P-384 + ML-KEM-1024
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### Hybrid Signature Standard
|
|
346
|
+
|
|
347
|
+
```
|
|
348
|
+
Hybrid signature: Sign with ML-DSA AND classical algorithm (ECDSA/Ed25519)
|
|
349
|
+
Both signatures must verify for the message to be accepted.
|
|
350
|
+
Rationale: if one algorithm is broken (classical by quantum, PQC by classical cryptanalysis),
|
|
351
|
+
the other component still provides security.
|
|
352
|
+
|
|
353
|
+
Use composite signature formats per IETF draft-ounsworth-pq-composite-sigs
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
### TLS Configuration
|
|
357
|
+
|
|
358
|
+
```
|
|
359
|
+
TLS 1.3 minimum (TLS 1.2 only for legacy compatibility with documented justification)
|
|
360
|
+
TLS 1.3 PQC key exchange:
|
|
361
|
+
Preferred: X25519MLKEM768 (IETF RFC in progress, Chrome/Firefox supported)
|
|
362
|
+
High-security: SecP256r1MLKEM768 (IETF draft)
|
|
363
|
+
|
|
364
|
+
OpenSSL 3.5 TLS config:
|
|
365
|
+
SSL_CTX_set1_groups(ctx, "X25519MLKEM768:X25519:P-384");
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
---
|
|
369
|
+
|
|
370
|
+
## Harvest-Now-Decrypt-Later (HNDL) Threat Assessment
|
|
371
|
+
|
|
372
|
+
### What HNDL means operationally
|
|
373
|
+
|
|
374
|
+
An adversary captures encrypted traffic today and stores it. When a CRQC becomes available, they decrypt the stored ciphertext. The attack is retroactive — it works against today's captured traffic using tomorrow's quantum computer.
|
|
375
|
+
|
|
376
|
+
**Timeline assessment (mid-2026):**
|
|
377
|
+
- Conservative CRQC estimate: 10–15 years (NIST/NSA/CISA)
|
|
378
|
+
- Aggressive CRQC estimate: 5–8 years (some academic estimates)
|
|
379
|
+
- Best case: > 20 years (physical engineering optimism)
|
|
380
|
+
|
|
381
|
+
**Data sensitivity window:**
|
|
382
|
+
If data captured today must remain confidential for > N years, and CRQC arrives in < N years, HNDL is a real threat for that data.
|
|
383
|
+
|
|
384
|
+
| Data Type | Typical Sensitivity Window | HNDL Risk |
|
|
385
|
+
|---|---|---|
|
|
386
|
+
| Payment card numbers | 2–5 years | Low-Medium |
|
|
387
|
+
| Personal health information | 20+ years | High |
|
|
388
|
+
| Government classified | 25–50+ years | Critical |
|
|
389
|
+
| Corporate M&A / IP | 5–15 years | High |
|
|
390
|
+
| Long-lived API secrets | Until rotated | High if > 5 years |
|
|
391
|
+
| TLS session traffic | Session duration | Medium (protocol metadata) |
|
|
392
|
+
| Encrypted backup archives | Retention period | High if > 10 years |
|
|
393
|
+
|
|
394
|
+
### HNDL Assessment Procedure
|
|
395
|
+
|
|
396
|
+
1. Classify data by sensitivity window
|
|
397
|
+
2. For data with sensitivity window > 5 years: require ML-KEM-1024 or P-384 + ML-KEM-1024 hybrid for key exchange
|
|
398
|
+
3. For data with sensitivity window > 20 years: require additional review; consider forward-secret key exchange with hybrid PQC
|
|
399
|
+
4. For existing encrypted archives: assess re-encryption feasibility; document HNDL risk for archives that cannot be re-encrypted
|
|
400
|
+
|
|
401
|
+
---
|
|
402
|
+
|
|
403
|
+
## Loopback Learning — Standards Evolution Tracking
|
|
404
|
+
|
|
405
|
+
PQC standards change. This section is the explicit loopback mechanism: when tracked standards update, this skill must be reviewed and updated.
|
|
406
|
+
|
|
407
|
+
### What to monitor and when to trigger a skill update
|
|
408
|
+
|
|
409
|
+
| Source | What to watch | Update trigger |
|
|
410
|
+
|---|---|---|
|
|
411
|
+
| NIST PQC Project | New FIPS publications | FIPS 206 (HQC) finalization → add HQC to algorithm registry |
|
|
412
|
+
| NIST PQC Project | SP 800-227 (draft guidance for ML-KEM) | Finalization → update implementation guidance |
|
|
413
|
+
| IETF TLS WG | ML-KEM in TLS 1.3 RFC | RFC publication → update TLS configuration section |
|
|
414
|
+
| IETF LAMPS WG | Composite signatures RFC | RFC publication → update hybrid signature section |
|
|
415
|
+
| OpenSSL | 3.5+ point releases | Algorithm additions/changes → update version gate commentary |
|
|
416
|
+
| OpenSSL | FIPS 140-3 module for 3.x | Certification → update FIPS section |
|
|
417
|
+
| Chrome | ML-KEM TLS graduation | When ML-KEM becomes non-experimental → update browser compatibility |
|
|
418
|
+
| NSA CNSS | CNSA 2.0 timeline updates | New mandatory dates → update migration timeline section |
|
|
419
|
+
| CISA PQC | Migration project guidance | New sector-specific guidance → update compliance section |
|
|
420
|
+
| ENISA | EU PQC transition timeline | Publication → add to global-grc skill |
|
|
421
|
+
| Academic | CRQC timeline estimate changes | Major new estimate → update HNDL threat assessment |
|
|
422
|
+
| HSM vendors | PQC firmware support | Availability → update HSM section |
|
|
423
|
+
|
|
424
|
+
### Forward Watch Items (Tracked)
|
|
425
|
+
|
|
426
|
+
The following are in active standards development as of mid-2026. When they finalize, this skill requires update:
|
|
427
|
+
|
|
428
|
+
**HQC (Hamming Quasi-Cyclic):**
|
|
429
|
+
- Status: NIST Round 4 finalist (backup KEM to ML-KEM)
|
|
430
|
+
- Finalization: expected 2026–2027 as FIPS 206
|
|
431
|
+
- Action on finalization: add HQC to algorithm registry, note as backup KEM when ML-KEM performance is constrained
|
|
432
|
+
|
|
433
|
+
**XMSS / LMS (Stateful hash-based signatures):**
|
|
434
|
+
- Status: NIST SP 800-208 already published
|
|
435
|
+
- Note: Stateful — state management is critical; not suitable for most use cases. Add warning section on state management requirements.
|
|
436
|
+
|
|
437
|
+
**X25519 + ML-KEM-768 hybrid in TLS:**
|
|
438
|
+
- Status: IETF draft-connolly-tls-mlkem-key-agreement
|
|
439
|
+
- Chrome/Firefox: deployed in production since 2024 (Kyber768 draft), upgrading to final ML-KEM
|
|
440
|
+
- Action on RFC publication: update TLS configuration from "in progress" to "standard"
|
|
441
|
+
|
|
442
|
+
**FIPS 140-3 for OpenSSL 3.x:**
|
|
443
|
+
- Status: CMVP testing in progress
|
|
444
|
+
- Action on certification: update version gate to recommend FIPS module explicitly
|
|
445
|
+
|
|
446
|
+
---
|
|
447
|
+
|
|
448
|
+
## Framework Coverage
|
|
449
|
+
|
|
450
|
+
### What frameworks require for PQC
|
|
451
|
+
|
|
452
|
+
| Framework | PQC Requirement | Assessment |
|
|
453
|
+
|---|---|---|
|
|
454
|
+
| NIST 800-53 SC-8, SC-28 | "Employ cryptographic mechanisms" — algorithm-neutral | Adequate in intent; "appropriate" now includes PQC consideration |
|
|
455
|
+
| NSA CNSA 2.0 | Mandates ML-KEM, ML-DSA, SLH-DSA for National Security Systems | Strongest mandate; applies to NSS only |
|
|
456
|
+
| CISA PQC Guidance | Strong recommendation for all critical infrastructure | Non-binding but authoritative |
|
|
457
|
+
| EU ENISA | PQC migration recommended; no hard mandate yet | Track for 2027 timeline |
|
|
458
|
+
| ISO 27001:2022 | A.8.24 (Use of cryptography): "appropriate" — algorithm-neutral | Requires interpretation to include PQC consideration |
|
|
459
|
+
| PCI DSS 4.0 | Requirement 4: "strong cryptography" — currently defined as AES-128+, RSA-2048+ | Does not yet mandate PQC; will require update |
|
|
460
|
+
| HIPAA | "appropriate" standard — algorithm-neutral | Same as ISO interpretation |
|
|
461
|
+
| NIS2 Art. 21(2)(h) | "policies on cryptography and, where appropriate, encryption" | No PQC mandate but "appropriate policies" implies current standard |
|
|
462
|
+
|
|
463
|
+
**Key takeaway:** No major framework mandates PQC migration with hard timelines yet (except CNSA 2.0 for NSS). However, "appropriate" and "strong" cryptography requirements will be interpreted to require PQC as the standards mature and CRQC timelines tighten.
|
|
464
|
+
|
|
465
|
+
**Proactive migration now is operationally superior** to reactive migration under regulatory pressure — because migration timelines for complex cryptographic infrastructure typically exceed 2–5 years.
|
|
466
|
+
|
|
467
|
+
---
|
|
468
|
+
|
|
469
|
+
## Analysis Procedure
|
|
470
|
+
|
|
471
|
+
### Step 1: Inventory cryptographic usage
|
|
472
|
+
|
|
473
|
+
For the target system:
|
|
474
|
+
- List all asymmetric algorithms in use (key exchange, signatures, certificates)
|
|
475
|
+
- List all symmetric algorithms in use (encryption, MACs)
|
|
476
|
+
- List all hash functions in use
|
|
477
|
+
- Note: protocol (TLS, SSH, S/MIME, PGP, JOSE/JWT, etc.)
|
|
478
|
+
- Note: library + version for each usage
|
|
479
|
+
|
|
480
|
+
### Step 2: Apply version gates
|
|
481
|
+
|
|
482
|
+
For each library:
|
|
483
|
+
- OpenSSL: is version >= 3.5.0?
|
|
484
|
+
- Go: is version >= 1.23?
|
|
485
|
+
- Others: per version gate table above
|
|
486
|
+
|
|
487
|
+
### Step 3: Classify algorithms
|
|
488
|
+
|
|
489
|
+
For each algorithm in use:
|
|
490
|
+
- Quantum-safe (ML-KEM, ML-DSA, SLH-DSA, AES-256, XChaCha20, Argon2id, HMAC-SHA512, SHA3)
|
|
491
|
+
- Classical-OK-as-hybrid-component (X25519, P-384, AES-256-GCM, ChaCha20-Poly1305)
|
|
492
|
+
- Deprecated for new use (RSA, standalone X25519, P-256 standalone)
|
|
493
|
+
- Already broken (SHA-1, MD5, DES)
|
|
494
|
+
|
|
495
|
+
### Step 4: Assess HNDL exposure
|
|
496
|
+
|
|
497
|
+
For each data type protected by the cryptographic system:
|
|
498
|
+
- What is the sensitivity window?
|
|
499
|
+
- Is the key exchange quantum-safe or hybrid?
|
|
500
|
+
- What is the HNDL risk?
|
|
501
|
+
|
|
502
|
+
### Step 5: Generate migration plan
|
|
503
|
+
|
|
504
|
+
Priority order:
|
|
505
|
+
1. Long-lived key pairs protecting sensitive data (immediate migration to PQC hybrid)
|
|
506
|
+
2. TLS for systems handling long-sensitivity-window data (X25519 + ML-KEM-768 hybrid)
|
|
507
|
+
3. Certificate infrastructure (ML-DSA-65 or hybrid for code signing, root CAs)
|
|
508
|
+
4. Symmetric key sizes (ensure AES-256 throughout, not AES-128)
|
|
509
|
+
5. Hash function migration (SHA3 for new uses, SHA-256 is acceptable short-term)
|
|
510
|
+
|
|
511
|
+
---
|
|
512
|
+
|
|
513
|
+
## Output Format
|
|
514
|
+
|
|
515
|
+
```
|
|
516
|
+
## PQC Readiness Assessment
|
|
517
|
+
|
|
518
|
+
**Date:** YYYY-MM-DD
|
|
519
|
+
**OpenSSL version:** [X.X.X] — [Pass ≥3.5.0 / FAIL]
|
|
520
|
+
|
|
521
|
+
### Algorithm Inventory
|
|
522
|
+
| Usage | Current Algorithm | PQC Status | Version Gate | Migration Required |
|
|
523
|
+
|---|---|---|---|---|
|
|
524
|
+
|
|
525
|
+
### HNDL Exposure
|
|
526
|
+
| Data Type | Sensitivity Window | Key Exchange | HNDL Risk | Action |
|
|
527
|
+
|---|---|---|---|---|
|
|
528
|
+
|
|
529
|
+
### Version Gate Compliance
|
|
530
|
+
[Per library: pass/fail with specific version found]
|
|
531
|
+
|
|
532
|
+
### Migration Roadmap
|
|
533
|
+
[Priority-ordered, specific to this system's algorithm inventory]
|
|
534
|
+
|
|
535
|
+
### Forward Watch Status
|
|
536
|
+
[Which tracked standards have updated since last review; which skill sections need updating]
|
|
537
|
+
|
|
538
|
+
### Framework Compliance
|
|
539
|
+
[Per applicable framework: PQC requirement, current status, gap if any]
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
---
|
|
543
|
+
|
|
544
|
+
## Compliance Theater Check
|
|
545
|
+
|
|
546
|
+
> "Your cryptographic policy references 'strong cryptography' per [PCI DSS / HIPAA / ISO 27001]. Locate the policy definition of 'strong cryptography' and check when it was last updated. If 'strong cryptography' is defined as 'AES-128 or better, RSA-2048 or better' without reference to post-quantum algorithms: the policy is based on NIST guidance from before FIPS 203/204/205 finalization (August 2024). For any data with a sensitivity window exceeding 5 years, 'strong cryptography' as currently defined does not protect against harvest-now-decrypt-later adversaries. The policy is theater for the threat it claims to address."
|