munnamihir/cryptoscan
GitHub: munnamihir/cryptoscan
扫描代码库中的加密技术使用情况,生成带后量子风险分类的 CycloneDX CBOM,帮助团队为 PQC 迁移做资产摸底。
Stars: 0 | Forks: 0
# cryptoscan

**发现代码库中的加密技术,并生成带有后量子风险分类的 CycloneDX CBOM。**
你无法迁移你看不到的加密技术。2026 年 6 月发布的关于高级密码攻击的美国行政令设定了具有约束力的最后期限(2030 年针对密钥建立,2031 年针对签名),将其扩展至联邦承包商,并指示 CISA 和 NIST 定义**密码材料清单 (CBOM)** 的最低要素。然而,只有不到 5% 的企业拥有全面的加密资产清单,并且现有的发现工具往往会遗漏应用层加密、配置和固件。
`cryptoscan` 是一个小巧、快速的入门步骤:将其指向某个代码库,它会生成 (1) 一个经过优先级排序的、人类可读的清单,以及 (2) 一个机器可读的 CycloneDX 1.6 CBOM,其中每项资产都根据其对密码相关量子计算机的抵抗力进行了分类,并映射到其 NIST PQC 替代方案。
## 快速开始
```
# 扫描 repo,输出优先级报告
python -m cryptoscan scan ./my-project
# 编写 CycloneDX 1.6 CBOM
python -m cryptoscan scan ./my-project -o cbom.json
# markdown 报告(用于 PR 评论或 ticket)
python -m cryptoscan scan ./my-project -f md
# 拦截 CI pipeline:如果存在 quantum-vulnerable crypto,则非零退出
python -m cryptoscan scan ./my-project --fail-on-vulnerable
```
## 它能发现什么
| 类别 | 示例 | 评估结论 |
|---|---|---|
| 传统公钥 | RSA, ECDSA, ECDH, DSA, Ed25519, X25519, DH | **易受量子攻击** — 可被 Shor 算法破解 |
| 弱化的对称加密 | AES-128 | **需要审查** — 被 Grover 算法削弱一半;建议使用 AES-256 |
| 已被破解 | MD5, SHA-1, 3DES, RC4, DES | **已破解** — 无论是否涉及量子都应移除 |
| 后量子 | ML-KEM (Kyber), ML-DSA (Dilithium), SLH-DSA, Falcon, HQC | **量子安全** — 迁移目标 |
检测器涵盖 Python、JavaScript/TypeScript、Java、Go、C/C++/OpenSSL、.NET/C# 以及 PEM/TLS 配置。检测是基于规则的且可扩展的 — 只需在 `detectors.py` 中添加 `Rule`,而无需编写代码。
## 为什么选择 CycloneDX
CycloneDX 从 v1.6 版本开始就支持加密资产组件,并且该格式是监管 CBOM 指南中指定的格式。生成符合标准的输出意味着结果可以直接导入现有的 SBOM/CBOM pipeline 和工具中,而不是以一种特定的孤立格式存在。
## 架构
```
detectors.py rule set: regex -> normalized algorithm key
knowledge.py algorithm intelligence: quantum status, NIST level, replacement
scanner.py walk files, apply rules, collapse + dedupe -> findings
cbom.py findings -> CycloneDX 1.6 CBOM
report.py findings -> terminal / markdown
cli.py `cryptoscan scan `
```
## 诚实的局限性
这是基于规则的静态发现,不能替代经过验证的商业清单平台。它会在源代码和配置中查找*已命名*的加密技术;它无法解析只能通过深层依赖链到达的加密、动态选择的算法,或没有源代码的编译二进制文件。它报告的是加密技术*在*哪里,而不是哪里缺少加密技术。请将其视为一种快速的 80% 的检查,用于确定后续更困难工作的范围。
## 路线图
- 依赖感知检测(解析 lockfile;按版本标记加密库)
- 从 PEM 和 X.509 中提取密钥/参数(大小、签名算法)
- 置信度评分和误报抑制
- 用于代码扫描 UI 的 SARIF 输出
- 基于 CBOM 的 Web 仪表板(跟踪清单随时间的变化趋势 — 即“连续性”差距)
## 许可证
MIT。
标签:CBOM, 后量子密码学, 密码学, 手动系统调用, 逆向工具