删除 10 篇已完成/已实施的开发计划文档(认证独立化、captcha/confs C++ 重写、services.yaml、pybot 迁移、aibox --once/工具分层/CLI 化/ 重构快照、actpred cv2.LUT 优化),同步修复 ca/captcha2/pybot/aibox README、代码注释、安全审计与报告中的 12 处引用,MODULES.md 文档 计数更新为 67 篇。
4.1 KiB
4.1 KiB
ca 模块安全审计索引(Central Auth)
ca(Central Auth,C++20,v1.0.0)是 UniServe Framework 的中央认证服务,承接原 gateway v0.8.0 的全部认证职责。 本索引汇总:① 从 gateway v0.9.0 认证独立化迁移接收的审计项(已在 ca 闭环);② ca 相关开放项(与 gateway 转发层/配置共享,需 ca 侧处理);③ ca 原生安全态势基线。 关联文档:gateway 合并审计
gateway_SECURITY_AUDIT.md。
1. 从 gateway 迁移接收项(v0.9.0,已在 ca 闭环)
下列历史问题随 v0.9.0 认证独立化由 gateway 移交 ca,gateway 侧不再跟踪。ca 已闭环(实现见 ca/src/main.cpp):
| 原编号 | 问题 | ca 侧状态 | 实现位置 / 说明 |
|---|---|---|---|
| P0-1 | RSA 密钥持久化 | 设计接受(重启即密钥轮换,同进程验签) | ca 内存生成 RSA 密钥 |
| P0-2 / P0-3 | 错误信息脱敏 | ✅ 已闭环 | ca handler 错误不外泄内部原因 |
| P1-1 | Token 吊销机制 | ✅ 已实现 | jti 黑名单(5000 阈值)+ 用户版本号双轨,纯内存 |
| P1-2 | 账户级登录失败锁定 | ✅ 已实现 | 登录失败计数 + 锁定(ca 侧) |
| P2-5 | JTI 黑名单内存有界 | ✅ 已实现 | 5000 条阈值清理 |
| P2-6 | 用户名 / 邮箱长度限制 | ✅ 已实现 | ca 输入校验 |
| A3 | 缺字段返回 400 | ✅ 已实现 | ca handler 参数校验 |
| A6 / A7 | 验证码双渠道统一 / 废弃内置验证码 | ✅ 已闭环 | 统一走 captcha2 远端校验 |
2. ca 相关开放项(需 ca 侧处理)
下列 gateway 合并审计的开放项与 ca 直接相关,归 ca 跟踪:
| 编号 | 等级 | 问题 | 归属说明 | 状态 |
|---|---|---|---|---|
| P2-3 | 🟡 | CORS 白名单未生效(OPTIONS 预检反射 Origin) | ca CORS.allowed_origins 已读取但未用于预检响应头(见 ca/README.md 配置段);与 gateway 共享同一白名单配置 |
❌ 未修复 |
| P1-7 | 🟠 | CSRF Token 缺失 | gateway 纯转发无认证表单;CSRF 评估在 ca 层(会话模型 + SameSite=Lax)。如 ca 启用 tls=on 独立 HTTPS 需评估 |
❌ 未修复(低优先级) |
| A2 | 🟠 | 白名单 403 断言 | Target-Url 白名单由 gateway Proxy.opened 裁决 403,但白名单配置 / 断言随转发层迁入 ca;跨模块边界,gateway 与 ca 需保持一致 |
⚠️ 边界共识(gateway A2 已转绿,ca 侧需保持白名单同步) |
其余 gateway 开放项(P1-3 代理超时、P1-5 请求体大小、P1-8 日志注入、P2-2 TLS、P2-4 HTTP 超时、A4 XFF)属 gateway 纯转发层 / libhttp 层,不归 ca,见
gateway_SECURITY_AUDIT.md§4。
3. ca 原生安全态势基线
摘自 ca/README.md 安全特性(v1.0.0):
| 特性 | 实现 |
|---|---|
| 密码哈希 | PBKDF2-HMAC-SHA256,100000 轮,16B 随机盐,32B 哈希 |
| 密码强度 | ≥8 字符,大写/小写/数字/特殊中至少 3 类 |
| Token 机制 | Base64(payload) + "_" + RSA-Sign(payload),验签 + 过期(默认 1h) |
| Token 吊销 | 双轨纯内存:jti 黑名单(5000 阈值)+ 用户版本号 |
| 常数时间比较 | PBKDF2 验证 `diff |
| 防枚举 | 不存在用户 dummy PBKDF2 拉平时序;重置密码恒成功 |
| CAPTCHA | 统一 captcha2 远端校验(一次性 Token);/login 强制 |
| TLS 可选 | Server.tls = off 纯 HTTP(配合 WAF),on 用 full_chain.crt / server.key |
| 下游容错 | pymsg retry_on_refused 阻塞等待 db/confs;日志 fail-safe |
4. 维护说明
- 新增 / 复测 ca 相关开放项请编辑本文件 §2;修复后移至 §1 或合入
ca/src/main.cpp注释。 - gateway 合并审计的“已迁 ca”清单(§1)以本文件为权威;如 gateway 文档与本文件不一致,以本文件为准。
审计人: AI Security Auditor 建立于: 2026-08-10(从 gateway 合并审计同步开放项与迁移接收项;此前 ca 无独立审计文档)