90年代CA局のRSA鍵を素因数分解に成功

原題: I've factored the RSA keys of a Certificate Authority from the 90s

なぜ重要か

初期Web PKIにおける鍵長管理の脆弱性を実証した事例として、暗号レガシー資産のリスク評価に重要な示唆を与える。

セキュリティ研究者のMatthew McPherrinが、1999年にNetscape 4.51に同梱されたカナダの認証局「E-Certify」の512ビットRSA鍵2本の素因数分解に成功したと2026年9月7日に発表した。自作デスクトップPC(Ryzen 9 5950X)とCADO-NFSツールを使用し、SSL用の鍵に32時間、S/MIME用の鍵に29時間を要した。

McPherrinは、RSAの安全性がどの程度の鍵長に依存するかという問いから出発し、初期のWeb PKI時代には鍵長の最低要件が存在しなかったことに着目した。Netscapeが1994年にSSLサポートを初めて搭載した時代は、暗号技術に対する輸出規制が残る時代でもあった。

今回の標的となったのは、カナダの認証局「E-Certify」が発行した512ビットRSA証明書2本で、1999年3月にNetscape 4.51に同梱されたものだ。これらはSSL用とS/MIME用の2種類で、後者は512ビットRSA-155の素因数分解が成功した同年(1999年)の時点ですでに脆弱と見なされており、当初から出荷すべきでなかったと指摘されている。E-CertifyはすでにNetscape 2002年版で信頼リストから除外されている。Internet Explorerは512ビットのSSL用ルート証明書を同梱したことがなく、今回の検証はNetscapeに限定された。

McPherrinはarchive.orgに保存されているNetscapeおよびInternet Explorerのインストーラーアーカイブからルート証明書を収集。Claude Codeを活用して証明書を抽出し、512ビットの小さな鍵を特定した。

CADO-NFSで素因数分解した結果、得られた秘密鍵を用いて自ら証明書を発行し、Netscape 4.51上で動作確認するところまで実施した。Netscape 4.51と現代のTLSスタックにはTLS能力の共通点がほぼ皆無であったため、Claude Codeを利用してGo言語でカスタムの旧式TLSサーバーを自作したという。デモサイト「e-certify.fly.dev」は現在も公開されており、Netscapeでのみアクセス可能だ。また、秘密鍵やツール一式はGitHub(ancientroots)でも公開されている。

なお現在、業界標準はRSA 2048ビット以上だが、量子コンピューターのリスクからこれも近く廃止される見込みである。

出典

mcpherrin.ca — 元記事を読む →