理屈の上では、PGPで暗号化され、電子署名が添付されているコードや電子メールメッセージを見たら、そのコードやメッセージは署名した人が作成したものであり、コードやメッセージの内容に変更が加えられていないことを確信できるはずだ。しかし、鍵IDが短い(32ビット以下)場合、セキュリティが確保されているとは言えない。コンピュータの性能が上がっている今では、鍵が短いとPGPの署名を簡単に偽造できてしまう。そして実際、Linus Torvalds氏やGreg Kroah-Hartman氏を始めとする、Linuxカーネル開発の中心人物にこれが起こってしまった。
Linuxカーネルメーリングリスト(LKML)で、「自分と同じ名前、同じメールアドレスを持ち、さらにほかの偽造鍵で署名された『同じ』偽造署名を持つ自分の偽造鍵が鍵サーバに保存され、出回っていることに、一部の開発者が気づいた」ことが明らかになった。この状態は6月半ばから約2カ月間続いていた。
これは特に新しい攻撃ではない。Linux開発者は、2011年12月から、短いPGP鍵IDが安全ではないことを知っていた。ただ、これまでは実際にPGPの鍵IDを破ろうとするものがいなかっただけの話だ。
Richard Klafter氏とEric Swanson氏の2人のハッカーは、2016年6月に、「GPG」(人気のあるPGPの実装の1つ)の利用が広まっているにも関わらず、多くの人は依然として短い鍵IDを使っていることを知った。同氏らは「Evil 32」というサイトで、「32ビットの鍵IDは15年前には妥当だったが、今では時代遅れだ。われわれは最新のGPUを使用して、WOT(Web of Trust、信用の輪)の強い鍵のセット中にあるすべての32ビット鍵IDの衝突を発見した。このことでGPGの暗号が破られることはないが、GPGの有用性は損なわれ、ヒューマンエラーの可能性は高まるだろう」と述べている。
では、この問題はどのくらい深刻なのだろうか。同氏らは「scallion」と呼ばれるプログラムを使用して、ごく普通のGPU(例えばNvidia GeForce GTXシリーズなど)使って、衝突する32ビット鍵IDを4秒で生成できたという。
これは、Linuxを標的とした攻撃ではない。実際、ダメージが与えられた形跡はない。安定版LinuxのLinuxカーネルメンテナーを務めるKroah-Hartman氏は、「Google+」で次のように説明している。「これはカーネル開発者だけを狙ったものではなく、PGPの『強い』信用の輪に含まれている2万4000個鍵すべてが標的だった。この種の攻撃がかなり前から可能だったことを考えれば、これはそれほど新しいニュースではない。しかし、GPGを使うのは恐ろしいことになり、正しい形で使うのはほとんど不可能になった」
しかし、PGPで署名されたリリースコードに異変が起こっていると最初に気づいたのはLinux開発者だった。その後Swanson氏は、Ycomhinator Newsに記事を投稿し、「われわれは、21世紀になっても短い鍵IDを使用する危険性について注意を喚起したかった。短い鍵IDを偽造するのは簡単であり、鍵本体の内容の大部分は署名の対象になっていないため、自由に変更できる。しかし、公開鍵サーバにアップロードされている鍵は、PGPエコシステムの有用性に対して、セキュリティの問題を助長するという意味で益よりも害の方が多いと感じている」と説明している。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。