史上初となるSHA-1ハッシュ衝突の計算に成功しました。必要なのは5人の賢い頭脳と6,610年のプロセッサ時間だけでした。

Table of Contents

史上初となるSHA-1ハッシュ衝突の計算に成功しました。必要なのは5人の賢い頭脳と6,610年のプロセッサ時間だけでした。

Google の研究者と学者は本日、数年にわたる数値計算の結果、同じ SHA-1 ハッシュ署名を持つ 2 つの異なる文書を作成できることを実証しました。

これは、私たちが長らく疑っていた事実、つまりSHA-1は脆弱で信頼できないということを証明しています。これは厄介なニュースです。なぜなら、SHA-1ハッシュアルゴリズムは、Gitリポジトリからファイル重複排除システム、オンラインバンキングやその他のウェブサイトを保護するために使用されるHTTPS証明書まで、インターネット全体で使用されているからです。SHA-1署名は、ソフトウェアのソースコード、メール、PDF、ウェブサイトの証明書など、大量のデータが悪意のある人物によって改ざんされていない、あるいはその他の方法で変更されていないことを証明するために使用されています。

アムステルダムCWIの研究者とGoogleの研究者たちは、SHA-1ハッシュ値を変えずにPDFを改ざんすることに成功しました。これにより、改ざんされたバージョンを正規のコピーとして偽装することがはるかに容易になります。例えば、契約書の内容を改ざんし、ハッシュ値を元のものと一致させるといったことも可能です。こうすることで、改ざんされたコピーをオリジナルだと思わせることができるのです。ハッシュ値は完全に同じです。

SHA-1は廃止されるはずでしたが、広く使用されているソースコード管理ツールGitをはじめ、あまりにも多くのアプリケーションが依然としてSHA-1をサポートしています。同じヘッドコミットのSHA-1ハッシュを持つ2つのGitリポジトリを作成しても、その内容が異なる可能性があります。例えば、片方にバックドアが密かに追加されていても、ハッシュからはそれが分かりません。ハッシュは完全に同じになります。

具体的には、研究チームはSHA-1ハッシュ衝突を発生させる実用的な手法を開発することに成功しました。ハッシュ関数であるSHA-1は、情報ブロックを受け取り、40文字の短い要約を生成します。この要約をファイル間で比較し、変更の有無を確認します。データの一部が変更されていれば、ハッシュ値は異なるはずです。本日発表された研究の結果、このアルゴリズムに依拠しているセキュリティメカニズムと防御策は事実上、弱体化しました。

Google の図解では、ハッシュ値を変更しないことでファイルの変更がレーダーに引っかからずに検出される可能性がある。

研究チームはこの技術の開発に2年を費やしました。この技術に到達するまでに、9,223,372,036,854,775,808回のSHA-1計算、CPU時間6,500年、GPU時間110年を要しました。研究チームは、マーク・スティーブンス(CWIアムステルダム)、エリー・バーシュタイン(Google)、ピエール・カープマン(CWIアムステルダム)、アンジュ・アルベルティーニ(Google)、ヤリック・マルコフ(Google)で構成されており、彼らの研究成果に関する論文はこちら[PDF]でご覧いただけます。論文のタイトルは「完全なSHA-1の最初の衝突」です。

詳細な情報や、使用されているIntel CPUとNvidia GPUの技術仕様については、チームの研究論文をご覧ください。衝突検出技術の基本レベルでは、データを小さなチャンクに分割し、あるチャンクセット内の変化、つまり乱れを、他のチャンク内のビット操作によって打ち消します。乱れベクトル[PDF]を用いて、適切なビットを見つけて反転させます。

GoogleのSHA-1衝突PDFの説明は、こちらでご覧いただけます。これらのファイルは基本的にそれぞれ大きなJPEG画像を含んでおり、ハッシュ衝突はその画像データに集中している点にご留意ください。また、単純なファイルでSHA-1衝突をさらに発生させるために、CPUとGPUに数千年もの時間を費やす必要はありません。Googleの計算能力とPDFファイル形式の特性により、見た目は異なっていてもSHA-1ハッシュ値は同じPDFを作成できるようになります。本日登場したこのオンラインツールを使えば、衝突PDFファイルを簡単に作成できます。

言い換えれば、Google などの研究のおかげで、PDF や Web ページ、その他の特定の単純な文書を改変して SHA-1 ハッシュ値を同じに保つことが、今では誰でも簡単にできるようになりました。

船を放棄する

テクノロジーの世界は、SHA-1からSHA-256などのより新しく強力なアルゴリズムへと徐々に移行しつつあります。SHA-1の脆弱性は数年前から認識されていましたが、今やその攻撃に対する脆弱性が露呈しています。この最新の研究は、SHA-256およびより強力なハッシュルーチンへの移行を加速させることの重要性を強調しています。

膨大な計算能力が必要となるため、チームの研究成果から、TLS証明書のような複雑で機密性の高い情報のための不正なSHA-1ハッシュがすぐに作成される可能性は低いでしょう。しかし、大企業や諜報機関が本当にそうしたいのであれば、SHA-1の衝突ハッシュを作成することは不可能ではありません。そして、このプロセスはコンピューターの高速化に伴い、今後ますます容易かつ安価になるでしょう。Googleらが作成した単一の衝突ハッシュを生成するために必要な計算能力は、現在のクラウドスポット価格で約13万ドルと推定されています。

「SHA-1が初めて導入されてから10年が経った今日、私たちは衝突を生成するための最初の実用的な技術を発表します」と研究チームは本日述べた。

これは、アムステルダムのCWI研究所とGoogleの2年間にわたる共同研究の集大成です。…テクノロジーコミュニティにとって、私たちの研究結果はSHA-1の使用終了の必要性を強く訴えるものです。Googleは長年にわたり、特にTLS証明書の署名においてSHA-1の廃止を主張してきました。Chromeチームは2014年には既に、SHA-1の使用を段階的に廃止すると発表していました。今回のSHA-1への実践的な攻撃によって、このプロトコルがもはや安全ではないという認識が確固たるものになることを願っています。

MWR InfoSecurityのシニアセキュリティコンサルタント、デビッド・チズモン氏はThe Registerに対し、次のように語った。「SHA-1アルゴリズムは数年前から脆弱性が指摘されており、NCSC、NIST、そして多くのベンダーによって非推奨とされています。しかしながら、今日まで実際の攻撃は行われていません。Googleの概念実証とツールの一般公開の約束により、この問題は仮説的な問題から、費用はかかるものの現実的な問題へと変わる可能性があります。」

「この攻撃はCPUとGPUの両方で依然として大量の計算を必要としますが、クラウドコンピューティングの時間を確保できる国家や個人であれば衝突攻撃を仕掛けられる範囲内であると予想されます。」

Googleは、ChromeブラウザでSHA-1で署名されたHTTPS証明書を持つサイトを「安全でない」と表示することで、SHA-1に終止符を打とうとしている。本日の調査は、時代遅れの暗号アルゴリズムに依存し続ける人々への更なる警告となるだろう。

チズモン氏はさらにこう付け加えた。「現実世界での攻撃を可能にするGoogleの新たな取り組みによって、ベンダーやインフラ管理者が自社の製品や構成からSHA-1を速やかに削除するようになることを期待しています。SHA-1は非推奨のアルゴリズムであるにもかかわらず、一部のベンダーは依然として最新のハッシュアルゴリズムをサポートしない製品を販売したり、追加費用を請求したりしているからです。」®

Discover More