itsribbZ/Enigma
GitHub: itsribbZ/Enigma
Enigma 是一款后量子密码学静态扫描器,用于检测代码库中易受量子攻击的加密算法并提供自动迁移建议。
Stars: 0 | Forks: 0
# Enigma — 后量子密码学扫描器
**在为时已晚之前,检测代码库中易受量子攻击的密码学。**
NIST 的最后期限是 2035 年。CNSA 2.0 的最后期限从 2025 年开始。你的代码中存在易受量子攻击的加密算法。Enigma 会将其找出、进行评分,并自动建议迁移路径。
## 功能
- 通过 tree-sitter 进行 **7 种语言的深度分析** — Python, Java, Go, JavaScript/TypeScript, Rust, C/C++
- **50 多种密码学 API 模式**,支持提取密钥长度
- **CycloneDX CBOM 1.7** 输出 — 用于企业安全工具链的密码学物料清单 (Cryptographic Bill of Materials)
- **SARIF 2.1.0** 输出 — 可直接接入 GitHub Code Scanning, GitLab Security, Azure DevOps
- **CNSA 2.0 截止日期倒计时** — 精确显示每种算法变为不合规的具体天数
- **QARS 风险评分** — 具备 A-F 等级的多因子量子调整风险得分 (Quantum-Adjusted Risk Score)
- **自动修复建议** — 确定性转换(MD5 → SHA-256)和模板迁移(RSA → ML-KEM-768)
- **基线差异对比** — 比较扫描结果,在 CI/CD 中仅查看新发现的问题
- **依赖扫描** — 支持 6 个生态系统 + lock 文件及传递性解析
- **抑制规则** — `.pqcignore` 文件 + 内联 `# pqc-ignore[ALGO]` 注释
- **注释剥离** — 消除由注释掉的代码引起的误报
- **证书扫描** — PEM/DER 文件分析 + 实时 TLS endpoint 检查
- **GitHub Action** — 带有 SARIF 上传功能的即插即用 CI/CD 集成
- **VS Code 扩展** — 内联诊断 + 快速修复代码操作
## 快速开始
```
git clone https://github.com/itsribbZ/Enigma.git
cd Enigma
pip install -e .
# 基础扫描
pqc-scanner scan /path/to/project
# 完整的企业 pipeline
pqc-scanner scan . --compliance --scan-deps --fix --format sarif -o results.sarif
# 为您的安全 org 提供 CBOM
pqc-scanner scan . --format cbom -o cbom.json
# 风险加权扫描
pqc-scanner scan . --sensitivity confidential --exposure internet
# CI baseline diff
pqc-scanner scan . --baseline previous.json --format json -o current.json
# 证书清单
pqc-scanner scan-certs /path/to/certs/
# 实时 TLS endpoint
pqc-scanner scan-tls example.com:443
```
## 输出格式
| 格式 | 标志 | 用例 |
|---|---|---|
| Text | `--format text` | 人类可读的终端输出 |
| JSON | `--format json` | 程序化处理 |
| HTML | `--format html` | 可共享报告 |
| SARIF | `--format sarif` | GitHub Code Scanning, Azure DevOps |
| CBOM | `--format cbom` | CycloneDX 1.7 密码学物料清单 |
## 合规框架
使用 `--compliance` 将发现结果映射到三个框架:
- **CNSA 2.0** (NSA) — 每种算法的截止日期倒计时
- **NIST IR 8547** — 联邦 PQC 过渡指南
- **PCI DSS 4.0** — 支付卡行业要求
## QARS 评分
量子调整风险得分 (Quantum-Adjusted Risk Score) 综合考量以下因素:
- 算法漏洞(Shor / Grover 攻击的易感性)
- 密钥长度分析
- Mosca 不等式紧迫性
- 数据敏感性与暴露权重
评分为 0-100 分,并带有 A-F 字母等级。
## 检测内容
| 算法 | 风险 | PQC 替代方案 |
|---|---|---|
| RSA | 严重 (Shor) | ML-KEM-768 / ML-DSA-65 |
| ECDSA / ECDH | 严重 (Shor) | ML-DSA-65 / ML-KEM-768 |
| Ed25519 | 高 (Shor) | ML-DSA-44 |
| DH / DSA | 严重 (Shor) | ML-KEM-768 / ML-DSA-65 |
| AES-128 | 中等 (Grover) | AES-256 |
| SHA-1 | 中等 (已破解) | SHA-256 |
| MD5 | 高 (已破解) | SHA-256 |
| 3DES / DES | 高 (已弃用) | AES-256-GCM |
| RC4 / Blowfish | 高 (已破解) | AES-256-GCM |
## GitHub Action
```
- uses: itsribbZ/Enigma/github-action@main
with:
path: '.'
format: 'sarif'
fail-on-critical: 'true'
scan-dependencies: 'true'
```
## 抑制规则
项目根目录下的 `.pqcignore` 文件:
```
# 忽略测试
tests/*
# 忽略 vendored 代码
vendor/**
```
或内联:
```
key = rsa.generate_private_key(...) # pqc-ignore
hash = hashlib.md5(data) # pqc-ignore[MD5]
```
## 仓库结构
| 路径 | 用途 |
|---|---|
| `phases/` | 分阶段 PQC 扫描器实现 (Phase 1–9) |
| `demo/` | 用于端到端测试的示例漏洞项目 |
| `github-action/` | 带 SARIF 上传功能的即插即用 CI/CD action |
| `vscode-extension/` | VS Code 扩展源码 + .vsix 构建 |
| `assets/` | 品牌资源 |
| `*.spec` | PyInstaller 构建规格 (dev / release / scanner) |
## 依赖
基础扫描**零必需依赖**。可选依赖:
- `cryptography` — 证书扫描 (`pip install -e ".[certs]"`)
- `reportlab` — PDF 高管报告 (`pip install -e ".[reports]"`)
- `tree-sitter` + 语法包 — 深度多语言分析 (`pip install -e ".[all]"`)
## 文档
仓库中内置的企业概述 PDF 文档:
- `Enigma_PQC_Scanner_Corporate_Overview.pdf` — 执行摘要
- `PQC_Executive_Report.pdf` — 高管报告输出示例
- `PQC_Scanner_Test_Guide.pdf` — 测试指南
- `Quantum_Security_Expert_Roadmap.pdf` — 生态全景图
- `Enigma_Capstone.pdf` — 深度完整解析
## 许可证
MIT
## 作者
Jacob Ribbe — [github.com/itsribbZ](https://github.com/itsribbZ)
标签:AST解析, DevSecOps, LNA, SBOM, 上游代理, 代码安全审计, 后量子密码学, 安全合规, 漏洞挖掘, 硬件无关, 网络代理, 逆向工具, 错误基检测, 静态代码分析