mcpField
P
performing-post-quantum-cryptography-migration

performing-post-quantum-cryptography-migration

github.com/mukul975安全35.2k51 次安装8 周前更新
代码仓库

关于 performing-post-quantum-cryptography-migration

面向规划后量子密码迁移的安全技能,帮助组织盘点密码算法、评估准备情况并制定路线图,涵盖 NIST 标准与混合 TLS。

主要功能

  1. 01扫描 TLS 密码算法清单
  2. 02评估密码敏捷性准备情况
  3. 03测试混合 TLS 准备度
  4. 04验证 ML-KEM 和 ML-DSA
  5. 05生成优先级迁移路线图

适用场景

  1. 01盘点 TLS 端点中的量子脆弱算法
  2. 02测试服务器对 X25519MLKEM768 的支持
  3. 03按 NIST 时间线评估迁移准备度

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill performing-post-quantum-cryptography-migration

安装后在 Claude Code 中输入/performing-post-quantum-cryptography-migration确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
references/
api-reference.md
scripts/
agent.py

详细介绍

执行后量子密码学迁移

何时使用

  • 在评估组织对 NIST 后量子密码学过渡的准备情况时
  • 在构建密码学清单以识别基础设施中易受量子攻击的算法时
  • 在评估使用 X25519MLKEM768 密钥交换的混合 TLS 1.3 配置时
  • 在测试 CRYSTALS-Kyber (ML-KEM) 和 CRYSTALS-Dilithium (ML-DSA) 算法支持时
  • 在实现密码敏捷性以同时支持经典和后量子算法时
  • 在准备与 NIST IR 8547 弃用时间表一致的迁移路线图时
  • 在配置 oqs-provider 与 OpenSSL 3.x 以支持后量子算法时

先决条件

  • Python 3.8+ 及 cryptography、requests、pyOpenSSL 库
  • OpenSSL 3.0+(推荐 3.5+ 以获得原生 ML-KEM/ML-DSA 支持)
  • 用于 OpenSSL 的 oqs-provider(用于较旧 OpenSSL 的混合 TLS 测试)
  • 访问目标服务器的网络连接以进行 TLS 评估
  • 用于基础设施扫描的管理权限
  • 熟悉 PKI、TLS 和密码学协议

核心概念

NIST 后量子密码学标准

NIST 于 2024 年 8 月 13 日发布了三项最终确定的 PQC 标准:

标准算法重命名为用途基于
FIPS 203CRYSTALS-KyberML-KEM密钥封装机制模块格
FIPS 204CRYSTALS-DilithiumML-DSA数字签名模块格
FIPS 205SPHINCS+SLH-DSA数字签名(备份)无状态哈希

ML-KEM (FIPS 203) -- 密钥交换和加密的主要标准。取代 RSA 和 ECDH 用于密钥建立。三个安全级别:ML-KEM-512、ML-KEM-768、 ML-KEM-1024。

ML-DSA (FIPS 204) -- 数字签名的主要标准。取代 RSA 和 ECDSA 用于签名。三个安全级别:ML-DSA-44、ML-DSA-65、ML-DSA-87。

SLH-DSA (FIPS 205) -- 使用基于哈希方法的备份签名标准。旨在 作为基于格的 ML-DSA 被发现存在漏洞时的后备方案。签名更大但 安全假设更保守。

易受量子攻击的算法

这些经典算法易受通过 Shor 算法进行的量子攻击:

