it.xnews.jp
出典: Matthew McPherrin 原文公開: 2026-09-07 生成: 2026-09-08 読了 約 3 分 model: claude-haiku-4-5 原文: https://mcpherrin.ca/2026/09/07/rsa.html raw.md

1990年代のブラウザ根証明書に含まれるRSA秘密鍵を因数分解

Matthew McPherrinが1999年にNetscape 4.51に搭載されたE-Certifyの512ビットRSA秘密鍵を因数分解し、その秘密鍵を使用して有効なTLS証明書を発行できることを実証した。

Netscape 4.51に搭載されたE-Certifyの512ビットRSA秘密鍵がMatthew McPherrinによって因数分解され、その秘密鍵でTLS証明書を発行できることが実証されました。CADO-NFSを用いた計算は、Ryzen 9 5950Xデスクトップで約32時間(SSL用)と29時間(S/MIME用)を要しました。

検出された脆弱な秘密鍵

Matthew McPherrinはarchive.orgからInternet ExplorerおよびNetscapeの古いブラウザインストーラーをダウンロードし、Claude Codeを使用してそれらに含まれるすべての根証明書を抽出しました。1999年3月にリリースされたNetscape 4.51には、E-Certifyという長らく廃止されたカナダの認証局からSSL用の512ビットRSA証明書が搭載されていました。またS/MIME用に別の512ビット根証明書も搭載されていました。これらのE-Certify根証明書は2002年にNetscapeによって削除され、2003年10月16日に期限切れとなりました。一方、Internet Explorer 3.02にはVeriSignの「OU=Test VeriSign Commercial Software Publisher CA」というコード署名用のテストCAが搭載されていました。

RSA秘密鍵の因数分解プロセス

因数分解と秘密鍵の回収

McPherrinはRyzen 9 5950Xデスクトップ上でCADO-NFSを実行し、E-CertifyのRSA 512 Gold Server for SSLの因数分解に32時間、E-Certify RSA 512 Gold Client for S/MIMEの因数分解に29時間を要しました。この規模の因数分解は、より小規模なコンピュータリソースでも実行可能であることを示しています。参考として、1999年には512ビットのRSA-155が因数分解されており、McPherrinが把握している最大の因数分解はRSA-260(862ビット)です。これに対し、Web PKI標準では現在、最低でも2048ビットのRSAが使用されており、1024ビットRSAは10年以上前に廃止されています。

実装と検証

McPherrinは因数分解した秘密鍵を使用して、Netscape 4.51で有効なTLS証明書を発行できることを実証するため、Goで独自の古風なTLSサーバーを実装しました。テストサイトはe-certify.fly.devで公開されており、因数分解に使用された秘密鍵とツールはhttps://github.com/mcpherrinm/ancientrootsのリポジトリに保存されています

Netscapeの証明書ビューア

筆者の見立て

この記事は元記事の事実のみに基づいて自動生成されました。

出典

Matthew McPherrin「I've factored the RSA keys of a Certificate Authority…」https://mcpherrin.ca/2026/09/07/rsa.html

この記事をシェア