5分で分かる「SHA-1衝突攻撃」が騒がれているわけ

5分で分かる、「SHA-1衝突攻撃」が騒がれているわけ

個人的に、とても感慨深いニュースが飛び込んできました。それは、「グーグルが『SHA-1』の衝突を実際に成功させた」というもの。ITmedia エンタープライズのニュースでも報じられ、大きな注目を集めています。

 これは一体、どういう話なのでしょうか? 実は読者の皆さんにとっても、意外と身近な話かもしれません。

●「正しいファイル」であることをデジタル的に証明するには

 まず、この「SHA-1」とは何かを簡単に解説しましょう。ひとまず、ここでは、「何かを入れるとルールに従って何かが出てくるハコ」と考えてみてください。実際には、この「SHA-1というハコ」は、デジタルデータを入れると、「160ビットの文字列が出てくる」ブラックボックスです。入れるデジタルデータは、1文字だろうが1万文字だろうが、出てくるのは160ビットという長さになります。

 これが一体、何の役に立つのでしょうか。実はこのハコ、「データ改ざん防止の仕組み」として使えるのです。

 このハコには、入れるデータが、たった1文字異なるだけで、出てくるものも大きく異なるという特徴があります。つまり、入力する何かを例えば「契約書」と考え、契約書に加えてこのハコから出てくる160ビットを一緒に相手に渡すと、受け取った相手が同じハコに契約書を入れた場合に、“改ざんされていなければ”、全く同じ特徴を備えた、160ビットが出てくるはずです。

 よって、受け取った相手はこれが正しいファイルだと確認できる。これが「SHA-1」をデータ改ざん防止に使う仕組みです。このハコを「ハッシュ関数」、出てくる文字列を「ハッシュ値」と呼びます。実はこれ、Webブラウザに表示される「錠のマーク」でおなじみのセキュリティプロトコルである「SSL」で利用されるなど、インターネットやデジタル世界における大事な仕組みなのです。

●ハッシュが「衝突」するとどうなる?

 しかし、裏を返せば、異なるファイルをハコ(ハッシュ関数)に入れたとき、同じ160ビットの文字列(ハッシュ値)が出てこないという前提が崩れれば、この仕組みは使えません。今回は、Googleが異なるファイルで同じハッシュ値が出てくる組を発見したことが、大きなニュースになったのです。

 この「ハッシュ値の衝突」自体は、2005年には理論上で予告されていました。そのため、SHA-1をよく知る方々にとっては、今回の話は衝撃というより「とうとう来たか」という感慨のほうが大きかったような気がします。

 米国政府は既に、SHA-1は2010年までに運用を終了し、SHA-2へ移行していますし、私たちの回りでも、既にSHA-1を利用したSSLサーバ証明書などは切り替えが進んでいます。実は、多くのケータイ(フィーチャーフォン)のWebブラウザが使えなくなったのも、SHA-1への対応をやめたためなのです。

●ネット利用者への影響は?

 今回の衝突に対する準備は既に進んでいたので、ネットの利用者にはほとんど影響がないはずですが、1つ大きな教訓があります。それは、今まで何度も伝えてきた、「OS、アプリケーションは常に最新版にせよ」というものです。

 具体的には、「ハッシュ関数を含む『暗号化技術』には寿命があり、インターネットに直接的/間接的につながる以上は、その寿命を追いかけ、正しくアップデートすることが必要」ということ。これからは「デジタルガジェットのハード的な寿命よりも先に、ソフトウェア的な寿命がくる」という前提でOSやアプリケーションを利用すべきなのでしょう。

 「そういう大事なアップデートは常に、無料で行われるべきでは」――。そう考える人も多いでしょう。確かに私も、このような根幹部分のアップデートは、ベンダーが常に自動で、無料でアップデートするべきだと思います。恐らくOSベンダーも同じ意見で、だからこそWindows 10やmacOS、iOSなどがアップデートを自動で、無料で提供し始めた理由なのでしょう。できる限り、OS、アプリケーションは「最新に」。もし、自動でアップグレードする仕組みがあれば、必ず利用するようにしてください。

🍎たったひとつの真実見抜く、見た目は大人、頭脳は子供、その名は名馬鹿ヒカル!🍏