Security Health Check

🛡️ 零信任架构下的本地密码安全检测

本地安全检测工具,基于k-匿名查询Have I Been Pwned泄露库,结合密码熵值分析与SSL证书验证,零信任架构下保护敏感数据不出本地。

收藏
4.6k
安装
1.5k
版本
2.1.2
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心功能与架构

security-health-check 是一套面向个人开发者和小型团队的本地主机安全健康检查方案,采用"零信任+本地优先"设计原则,核心能力覆盖三大维度:

1. HIBP 密码泄露检测(k-匿名协议)

实现 Troy Hunt 主导的 Have I Been Pwned (HIBP) Pwned Passwords API 的 k-匿名查询模式。密码全程不离本地,仅提取 SHA-1 哈希前5位发送至 api.pwnedpasswords.com/range/,服务端返回约500条候选后缀,本地匹配判定泄露状态。该设计经密码学界验证,可抵御中间人攻击与彩虹表逆向,隐私保护等级相当于差分隐私 ε≈ln(1/16) 的实用化落地。

2. 密码熵值强度分析

基于信息论熵值计算:$H = L \times \log_2(R)$,其中 $L$ 为长度,$R$ 为字符池大小。系统识别四类字符集(小写/大写/数字/符号),动态计算熵值并映射 0-100 评分体系,同时基于 $10^{10}$ 次/秒的假设算力估算暴力破解时间。该模型符合 NIST SP 800-63B 对密码复杂度的量化建议,但需注意其未覆盖字典攻击、模式攻击(如键盘行走)等真实威胁场景。

3. SSL/TLS 证书链验证

依赖 pyOpenSSL 实现证书解析,提取有效期、颁发机构(CN/O)、剩余天数等关键字段。设计包含显式降级机制——对自签名证书、内网系统、过期证书返回结构化错误而非异常崩溃,适配混合云/传统 IT 环境的兼容性需求。

---

综合评分算法与局限

评分公式采用线性加权:score = (leaked ? 0 : strength_score × 0.4 + 60)。泄露检测权重过高(60%)导致"一次泄露即归零"的刚性惩罚,虽符合安全优先原则,但忽略了泄露场景的历史语境(如旧密码 vs 当前密码)。此外,HIBP 免费 API 不返回具体泄露次数与事件详情,仅能提供存在性判断,深度溯源需订阅商业 API Key($3.5/月)。

---

显著优点

| 维度 | 说明 |
|------|------|
| 隐私优先 | k-匿名架构确保密码明文零泄露风险,符合 GDPR 最小必要原则 |
| 离线可用 | 除 HIBP 查询外,熵值计算与证书验证均可完全离线执行 |
| 零依赖轻量化 | 核心依赖仅 `requests` + `pyopenssl`,无重型框架 |
| 结构化输出 | 统一 JSON/CLI 双模式,易于集成 CI/CD 或自动化告警 |

---

潜在缺陷与风险

1. 熵值模型的认知偏差:用户常误以为"高熵=绝对安全",忽视社工、钓鱼、凭证填充等真实攻击向量。工具输出"上千年破解时间"可能诱导过度自信。
2. HIBP 覆盖盲区:仅收录公开泄露库,企业内网泄露、暗网私有交易、 nation-state 级窃取不在监测范围。

3. SSL 验证的半吊子实现:未实现证书链完整性校验、CRL/OCSP 吊销状态查询、CT Log 透明度验证,对抗高级持续性威胁(APT)的中间人攻击能力不足。

4. 缺乏密钥管理集成:无与系统密钥环(macOS Keychain、Windows DPAPI、Linux Secret Service)的原生对接,密码输入环节存在终端历史残留风险。

---

适用人群

  • 个人隐私意识较强的技术用户,需快速自检密码健康度
  • 中小团队 DevOps/SRE,需在 CI 流水线嵌入轻量级安全检查
  • 安全培训场景,用于演示 k-匿名协议与熵值计算原理

不适用:企业级安全运营中心(SOC)、需满足 SOC2/ISO 27001 合规审计的正式场景、对抗国家级威胁的高价值目标。

---

常规风险提示

  • 误报与漏报并存:HIBP 存在性检测为概率性安全(k-匿名可能碰撞),且泄露数据库更新滞后;熵值高但存在于常见密码字典(如"CorrectHorseBatteryStaple"变体)将获虚假高分。
  • 网络层风险:虽 HIBP 支持 TLS 1.3,但若本地 DNS/路由被劫持,前缀请求可被关联分析(尽管无法还原明文),建议配合 DNS-over-HTTPS 使用。
  • 证书验证降级陷阱:try-except 包裹可能掩盖真实 TLS 漏洞,生产环境应强制证书固定(pinning)而非依赖本工具的宽松模式。

Security Health Check 内容

scripts文件夹
手动下载zip · 9.0 kB
health_check.pytext/plain
请选择文件