算法用途量子威胁迁移优先级
RSA-2048/4096密钥交换、签名、加密Shor 算法破解因式分解关键
ECDH (P-256, P-384)TLS 密钥交换Shor 算法破解 ECDLP关键
ECDSA代码签名、TLS 证书Shor 算法破解 ECDLP关键
DSA遗留签名Shor 算法破解 DLP关键
DH (Diffie-Hellman)密钥交换Shor 算法破解 DLP关键
AES-128对称加密Grover 算法将密钥强度减半中等(升级到 AES-256)
SHA-256哈希Grover 算法降低至 128 位低(仍然足够)
NIST 迁移时间表 (IR 8547)
  • 2024:标准发布,迁移规划应开始
  • 2030:大多数联邦系统弃用易受量子攻击的算法
  • 2035:从 NIST 标准中完全移除易受量子攻击的算法
  • 现在:"先收集,后解密"攻击使得对长期机密和需要长期 保密的数据进行早期迁移至关重要
混合 TLS 密钥交换

在过渡期间,混合密钥交换将经典算法与 后量子算法结合。如果任一算法安全,连接仍受保护。

Hybrid Key Exchange: X25519MLKEM768
  = X25519 (classical ECDH) + ML-KEM-768 (post-quantum)

Client Hello:
  supported_groups: X25519MLKEM768, X25519, secp256r1
  key_share: X25519MLKEM768

Server Hello:
  selected_group: X25519MLKEM768
  key_share: X25519MLKEM768

Shared Secret = KDF(X25519_shared || MLKEM768_shared)

说明

阶段 1:密码资产扫描

PQC 迁移的第一步是发现整个企业中所有密码算法的使用情况。这包括 TLS 配置、证书、代码库、密钥存储和协议配置。

# Scan TLS endpoints for quantum-vulnerable algorithms
python scripts/agent.py --action scan_tls \
    --targets targets.txt \
    --output tls_inventory.json

扫描器可识别:

  • 正在使用的 TLS 协议版本
  • 密钥交换算法(RSA、ECDH、DH——均易受量子攻击)
  • 证书签名算法(RSA、ECDSA)
  • 密码套件配置
  • 证书密钥长度和到期日期
阶段 2:密码敏捷性评估

评估组织在不进行重大基础设施变更的情况下更换密码算法的能力:

# Assess crypto-agility readiness
python scripts/agent.py --action assess_agility \
    --scan-results tls_inventory.json \
    --output agility_report.json

关键评估领域:

  1. 协议灵活性:能否在不中断服务的情况下更新 TLS 配置?
  2. 库版本:已部署的密码库是否支持 PQC 算法?
  3. 证书基础设施:CA 能否签发 PQC 证书?
  4. 密钥管理:KMS 能否处理更大的 PQC 密钥长度?
  5. 硬件限制:HSM 能否支持 PQC 操作?
阶段 3:混合 TLS 就绪性测试

测试基础设施是否支持使用 X25519MLKEM768 的混合密钥交换:

# Test hybrid TLS support on target servers
python scripts/agent.py --action test_hybrid_tls \
    --target server.example.com:443 \
    --output hybrid_tls_report.json

OpenSSL 3.5+(原生 ML-KEM 支持):

# Test with native PQC support
openssl s_client -connect server.example.com:443 \
    -groups X25519MLKEM768

OpenSSL 3.0-3.4 配合 oqs-provider:

# Configure oqs-provider
# /etc/ssl/openssl-oqs.cnf
[openssl_init]
providers = provider_sect

[provider_sect]
default = default_sect
oqsprovider = oqsprovider_sect

[default_sect]
activate = 1

[oqsprovider_sect]
activate = 1
module = /usr/lib/oqs-provider/oqsprovider.so

# Test hybrid TLS
OPENSSL_CONF=/etc/ssl/openssl-oqs.cnf \
openssl s_client -connect server.example.com:443 \
    -groups x25519_mlkem768

混合 TLS 的 Web 服务器配置:

Apache httpd:

SSLEngine on
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
SSLOpenSSLConfCmd Curves X25519MLKEM768:X25519:prime256v1
SSLProtocol -all +TLSv1.2 +TLSv1.3

NGINX:

ssl_ecdh_curve X25519MLKEM768:X25519:prime256v1;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
阶段 4:ML-KEM 密钥封装验证

