インターネットを使うとき、アドレスバーに小さな鍵マークが表示されるのは、ウェブサイトの身元確認が済んでいるという意味です。確認にはデジタル証明書が使われ、認証局が発行します。こう考えると分かりやすいでしょう。認証局がウェブサイトに身分証を発行し、そこには数字の列を図柄にした印鑑が押されているのです。
ある認証局には、8つの印鑑があり、その図柄はそれぞれ、4、56、66、115、155、156、230、237でした。
本来なら百桁を超える長い数字になるはずが、実際には3桁以内でした。
そのため、誰でも公開されている証明書を手に入れて、256通りを一つずつ試せば、1秒もかからずに印鑑を複製できました。
印鑑が盗まれたわけではありません。ずっとその場にあり、サーバーに手を触れた人もいません。ただ、図柄が短すぎたのです。
これを見つけた人は、8つの印鑑でそれぞれ同じ文に印を押し、いくつかのブラウザー企業に送りました。「こちらに問題があります——Wayne」。Firefoxは3時間後に無効化し、Googleはその日のうちに、AppleとMicrosoftもその後2日以内に対応しました。
この8つの印鑑は、2025年4月に作られたもので、作成時期には18か月の間隔がありました。
証明書を検証するとき、システムは「印鑑が正しく押されているか」だけを確認し、「図柄が十分に長く、十分にランダムか」は一度も確認しません。
そのため、図柄が4の印鑑も、本当にランダムな長い印鑑も、検証結果は同じです。合格です。
「この証明書は粗悪な印鑑で押された」と記録に残す仕組みもありません。18か月のあいだ、すべてのシステムが正常と表示していました。2008年のDebianでも同じ種類のミスが起きています。生成段階で問題が起きても、検証段階で止められなかったのです。
さらに大きな別の認証局が、この8つの印鑑を保証し、8枚が16枚になりました。
誰かがそれを使って、あなたがいつも使っている取引所やウォレットのウェブサイトになりすましても、ブラウザーの鍵マークは緑色のままで、URLも正しいままです。途中で何を見られ、何を書き換えられても、あなたには分からず、記録にも残りません。
幸い、この8つの印鑑は、特定のウェブサイトの証明書に使われたことはなく、公開された不正利用の報告もありません。
困ったことに、あなたのDockerイメージ、古いサーバー、カメラ、そして「証明書が失効しているか」を確認しないソフトウェアは、自動では更新されません。それらは今も、この16枚を信頼しています。
私はこれを、どこかの会社がうっかりミスをしたというより、システム全体の問題だと考えています。監査で見ていたのは手順だったため、問題を見つけられませんでした。
次にこれを見つけるのも、たまたま計算してみた誰かなのでしょうか?
ある認証局には、8つの印鑑があり、その図柄はそれぞれ、4、56、66、115、155、156、230、237でした。
本来なら百桁を超える長い数字になるはずが、実際には3桁以内でした。
そのため、誰でも公開されている証明書を手に入れて、256通りを一つずつ試せば、1秒もかからずに印鑑を複製できました。
印鑑が盗まれたわけではありません。ずっとその場にあり、サーバーに手を触れた人もいません。ただ、図柄が短すぎたのです。
これを見つけた人は、8つの印鑑でそれぞれ同じ文に印を押し、いくつかのブラウザー企業に送りました。「こちらに問題があります——Wayne」。Firefoxは3時間後に無効化し、Googleはその日のうちに、AppleとMicrosoftもその後2日以内に対応しました。
この8つの印鑑は、2025年4月に作られたもので、作成時期には18か月の間隔がありました。
証明書を検証するとき、システムは「印鑑が正しく押されているか」だけを確認し、「図柄が十分に長く、十分にランダムか」は一度も確認しません。
そのため、図柄が4の印鑑も、本当にランダムな長い印鑑も、検証結果は同じです。合格です。
「この証明書は粗悪な印鑑で押された」と記録に残す仕組みもありません。18か月のあいだ、すべてのシステムが正常と表示していました。2008年のDebianでも同じ種類のミスが起きています。生成段階で問題が起きても、検証段階で止められなかったのです。
さらに大きな別の認証局が、この8つの印鑑を保証し、8枚が16枚になりました。
誰かがそれを使って、あなたがいつも使っている取引所やウォレットのウェブサイトになりすましても、ブラウザーの鍵マークは緑色のままで、URLも正しいままです。途中で何を見られ、何を書き換えられても、あなたには分からず、記録にも残りません。
幸い、この8つの印鑑は、特定のウェブサイトの証明書に使われたことはなく、公開された不正利用の報告もありません。
困ったことに、あなたのDockerイメージ、古いサーバー、カメラ、そして「証明書が失効しているか」を確認しないソフトウェアは、自動では更新されません。それらは今も、この16枚を信頼しています。
私はこれを、どこかの会社がうっかりミスをしたというより、システム全体の問題だと考えています。監査で見ていたのは手順だったため、問題を見つけられませんでした。
次にこれを見つけるのも、たまたま計算してみた誰かなのでしょうか?