Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/eddieoz/dual-ec-drbg
漏洞利用密码学CTF论文与研究学习与教育实验室与实践
GitHubeddieoz/dual-ec-drbg

dual-ec-drbg

教育性 Jupyter notebook,演示 Dual_EC_DRBG 加密后门(CVE-2014-8610),包含 NIST P-256 状态恢复攻击、历史背景及缓解措施。

查看仓库
27个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Dual_EC_DRBG 后门:教育性概念验证

面向安全专业人员 | 仅供教育目的


⚠️ 免责声明

本仓库包含对 Dual_EC_DRBG 加密后门(CVE-2014-8610)的教育性演示,该漏洞在斯诺登事件曝光后披露,已有详尽的公开记录。

本内容仅供教育目的:

  • 演示一个已弃用超过 10 年的旧漏洞
  • 使用公开已知的参数和数学关系
  • 旨在用于安全培训和意识提升
  • 遵循负责任披露实践

📚 你将学到什么

  1. 历史背景:美国国家安全局(NSA)涉嫌如何在 NIST 标准中植入后门
  2. 数学基础:椭圆曲线与离散对数问题
  3. 后门机制:为什么 Q = d·P 会形成一把万能钥匙
  4. 现场攻击演示:从 32 字节的观测输出中恢复状态
  5. 缓解措施:如何避免类似漏洞

🚀 快速开始

前置条件

  • Python 3.8+(建议使用 pyenv)
  • pip

方案 1:使用启动脚本(推荐)

root@kitploit:~
cd dual-ec-drbg

# One command to setup and run
./run.sh

该脚本将:

  1. 检测/创建 pyenv 本地配置
  2. 在 venv/ 中创建虚拟环境
  3. 安装所有依赖
  4. 启动 Jupyter 并加载笔记本

方案 2:使用 pyenv 手动设置

root@kitploit:~
cd dual-ec-drbg

# Set local Python version with pyenv
pyenv local 3.12.12

# Create virtual environment
python3 -m venv venv
source venv/bin/activate

# Install dependencies
pip install --upgrade pip
pip install -r requirements.txt

# Launch Jupyter
jupyter notebook dual_ec_drbg_backdoor_poc.ipynb

方案 3:系统 Python(不推荐)

root@kitploit:~
cd dual-ec-drbg
pip install --user -r requirements.txt
jupyter notebook dual_ec_drbg_backdoor_poc.ipynb

依赖项

  • ecdsa>=0.18.0 - NIST P-256 曲线运算
  • jupyter>=1.0.0 - 笔记本界面
  • ipython>=7.0.0 - 交互式 Python

📖 笔记本内容


🎯 攻击简述

root@kitploit:~
Dual_EC_DRBG State Update:    s_{i+1} = φ(s_i · P)
Dual_EC_DRBG Output:          r_i = φ(s_i · Q)     [truncated]

Backdoor Relationship:        Q = d · P

Attack (knowing d):
1. Observe r_i (30+ bytes of output)
2. Reconstruct candidate R where x(R) ≈ r_i  
3. Compute: s_{i+1} = φ(d⁻¹ · R) = φ(s_i · P)
4. Predict ALL future output!

Time Complexity: O(1) - milliseconds on a laptop
Data Required: 32 bytes of observed output

🧪 运行演示

交互模式

  1. 打开笔记本:

    root@kitploit:~
    jupyter notebook dual_ec_drbg_backdoor_poc.ipynb
    
  2. 按顺序运行单元格(Shift+Enter)

  3. 观察:

    • 诚实版和植入后门版的 DRBG 都生成统计上随机的输出
    • 只有植入后门版本容易受到状态恢复攻击
    • 攻击在毫秒级时间内成功

命令行(可选)

提取并运行 Python 代码:

root@kitploit:~
# Extract code cells to a Python script
jupyter nbconvert --to script dual_ec_drbg_backdoor_poc.ipynb

# Run the script
python dual_ec_drbg_backdoor_poc.py

📊 预期输出

root@kitploit:~
[=== HONEST Dual_EC_DRBG ===]
[+] DRBG initialized
    Mode: HONEST
    P = (6b17d1f2e12c4247..., 4fe342e2fe1a7f9b...)
    Q = (a53a7f9b2e1c4247..., 7fe342e2fe1a7f9b...)

[=== BACKDOORED Dual_EC_DRBG ===]
[+] DRBG initialized
    Mode: BACKDOORED
    P = (6b17d1f2e12c4247..., 4fe342e2fe1a7f9b...)
    Q = (b23d7c9a3f8e5156..., 9ab456d3c7e2f1a8...)
    Secret d = 0x4f3e2d1c0b9a8f7e...

[=== ATTACK EXECUTION ===]
[+] Observed output: a1b2c3d4e5f6...
[+] Found 2 candidate points on curve
...
[OK] PERFECT MATCH - All future output predicted!

🔍 关键发现

为何该后门如此隐蔽

  1. 统计上不可检测:输出能通过所有随机性测试
  2. 数学而非代码:没有可检测的恶意代码
  3. 万能钥匙架构:一个秘密值 (d) 即可破解所有实例
  4. 检测概率低:没有 d 就无法检测出后门

历史影响


🛡️ 缓解措施

切勿使用

  • ❌ Dual_EC_DRBG(自 2014 年起已弃用)

改用以下方案

  • ✅ /dev/urandom 或 getrandom()(Linux)
  • ✅ BCryptGenRandom()(Windows)
  • ✅ CryptoKit(Apple)
  • ✅ Hash_DRBG、HMAC_DRBG、CTR_DRBG(NIST SP 800-90A Rev 1)

安全审计

  • 审计依赖项中是否使用 Dual_EC
  • 验证关键系统中的 RNG 来源
  • 要求可验证的参数生成

📚 参考资料

  1. NIST SP 800-90A Rev 1 - 现行 DRBG 标准(已移除 Dual_EC)
  2. Shumow & Ferguson 2007 - 最初的后门警告
  3. Bernstein 等人 - Dual EC:标准化的后门
  4. Checkoway 等人 - Juniper 分析
  5. 路透社 - NSA 与 RSA

🤝 贡献

这是一份教育资源。欢迎改进:

  • 更多可视化内容
  • 扩展历史背景
  • 更多攻击变体

📜 许可证

MIT 许可证 - 详情请参阅 LICENSE 文件。

请负责任且合乎道德地使用。本代码仅供教育目的。


🎓 面向讲师

本笔记本适用于:

  • 密码学课程
  • 安全意识培训
  • 会议演讲
  • CTF 挑战赛

建议演示时长:45–60 分钟


为理解和防范密码学漏洞而创建,仅供教育目的。

下载工具
章节描述
1. 历史背景1997–2024 年时间线、关键参与者、斯诺登爆料
2. 数学基础椭圆曲线、ECDLP、后门数学
3. NIST P-256 参数真实的 FIPS 186-4 曲线参数
4. 算法规范NIST SP 800-90 DRBG 规范
5. 实现诚实版与植入后门版 DRBG 类
6. 攻击实现利用秘密 d 进行状态恢复攻击
7. 现场演示Juniper 式攻击模拟
8. 缓解措施经验教训与最佳实践
事件日期影响
NIST 标准化2006Dual_EC 成为官方标准
RSA BSAFE 默认算法2004-2013为使用薄弱默认算法支付 1000 万美元
斯诺登爆料2013唤起公众意识
Juniper 后门2015攻击者利用薄弱的 Dual_EC
NIST 撤销2014官方弃用