オランダ・CWI AmsterdamとGoogleの研究チームは23日、SHA-1ハッシュ値の衝突を現実的な時間で生成する攻撃手法「Shattered (SHAtterd)」を発表した(
CWIのニュース記事、
Google Security Blogの記事、
Phoronixの記事、
Ars Technicaの記事、
論文: PDF)。
Shattered攻撃は多数の暗号解析技術を組み合わせたもので、同じSHA-1ハッシュ値を持ち、内容の異なる2つのPDFファイルの生成などが可能だ。高速といっても2
63回の試行が必要となり、攻撃の第1フェーズは6,500 CPUで1年間、第2フェーズは110 GPUで1年間を要する。それでもブルートフォース攻撃と比較すると10万倍以上高速だという。
shatterd.ioではPoCとして、同じSHA-1ハッシュ値で内容の異なる2つのPDFファイル (
PDF 1/
PDF 2)を公開している。また、Shattered攻撃で使われているPDFかどうかを確認するテスター機能もWebページ上で提供される。研究チームではShattered攻撃がきっかけとなってSHA-1の危険性に対する認知度を高め、より安全なSHA-256などへの移行が進むことを期待しているとのこと。
SHA-1の危険性は何年も前から指摘されており、現在も文書の署名やHTTPS証明書、バージョン管理システムなど幅広く使われている。ただし、SHA-1のHTTPS証明書に関しては、CA/Browser Forumが
2016年1月1日以降発行を禁じている。Googleでは2014年リリースのChrom 39からSHA-1証明書の廃止を進め、今年1月リリースの
Chrome 56でSHA-1のサポートを終了した。Firefox 51も昨年11月のリリース以降、SHA-1証明書を無効化するユーザーを徐々に増やしていたが、
24日で移行を終了したそうだ。Firefox 52ではデフォルトで無効化される。一方、MicrosoftはInternet Explorer 11/Microsoft Edgeで
SHA-1証明書を使用するWebサイトをブロックする計画だったが、
2017年半ばまで延期する方針を22日に発表している。
なお、ShatterdのソースコードはGoogleの脆弱性公表ポリシーに従って90日後にリリースされるが、既に影響が出ているようだ。
WebKitのリポジトリはPoCのPDFファイル2本がアップロードされたことで障害が発生したという。Apache SVNは重複ファイルの検出にSHA-1を使うため、正常に動作しなくなったようだ。