digitalinnovator/pqc-iot-analyzer
GitHub: digitalinnovator/pqc-iot-analyzer
Rust CLI 工具,解析 IoT 协议流量并评估后量子密码学就绪度,自动检测经典密码原语并推荐 NIST PQC 替代方案。
Stars: 0 | Forks: 0
# PQC 就绪 IoT 协议分析器
用于分析 IoT 协议流量并评估后量子密码学 (PQC) 就绪度的 Rust CLI 工具。解析 CoAP、MQTT 和 RPL 数据包,检测经典密码原语,评估量子漏洞风险,并推荐 NIST PQC 替代方案。
## 动机
FIPS 203/204/205 已经定稿。IoT 设备的寿命通常为 10 到 20 年,这意味着今天部署的使用 RSA/ECDSA 的设备在 CRQC 到来时仍将运行。“现在收集,以后解密” (HNDL) 使情况变得更糟:攻击者可以今天记录加密的 IoT 流量,一旦 Shor 算法 capable 硬件出现,就能对其进行回顾性破解。传感器数据(能源、医疗、基础设施)具有长期价值,因此 IoT 中的 HNDL 风险并非假设。
该工具可自动对 IoT 协议流量进行 PQC 就绪度评估——检测正在使用的密码技术,评估其暴露程度,并将每个易受攻击的原语映射到其 NIST PQC 替代方案。
## 架构
```
+-------------------+
| CLI (clap) |
| main.rs |
+--------+----------+
|
+--------------+--------------+
| |
+-------v--------+ +---------v--------+
| protocols/ | | report/ |
| | | |
| coap.rs (7252) | | JSON + Text |
| mqtt.rs (3.1.1)| | report generator |
| rpl.rs (6550) | +--------+---------+
+-------+--------+ ^
| |
+-------v--------+ +-------+----------+
| crypto/ |--------->| analyzer/ |
| | | |
| TLS suite map | | Weighted scoring |
| OID detection | | Category breakdown|
| RPL sec parse | | PQC migration |
| Payload heur. | | recommendations |
+----------------+ +------------------+
```
| 模块 | 用途 |
|--------|---------|
| `protocols::coap` | CoAP v1 解析器 (RFC 7252) -- header、options、payload、DTLS 记录提取 |
| `protocols::mqtt` | MQTT v3.1.1/5.0 解析器 -- CONNECT、PUBLISH、SUBSCRIBE 以及 TLS 检测 |
| `protocols::rpl` | RPL 解析器 (RFC 6550) -- DIS、DIO、DAO 以及安全部分解析 |
| `crypto` | 通过 TLS cipher suites、ASN.1 OID、RPL 安全选项和 payload 启发式方法进行原语检测 |
| `analyzer` | 加权 PQC 就绪度评分,包含按类别的细分 |
| `report` | JSON 和格式化文本报告生成 |
## 安装
```
git clone https://github.com/digitalinnovator/pqc-iot-analyzer.git
cd pqc-iot-analyzer
cargo build --release
```
## 用法
```
# 使用文本输出进行分析
pqc-iot-analyzer analyze samples/mixed_traffic.hex
# JSON output
pqc-iot-analyzer analyze samples/coap_dtls.hex --format json
# 按协议过滤
pqc-iot-analyzer analyze samples/mixed_traffic.hex --protocol coap
# 扫描特定协议
pqc-iot-analyzer scan samples/mixed_traffic.hex --protocol rpl
# 生成报告
pqc-iot-analyzer report samples/coap_dtls.hex --format text
# 显示 PQC 迁移映射表
pqc-iot-analyzer mappings
```
## 示例输出
```
========================================================================
PQC-Ready IoT Protocol Analyzer -- Analysis Report
========================================================================
PQC Readiness Score: 38/100
Risk Level: HIGH
Packets Analyzed: 5
Primitives Detected: 6
Recommendations: 3
Score: [###############-------------------------] 38/100
------------------------------------------------------------------------
Category Breakdown
------------------------------------------------------------------------
Category Score Safe Vuln Unk
------------------------------------------------------
Key Exchange 0% 0 2 0
Digital Signature 0% 0 2 0
AEAD 100% 2 0 0
Hash Function 100% 1 0 0
------------------------------------------------------------------------
Detected Cryptographic Primitives
------------------------------------------------------------------------
Algorithm Category PQC Status Source
--------------------------------------------------------------------
AES-128-GCM AEAD [SAFE] TLS CipherSuite 0xC02B
AES-256-GCM AEAD [SAFE] TLS CipherSuite 0x009C
ECDHE Key Exchange [VULN] TLS CipherSuite 0xC02B
ECDSA Digital Signature [VULN] TLS CipherSuite 0xC02B
RSA Key Exchange [VULN] TLS CipherSuite 0x009C
SHA-256 Hash Function [SAFE] TLS CipherSuite 0xC02B
------------------------------------------------------------------------
PQC Migration Recommendations
------------------------------------------------------------------------
1. ECDHE --> ML-KEM-768 (FIPS 203)
Standard: FIPS 203
ML-KEM replaces ECDH key agreement. Hybrid X25519+ML-KEM-768
recommended during transition (RFC 9370).
2. ECDSA --> ML-DSA-44 (FIPS 204)
Standard: FIPS 204
ML-DSA replaces ECDSA/EdDSA; ML-DSA-44 targets NIST Level 2,
comparable to P-256.
3. RSA --> ML-KEM-768 (FIPS 203)
Standard: FIPS 203
ML-KEM (Kyber) replaces RSA key transport with IND-CCA2 secure
key encapsulation.
========================================================================
Generated by pqc-iot-analyzer v0.1.0
========================================================================
```
## PQC 迁移映射
| 经典算法 | PQC 替代方案 | NIST 标准 | 类型 |
|---|---|---|---|
| RSA (密钥传输) | ML-KEM-768 / ML-KEM-1024 | FIPS 203 | KEM |
| RSA (签名) | ML-DSA-65 / ML-DSA-87 | FIPS 204 | Signature |
| ECDSA (P-256) | ML-DSA-44 | FIPS 204 | Signature |
| ECDSA (P-384) | ML-DSA-65 | FIPS 204 | Signature |
| Ed25519 / Ed448 | ML-DSA-44 / ML-DSA-65 | FIPS 204 | Signature |
| ECDH (P-256/P-384) | ML-KEM-768 / ML-KEM-1024 | FIPS 203 | KEM |
| X25519 / X448 | ML-KEM-768 / ML-KEM-1024 | FIPS 203 | KEM |
| DH (2048/3072-bit) | ML-KEM-768 / ML-KEM-1024 | FIPS 203 | KEM |
| AES-128 | AES-256 (Grover 缓解) | -- | Symmetric |
| SHA-256 | SHA-256 / SHA-3-256 | FIPS 202 | Hash |
## 评分方法
PQC 就绪度分数 (0-100) 是密码原语类别的加权平均值:
| 类别 | 权重 | 理由 |
|---|---|---|
| 密钥交换 | 30% | 直接被 Shor 算法破解;HNDL 风险最高 |
| 数字签名 | 30% | 直接被 Shor 算法破解;身份验证妥协 |
| 对称密码 | 15% | Grover 算法将有效密钥长度减半;AES-256 仍然安全 |
| 哈希函数 | 10% | 量子加速有限;SHA-256+ 仍然足够 |
| KEM | 10% | 后量子密钥封装的存在表明了迁移进度 |
| AEAD | 5% | 认证加密继承了对称密码的安全性 |
每个类别的分数 = 量子安全原语与检测到的总原语的比率。状态未知的原语被视为半安全。
风险级别:LOW (80-100),MEDIUM (50-79),HIGH (20-49),CRITICAL (0-19)。
## 示例数据格式
十六进制编码的数据包数据,每行一个数据包。以 `#` 开头的行是注释。十六进制字符串中的空格将被忽略。
```
# CoAP GET 请求
4201000100AABB
# MQTT CONNECT v3.1.1
101600044D51545404020038000873656E736F723031
```
## 测试
```
cargo test
```
单元测试覆盖了每个协议解析器、密码检测和评分算法。集成测试验证了从十六进制输入到报告输出的完整管道。
## 参考文献
1. **FIPS 203** -- Module-Lattice-Based Key-Encapsulation Mechanism Standard (ML-KEM). NIST, 2024.
2. **FIPS 204** -- Module-Lattice-Based Digital Signature Algorithm Standard (ML-DSA). NIST, 2024.
3. **FIPS 205** -- Stateless Hash-Based Digital Signature Algorithm Standard (SLH-DSA). NIST, 2024.
4. **RFC 7252** -- The Constrained Application Protocol (CoAP). Shelby et al., 2014.
5. **RFC 6347** -- Datagram Transport Layer Security Version 1.2. Rescorla & Modadugu, 2012.
6. **RFC 6550** -- RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks. Winter et al., 2012.
7. **RFC 9431** -- MQTT Version 5.0. OASIS Standard, 2023.
8. **RFC 9370** -- Multiple Key Encapsulation Mechanism (KEM) Hybrid Key Exchange. Stebila et al., 2023.
9. **NIST SP 800-227** -- Recommendations for Transition to Post-Quantum Cryptography. NIST, 2025.
10. Sohail, M.A. et al. "Security Analysis of RPL-based IoT Networks." PLOS ONE.
## 相关工作
- **[KeyPact](https://github.com/digitalinnovator/keypact)** -- Rust 中的混合 PQC 密钥协商库。
## 作者
Muhammad Amar Sohail (amarsohail838@gmail.com)
## 许可证
MIT
标签:AES-256, CoAP, FIPS 205, HNDL, IoT安全, NIST FIPS 203, NIST FIPS 204, NIST PQC, PQC, RPL, RSA/ECDSA检测, Rust, 主机安全, 传感器数据保护, 协议分析, 可视化界面, 后量子密码学, 安全报告生成, 密码学评估, 抗量子计算, 权限提升, 漏洞评估, 物联网, 现在存储以后解密, 网络协议安全, 网络安全合规, 网络流量分析, 网络流量审计, 量子漏洞评分, 防御绕过