jayant-kumar-dev/AegisGuard-Quantum-Safe-PQC-Scanner
GitHub: jayant-kumar-dev/AegisGuard-Quantum-Safe-PQC-Scanner
一款抗量子密码学扫描审计平台,用于检测和评估 TLS 加密实现在后量子计算威胁下的脆弱性,并生成合规报告与加密物料清单。
Stars: 0 | Forks: 0
# AegisGuard PQC Scanner v2.0.0
**具有登录系统和模块化架构的抗量子加密扫描器**
## v2.0.0 中的新功能
### 1. 登录系统
- 使用用户名、邮箱、密码进行**注册/登录**
- **类 JWT token 认证**(HMAC 签名,72 小时有效期)
- **按用户划分的扫描历史记录** —— 登录时会保存每一次扫描
- **个人资料端点** —— 查看您的账户详细信息和扫描次数
- 未登录时扫描仍可正常工作(只是不会保存到历史记录)
### 2. 代码分割
单一的 2400 行 `app.py` 已被拆分为 **15 个专注的模块**:
```
AegisGuard_v2/
├── app.py ← Slim entry point (wires routers together)
├── config.py ← All constants, CVE DB, compliance frameworks
├── database.py ← SQLite setup (users + scan_history tables)
│
├── auth/ ← Authentication system
│ ├── utils.py ← Password hashing, token create/verify
│ ├── models.py ← Pydantic models (Register, Login, Profile)
│ └── routes.py ← /auth/register, /auth/login, /auth/me
│
├── scanner/ ← Core scanning engine (separated by stage)
│ ├── tls_probe.py ← Stage 1: Raw TLS connection + cert parsing
│ ├── pqc_analyzer.py ← Stage 2: PQC algorithm detection
│ ├── risk_scorer.py ← Stage 3: Weighted risk scoring + grading
│ ├── cbom_generator.py ← Stage 4: CycloneDX 1.6 CBOM generation
│ ├── intelligence.py ← Stages 5-10: Headers, CVEs, HNDL, compliance
│ ├── certificate.py ← PQC compliance certificate PDF generation
│ └── pipeline.py ← Full scan orchestrator + UI response builder
│
├── routes/ ← API route handlers
│ ├── scan.py ← /scan, /export, /scan/bulk, /cbom, /certificate
│ └── discovery.py ← /discover, /report/generate, /report/schedule
│
├── scan_history/ ← Scan history persistence
│ └── routes.py ← /history (list, view, delete, clear)
│
├── frontend/ ← Updated with login UI + history tab
│ ├── index.html ← Added auth modal + scan history tab
│ ├── script.js ← Added auth logic + history management
│ ├── style.css ← (unchanged)
│ └── chart.js ← (unchanged)
│
└── requirements.txt
```
## 快速开始
### Windows PowerShell
```
py -3.14 -m venv .venv314
.\.venv314\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python app.py
```
### 单行运行(无需激活)
```
.\.venv314\Scripts\python.exe -u app.py
```
然后打开 `http://localhost:8000/`
## API 端点
### 认证
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| POST | `/auth/register` | 创建新账户 |
| POST | `/auth/login` | 登录,获取 token |
| GET | `/auth/me` | 获取个人资料(需要 token) |
### 扫描
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| POST | `/scan` | 完整 PQC 扫描(如已登录则自动保存) |
| POST | `/export` | 扫描 + 导出 JSON |
| POST | `/scan/bulk` | 多目标并发扫描 |
| POST | `/cbom` | 导出 CBOM |
| POST | `/certificate` | 生成 PQC 证书 PDF |
| POST | `/discover` | 启动异步发现任务(返回 job_id) |
| GET | `/status/{job_id}` | 发现任务进度 + 部分状态 |
| GET | `/discover/result/{job_id}` | 发现任务最终 payload |
| POST | `/discover/sync` | 兼容性阻塞式发现(有界等待) |
### 历史记录(需要登录)
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| GET | `/history/` | 列出您过去的扫描 |
| GET | `/history/{id}` | 某次扫描的完整详情 |
| DELETE | `/history/{id}` | 删除一条扫描记录 |
| DELETE | `/history/` | 清除所有历史记录 |
### 报告
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| POST | `/report/generate` | 多目标执行报告 |
| POST | `/report/schedule` | 计划循环报告 |
## 认证流程
1. **注册**:使用 `{username, email, password}` 请求 `POST /auth/register`
2. **登录**:使用 `{username, password}` 请求 `POST /auth/login`
3. **使用 token**:在请求中添加 `Authorization: Bearer ` 请求头
4. **扫描自动保存**:当存在 token 时,扫描将保存到您的历史记录中
5. **查看历史记录**:`GET /history/` 显示您过去所有的扫描记录
## 技术栈
- **后端**:FastAPI + Uvicorn
- **数据库**:SQLite(零配置,基于文件)
- **认证**:SHA-256 + salt 密码哈希,HMAC 签名 token
- **扫描器**:pyOpenSSL, cryptography
- **PDF**:fpdf2
- **前端**:原生 HTML/CSS/JS + Chart.js
## 发现调优
子域名发现的覆盖率在 `scanner/enumeration_config.py` 中配置。
- `SUBDOMAIN_LIMIT`:返回的已发现主机的最大数量。
- `RECURSION_DEPTH`:支持多层子域名,例如 `dev.test.example.com`。
- `SUBDOMAIN_WORDLIST`:暴力破解字典的路径(默认:`scanner/wordlists/extended_recon_list.txt`)。
- `USE_DNS_BRUTEFORCING`:启用/禁用主动 DNS 暴力破解模式。
- `MAX_THREADS`:DNS 解析尝试的并发级别。
- `ENABLE_CRTSH_OSINT`:从 crt.sh 查询证书透明度记录。
- `ENABLE_HACKERTARGET_OSINT`:从 HackerTarget 查询被动主机记录。
- `OSINT_TIMEOUT_SECONDS` / `OSINT_RETRIES`:被动 API 的超时和重试行为。
`/discover` 响应包含 `discovered_subdomains` 和 `domains` 条目,代表完整的已发现集合,而不仅仅是可通过 TLS 访问的主机。
标签:AV绕过, CBOM生成, Claude, CVE检测, CycloneDX, FastAPI, HMAC, JWT认证, PDF生成, PQC扫描器, Pydantic, Python, SQLite, TLS探测, 动态插桩, 后量子密码学, 安全基线, 密码学审计, 密码管理, 抗量子加密, 插件系统, 教学环境, 无后门, 无服务器架构, 模块化架构, 漏洞修复, 网络安全, 网络安全培训, 自定义脚本, 证书解析, 逆向工具, 量子安全, 量子计算威胁, 隐私保护