概要
- RSA暗号 の安全性とその歴史的変遷について解説
- 512ビットRSA鍵 の脆弱性と実際のファクタリング事例の紹介
- 古いブラウザや証明書 の実験的な利用方法
- 現代のRSA鍵長 の推奨と量子コンピュータによるリスク
- 実際の鍵・証明書データ の例示と活用方法
90年代から見たRSA暗号の安全性と実験
- RSA暗号 は、 大きな半素数の素因数分解困難性 に依存
- 「大きい」とは何ビットか、時代によって変化
- Web PKI では10年以上前に 1024ビットRSA が非推奨に
- 近年、 862ビット(RSA-260) の素因数分解も実現
- 現在は 2048ビット以上 が主流、将来は 量子コンピュータ で脅威拡大
小さいRSA鍵の脆弱性とファクタリング実験
- 512ビットRSA鍵 は現代のPCでも分解可能な脆弱性
- 90年代初期の Web PKI には標準や最小要件が未整備
- Netscape 4.51 (1999年)には、 E-Certify の512ビットルートCAが存在
- S/MIME用 と SSL用 の2つの512ビットCAが同梱
- RSA-155(512ビット) は同年に分解されており、当時から弱かった
- Netscape は2002年にこれらのルートを削除
- Internet Explorer には512ビットSSLルートは存在せず、Netscapeのみが対象
実際のファクタリングと鍵の再構築
- CADO-NFS を用い、Ryzen 9 5950Xデスクトップで実験
- SSL用 :32時間で分解
- S/MIME用 :29時間で分解
- 公開鍵の分解により、 秘密鍵 を再構築可能
- Netscape 4.51 (有効期限前)なら、これらの秘密鍵で証明書発行が可能
- 実際にVM上で検証
- 現代TLSとの互換性は皆無、独自サーバをGoで実装
古い証明書・鍵の活用と公開
- e-certify.fly.dev で実験サイトを公開(現代ブラウザでは閲覧不可)
- 鍵・証明書・ツール は GitHub(https://github.com/mcpherrinm/ancientroots) で公開
- 他にも 512ビットのテスト用CA や VeriSignのコードサイニングCA 等のファクタリング例
- GPUクラスタ を使えば1時間程度で分解可能な場合も
- 興味があれば、他の古い鍵の分解や用途検証も推奨
実際の証明書・秘密鍵データ例
- E-Certify RSA 512 Gold Server for SSL
- 証明書・秘密鍵ペアを掲載
- E-Certify RSA 512 Gold Client for S/MIME
- 証明書・秘密鍵ペアを掲載
- Test VeriSign Commercial Software Publisher CA
- 証明書・秘密鍵ペアを掲載
セキュリティ評価と現代的意義
- SSL Labs によるテストサイトの評価は高評価
- 古い鍵の脆弱性 を実証し、 現代の鍵長要件 が重要であることを再認識
- 量子コンピュータ時代には、さらに強固な暗号方式への移行が不可欠
まとめ :
- 512ビットRSA鍵 は現代では容易に分解可能なため、 安全ではない
- 古い証明書や鍵 は実験や教育用途として活用可能
- RSA鍵長の選定 は時代と共に進化し、 今後は量子耐性暗号 が求められる