SHA-1が非推奨となった理由
SHA-1非推奨の全容。2005年の理論的弱点から2017年のSHAttered衝突まで、業界の対応、SHA-256への継続的な移行について解説します。
詳細な説明
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の置き換え優先順位付けに役立ちます。