SHA-1が非推奨となった理由

SHA-1非推奨の全容。2005年の理論的弱点から2017年のSHAttered衝突まで、業界の対応、SHA-256への継続的な移行について解説します。

SHA-1

詳細な説明

SHA-1は1995年から2010年代半ばまで主要な暗号学的ハッシュ関数として、SSL/TLS証明書、コード署名、Git、数多くのプロトコルで使用されていました。その非推奨化はコンピューティング史上最大規模の協調的セキュリティ移行の一つです。

理論的な亀裂(2005年):

2005年、Xiaoyun Wang(MD5を破った同じ研究者)がSHA-1の衝突発見を予想される2^80操作から2^69に削減する攻撃を発表しました。当時はまだ非現実的でしたが、明確な警告でした。暗号学者はSHA-256への移行を提唱し始めました。

SHAttered攻撃(2017年):

GoogleとCWI Amsterdamが約6,500 CPU年と110 GPU年の計算に投資し、最初の実用的SHA-1衝突を生成しました。同一のSHA-1ハッシュを持つが視覚的内容が異なる2つのPDFファイルを作成しました。十分なリソースを持つ攻撃者にとってSHA-1衝突が達成可能であることを証明しました。

選択プレフィックス衝突(2020年):

Gaëtan LeurentとThomas Peyrinが選択プレフィックス衝突を実証しました。これは任意の選択プレフィックスを持つ2つの入力を衝突させるより強力な攻撃です。GPU レンタルコストは約45,000ドルと推定され、犯罪組織の手の届く範囲です。

業界の非推奨化タイムライン:

2011年:NISTがデジタル署名でのSHA-1を非推奨。2014年:Google ChromeがSHA-1証明書への警告表示を開始。2016年:主要CAがSHA-1 SSL証明書の発行を停止。2017年:Chrome、Firefox、EdgeがSHA-1証明書を完全拒否。2020年:MicrosoftがWindows用SHA-1コード署名信頼を削除。GitがSHA-256へのデフォルトオブジェクトフォーマット移行を発表。

残存するSHA-1の使用:

Gitはまだデフォルトでsha-1を使用(移行中)。HMAC-SHA1は技術的に安全であり、TOTP互換性に必要。一部のレガシー組み込みシステムがSHA-1に依存。すべてに移行計画を用意すべきです。

ユースケース

SHA-1の非推奨化を理解することで、セキュリティチームが移行予算の正当化と、証明書・署名・プロトコル実装におけるSHA-1の置き換え優先順位付けに役立ちます。

Try It — Hash Generator

フルツールを開く