米Googleとオランダの研究機関CWI Instituteは23日、2つの異なるファイルから同じSHA-1ハッシュ値を生成する“衝突”に成功し、その手法とハッシュ値が同一の2つのPDFファイルを公開した。Googleではより安全なSHA-256やSHA-3への移行を推奨している。

SHA-1は、米国家安全保障局（NSA）により設計され、米国立標準技術研究所（NIST）によって1995年に標準化されたアルゴリズムで、160ビットのハッシュ値を生成する。現在でも、HTTPS接続におけるSSL/TLS証明書、メールのS/MIME証明書、IPSec、OpenPGP、SSHなどのほか、ファイルの整合性の検証などに利用されている。

SHA-1を用いた証明書では、SHA-1で計算した値と、証明書のSHA-1の署名を比較し、値が一致することを信頼性の証明としている。

CWIでは7年以上前からSHA-1衝突に関する研究を開始し、2013年には論文を発表。2015年からはGoogleと共同で研究を進めていた。

SHA-1ハッシュ値の演算には、922京3372兆0368億5477万5808通りにわたる計算が必要で、攻撃の最初のフェーズを完了するまでにCPUで6500年、第2段階の完了までにGPUで110年の演算処理を要するという。Googleクラウドを活用することで、この大規模演算処理が実現された。ただし、ブルートフォース攻撃との比較では、10万倍以上高速とのことだ。

なお、Googleでは、PDFファイルにこのSHA-1衝突の手法が使われているかどうかを無料でスキャンできるオンラインツールを公開した。また、GmailやG Suiteに、PDFファイルでSHA-1衝突の手法を検出する技術を追加した。

さらに90日後には、いくつかの前提条件において、異なる2つの画像から、同じSHA-1ハッシュ値となる2つのPDFファイルを作成可能にするコードを公開するとしている。

Googleでは、SHA-1衝突が悪用されれば、SHA-1ハッシュ値に依存するシステムでファイルを不正なものに入れ替え、例えば、保険契約を大幅に異なるものに差し替えるといったことが可能になるとしている。

SHA-1を用いたSSL/TLS証明書については、それぞれ1月より提供されている「Google Chrome 56」と「Firefox 51」で、すでにサポートが打ち切られている。Microsoftでも、「Microsoft Edge」と「Internet Explorer 11」において、2月14日以降に証明書が無効との警告を表示している。また、Appleでも「Safari」と「WebKit」において、今春に提供予定のセキュリティアップデートでサポートを終了するとしている。