Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
dual-ec-drbg — Dual_EC_DRBG バックドア (CVE-2014-8610) の教育的概念実証 - NIST P-256 状態復元攻撃デモンストレーション | Kitploit
ツール/GitHubGitHub/eddieoz/dual-ec-drbg
エクスプロイト暗号化CTF論文と研究学習と教育ラボと実践
GitHubeddieoz/dual-ec-drbg

dual-ec-drbg

Dual_EC_DRBG バックドア (CVE-2014-8610) の教育的概念実証 - NIST P-256 状態復元攻撃デモンストレーション

リポジトリを見る
6ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Dual_EC_DRBG バックドア: 教育用 Proof-of-Concept

セキュリティ専門家向け | 教育目的のみ


⚠️ 免責事項

このリポジトリには、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 local 設定の検出/作成
  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とバックドア付き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. マスターキーアーキテクチャ: 1つの秘密 (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 et al. - Dual EC: A Standardized Back Door
  4. Checkoway et al. - Juniper Analysis
  5. Reuters - NSA and RSA

🤝 貢献

これは教育用リソースです。改善歓迎:

  • 追加の可視化
  • 拡張された歴史的コンテキスト
  • より多くの攻撃バリアント

📜 ライセンス

MIT License - 詳細はLICENSEファイルを参照。

責任を持って倫理的に使用してください。このコードは教育目的のみです。


🎓 インストラクター向け

このノートブックは以下に適しています:

  • 暗号化コース
  • セキュリティ意識向上トレーニング
  • カンファレンス発表
  • CTFチャレンジ

推奨プレゼンテーション時間: 45-60分


暗号の脆弱性を理解し防止するための教育目的で作成されました。

ツールをダウンロード
SectionDescription
1. 歴史的背景1997年から2024年までのタイムライン、主要人物、スノーデンの暴露
2. 数学的基礎楕円曲線、ECDLP、バックドアの数学
3. NIST P-256 パラメータ実際のFIPS 186-4曲線パラメータ
4. アルゴリズム仕様NIST SP 800-90 DRBG 仕様
5. 実装正直なDRBGとバックドア付きDRBGクラス
6. 攻撃の実装秘密dを用いた状態回復攻撃
7. ライブデモンストレーションJuniperスタイルの攻撃シミュレーション
8. 緩和策学んだ教訓とベストプラクティス
EventDateImpact
NIST標準化2006Dual_ECが公式に
RSA BSAFE デフォルト2004-2013弱いデフォルトを使用するための1000万ドルの支払い
スノーデンの暴露2013一般の認識
Juniper バックドア2015攻撃者が弱いDual_ECを悪用
NIST撤回2014公式に非推奨に