27年前の鍵は、机の上のパソコンで開いた

カナダの認証局E-Certifyの512ビットRSA鍵2本を、技術者が自宅のデスクトップで素因数分解した。1999年のNetscapeに同梱されていたもので、かかったのは32時間と29時間。証明書はとうに失効している。

みずき:…さっきから部室のパソコン、ずっと唸ってる。ファンの音で会話が聞こえない。……で、何させてるの。

ことね:素因数分解よ。……昨日ね、こういう記事が上がったの。「90年代の認証局のRSA鍵を素因数分解した」。マシュー・マクフェリンさんという人が、カナダのE-Certifyという、とっくに畳んだ会社の鍵を2本、自宅のデスクトップで割ってしまったのよ。1本目に32時間、2本目に29時間。使ったのはCADO-NFSという、誰でも落とせる無料の道具ね。パソコンのほうもRyzen 9 5950X——要するに、ちょっといいゲーミングPCに入っているCPUよ。……面白そうだから、私も同じ手順をなぞっているところ。

ひかり:えっ待って待って、ぜんぶ分かんないっ! ニンショウキョクって何っ!? 鍵を割るって、なんかすごい物騒じゃないっ?

ことね:順番にいくわね。……ブラウザって、初めて行くサイトでも「ここは本物です」って判断できるでしょう。あれ、ブラウザの中に「この会社が本物だと言うなら信じます」という発行元の一覧が、最初から入っているの。それが認証局。ネットの身分証を出す役所ね。……で、その役所は鍵を2本持っているのよ。公開鍵と秘密鍵。公開鍵のほうは誰でも見られるように配ってあるの。世界中のブラウザに入れてもらわないと始まらないものだからね。安全の根拠はただ一点、「公開鍵から秘密鍵は計算できない」。正確には、途方もなく大きい数を素因数分解するのが大変すぎて誰にもできない、というだけなのよ。

ひかり:ってことは……ことね先輩、その「誰にもできない」が、できちゃったってことっ?

ことね:そう。しかも机の上でね。……鍵の長さが512ビットだったの。いま普通に使われているのは2048ビット以上で、512から2048に伸ばすと手間は比べものにならないくらい増えるわ。……なぜそんな短いものが世界中に配られていたかというと、90年代のアメリカに暗号の輸出規制があったからよ。強い暗号は武器と同じ扱いで、国の外に持ち出せなかったの。Netscapeが1994年にSSLを載せた頃は、まさにその時代でね。輸出向けは鍵を短くするしかなかったのね。ちなみにInternet Explorerのほうは、SSL用に512ビットの発行元を入れたことは一度もないそうよ。

みずき:…で、その鍵、手に入れると何ができるの。

ことね:理屈のうえでは、その認証局の名前で、どのサイトの証明書でも発行できるわ。銀行のふりでも、学校のふりでもね。……ただ実害はゼロなの。この2本はNetscape 4.51——1999年3月に配られたものに入っていて、Netscape自身が2002年に外している。証明書そのものも2003年10月16日で期限切れよ。ご本人の締めがふるっていてね。「Netscape 4.51を動かしていて、しかも時計を2003年より前に戻している人なら、この秘密鍵で証明書を発行できます。該当者は地球上に0人。……私が用意した検証用の仮想マシンを除いて」。……見つけ方のほうも執念でね。archive.orgから90年代のブラウザのインストーラーを片っ端からかき集めて、中に入っている発行元の証明書を全部取り出して、512ビットのものを探し当てたの。おまけに、1996年のIE 3.02に入っていたVeriSignのテスト用の証明書は、別の人がGPUを並べて1時間ちょっとで割ったそうよ。

みずき:…当時「これで十分安全です」って言って世界中に配ったものが、いまは晩ごはん作ってる間に開く。……前にここでやった、AIが暗号の穴を見つけたって話。あれは、これから危ないかもって話だった。こっちは、済んだぶんの答え合わせ。

ひなた:ふぁ〜……あの。むかしの鍵が、いまの道具で開くのなら。……いまのおうちの鍵も、ずーっとあとの人からは、開いているのですね。……ひなた、こわいのは泥棒さんじゃなくて、時間のほうだと思うのです。

まとめ:「誰にもできない」が、安全の中身だった。27年たったいま、その「誰にも」の中に、机の上のパソコンが入っている。

元記事を読む / ホームへ