验证 ML-KEM(CRYSTALS-Kyber)密钥封装在您的环境中是否能正常工作:

# Test ML-KEM key encapsulation at all security levels
python scripts/agent.py --action test_mlkem \
    --output mlkem_validation.json

ML-KEM 参数对比:

参数ML-KEM-512ML-KEM-768ML-KEM-1024
安全级别NIST Level 1NIST Level 3NIST Level 5
公钥大小800 bytes1,184 bytes1,568 bytes
密文大小768 bytes1,088 bytes1,568 bytes
共享密钥32 bytes32 bytes32 bytes
相当于AES-128AES-192AES-256
阶段 5:ML-DSA 数字签名验证

验证 ML-DSA(CRYSTALS-Dilithium)签名操作:

# Test ML-DSA digital signatures
python scripts/agent.py --action test_mldsa \
    --output mldsa_validation.json

ML-DSA 参数对比:

参数ML-DSA-44ML-DSA-65ML-DSA-87
安全级别NIST Level 2NIST Level 3NIST Level 5
公钥大小1,312 bytes1,952 bytes2,592 bytes
签名大小2,420 bytes3,293 bytes4,595 bytes
私钥大小2,560 bytes4,032 bytes4,896 bytes
阶段 6:迁移路线图生成

根据资产清单和评估结果生成按优先级排序的迁移路线图:

# Generate complete migration roadmap
python scripts/agent.py --action roadmap \
    --scan-results tls_inventory.json \
    --agility-results agility_report.json \
    --output migration_roadmap.json

路线图按以下标准对系统进行优先级排序:

  1. 数据敏感性:处理长期密钥的系统优先迁移
  2. 暴露程度:面向互联网的服务优先于内部服务
  3. 密码敏捷性:能轻松更换算法的系统优先
  4. 合规要求:联邦/受监管系统按照 NIST IR 8547 时间表
  5. 依赖链:库和框架优先于应用

示例

完整评估流水线
# Step 1: Scan all TLS endpoints
python scripts/agent.py --action scan_tls --targets hosts.txt --output scan.json

# Step 2: Assess crypto-agility
python scripts/agent.py --action assess_agility --scan-results scan.json --output agility.json

# Step 3: Test hybrid TLS on critical servers
python scripts/agent.py --action test_hybrid_tls --target critical.example.com:443

# Step 4: Validate ML-KEM support
python scripts/agent.py --action test_mlkem --output mlkem.json

# Step 5: Validate ML-DSA support
python scripts/agent.py --action test_mldsa --output mldsa.json

# Step 6: Generate migration roadmap
python scripts/agent.py --action roadmap --scan-results scan.json --agility-results agility.json --output roadmap.json
快速服务器评估
# Single server PQC readiness check
python scripts/agent.py --action scan_tls --target server.example.com:443

验证清单

  • 密码学资产清单涵盖所有 TLS 端点、证书和密钥存储
  • 已识别所有量子脆弱算法(RSA、ECDH、ECDSA、DH、DSA)
  • 密码敏捷性评估记录了库版本和升级路径
  • 混合 TLS(X25519MLKEM768)已在代表性服务器配置上测试
  • ML-KEM 密钥封装已在目标安全级别(推荐 768)验证
  • ML-DSA 签名验证已针对证书链用途验证
  • SLH-DSA(FIPS 205)已作为备用签名算法评估
  • 迁移路线图按数据敏感性和合规时间线确定优先级
  • 已确认 OpenSSL 版本和 oqs-provider 兼容性
  • 网络和存储容量规划已考虑密钥大小增加
  • HSM/KMS 与 PQC 算法的兼容性已验证
  • PQC 算法在生产负载下的性能影响已基准测试
  • 已评估敏感数据通道的“先收集,后解密”风险
  • 已确认证书颁发机构的 PQC 就绪状态以支持证书颁发

参考资料

评论

支持 Markdown