HEETKOTADIA/QuantumShield

GitHub: HEETKOTADIA/QuantumShield

QuantumShield 是一个使用 KEMTLS 替代传统 TLS 的后量子安全平台,专注于保护 OpenID Connect 通信,以应对量子计算对加密安全的威胁。

Stars: 0 | Forks: 0

# QuantumShield:使用KEMTLS的后量子安全OpenID Connect ## 概述 QuantumShield 实现了一个**后量子OpenID Connect**系统,其中所有TLS通信均由**KEMTLS**(基于密钥封装机制的TLS)替代。它遵循“无签名TLS”架构(Wiggers 2020),其中认证通过KEM本身**隐式**完成。 **握手过程中不使用任何签名。** 所有密钥交换均使用 ML-KEM-768 (Kyber768, NIST FIPS 203)。认证通过Finished MAC证明——只有持有长期 ML-KEM-768 密钥的服务器才能解密客户端的密文。ML-DSA-65 (Dilithium3, NIST FIPS 204) 严格用于应用层的 OIDC ID 令牌。 ## 架构 ``` +--------------------+ +--------------------+ | OIDC Client | | OIDC Provider | | (Browser/App) | | (Flask Server) | | | | | | Login Form ------>| KEMTLS | /oidc/authorize | | Auth Code <------| Channel | /oidc/token | | ID Token <------| (KEM) | /oidc/userinfo | | Dashboard <------| | /oidc/jwks | +--------------------+ +--------------------+ | | | ML-KEM-768 Handshake | | (Implicit Auth - No Sig) | | AES-256-GCM Channel | | SHA3-256 Transcript Hash | +-------------------------------+ ``` ### 性能 (IITK 2026 展示结果) 以下结果是在 IITK 2026 开发者硬件 (x86-64) 上使用 `metrics/benchmark.py` 记录的。 | 指标 | PQ-TLS (参考) | **KEMTLS (优化后)** | 经典 TLS (RSA-2048) | |---|---|---|---| | **握手时延** | ~1.38 毫秒 | **~1.08 毫秒** | ~0.92 毫秒 | | **性能提升** | — | **快约 21.6%** | **PQ 安全基线** | | **消息大小** | ~10.8 KB | **~7.5 KB** | ~1.4 KB | | **PQ JWT 生成** | ~0.58 毫秒 | **~0.58 毫秒** | ~0.76 毫秒 (RSA) | ## 项目结构 ``` QuantumShield/ ├── web_demo/ # Interactive Dashboard & OIDC Proxy │ ├── server.py # Flask app: Dashboard (9000) & API │ ├── pq_crypto_real.py # Real PQ Handshake simulation engine │ ├── static/ # CSS + JS (particles.js, dashboard.js) │ └── templates/ # HTML templates (comparison.html, dashboard.html) ├── kemtls/ # Core Protocol Implementation │ ├── handshake.py # Strictly Signature-less KEMTLS logic │ └── channel.py # AES-256-GCM Secure Channel ├── kemtls_server_tcp.py # Hardened TCP KEMTLS Server (Implicit Auth) ├── kemtls_client_tcp.py # Hardened TCP KEMTLS Client ├── kemtls_http_adapter.py # HTTP-to-KEMTLS translation layer ├── metrics/ # Benchmarking & Performance │ └── benchmark.py # Real-world cryptographic benchmark script └── scripts/ # Utility scripts & flow demos ``` ## 使用的算法 | 用途 | 算法 | NIST 标准 | 安全等级 | |---|---|---|---| | 密钥封装 | ML-KEM-768 (Kyber768) | FIPS 203 | 3 级 | | 数字签名 (JWT) | ML-DSA-65 (Dilithium3) | FIPS 204 | 3 级 | | 对称加密 | AES-256-GCM | FIPS 197 | 256 位 | | 转录哈希 | SHA3-256 | FIPS 202 | 256 位 | **密码学库:** 通过 `liboqs-python` 使用的 [liboqs](https://github.com/open-quantum-safe/liboqs) (Open Quantum Safe)。 ## 基于 KEMTLS 的 OIDC 流程 1. **发现:** 客户端从 `.well-known/openid-configuration` 获取 KEM 算法 (ML-KEM-768)。 2. **KEMTLS 握手:** 通过 ML-KEM-768 建立共享密钥,并实现**隐式认证**。基准测试结果(**约 1.08 毫秒**)反映了高安全性的参考流程。 3. **授权:** OAuth 2.0 流程在建立的 KEMTLS 通道(AES-256-GCM)上进行。 4. **令牌签发:** ID 令牌使用 **ML-DSA-65** (Dilithium3) 签名,以进行独立验证。 ## 设计决策 1. **显式 vs 隐式认证:** 项目核心严格采用无签名方式以获得最大速度。基准测试(**约 1.08 毫秒**)包含了服务器的长期身份验证。 2. **双向绑定:** 我们实现了 `SERVER_FINISHED` 和 `CLIENT_FINISHED` MAC(Wiggers §3.2),以确保紧密的通道绑定并防止会话劫持。 3. **协议规模:** 通过最小化传输层中的数字签名,握手消息大小减少到 **7.5 KB**(相比完整 PQ-TLS 的约 10.8 KB)。 ## 参考文献 1. P. Schwabe, D. Stebila, T. Wiggers, "KEMTLS: Building TLS with Key Encapsulation Mechanisms," *IACR Cryptology ePrint Archive*, Report 2020/534, 2020. 2. F. Schardong et al., "Post-Quantum OpenID Connect," *Proceedings of the IEEE/ACM Conference on Security and Privacy*, 2023. 3. NIST FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM) 4. NIST FIPS 204: Module-Lattice-Based Digital Signature Standard (ML-DSA)
标签:AES-256-GCM, Dilithium3, Flask, HNDL攻击防护, KEMTLS, Kyber768, ML-DSA, ML-KEM, OpenID Connect, Post-Quantum TLS, QuantumShield, SHA3-256, TLS, 加密认证, 后量子安全, 后量子密码学, 安全密钥交换, 安全通信, 实时协议比较, 密码学, 手动系统调用, 无签名认证, 网络安全, 逆向工具, 通信协议, 量子计算抵抗, 防御工具, 隐式认证, 隐私保护