第45回 ハッシュアルゴリズムSHA-1の衝突
いつもお世話になっております。情報セキュリティ担当のJです。
今回は、ちょっと専門的な話題ですが、「ハッシュアルゴリズムSHA-1の衝突」をテーマに書いてみたいと思います。
2月23日(米国時間)に、Googleとオランダの研究機関が「ハッシュアルゴリズム:SHA-1の衝突(コリジョン)に成功した」と発表しました。
そもそも「SHA-1」(シャーワン)とは何か?というところですが、SHAは、暗号化通信で使用される電子証明書やファイルが、オリジナルのものと相違ないか、壊れたり、改ざんされていないか、などのチェックで使われる仕組みです(「(S)セキュア (H)ハッシュ (A)アルゴリズム」の略、『-1』は、バージョンを表しています)。
例えば、
【Aファイル.txt】(ファイルの中身⇒)1234567890
【Bファイル.txt】(ファイルの中身⇒)123456789A
というファイルがあり、このファイルから計算されるSHA-1の値は、
【Aファイル.txt】...01b307acba4f54f55aafc33bb06bbbf6ca803e9a
【Bファイル.txt】...be472353ac1c55ca42df82c73bd40a8ce8420a28
のように、全く異なる値になります。
今回、実験に成功した「衝突」ですが、この計算されるSHA-1の値が、本来別々でなくてはいけないものが、「ファイルの中身は異なるのに計算されたSHA-1の値が同じ」になる現象が、実際に発生することが証明されました。SHA-1の衝突については、理論上発生するが、計算に何百年とかかる、ということが言われていましたが、テクノロジーの進化により、現実的な時間で計算出来ることが証明されたことになります。
この現象が実際のサイバー攻撃に利用されると、電子証明書やファイルが、「本物」なのか「偽物」なのか区別が出来なくなり、大きな混乱が起きてしまいます。
SHA-1の衝突について、実は2005年に攻撃手法が発見されており、将来的に安全性が低下する恐れがあるとして、電子証明書やブラウザなども、より強固な「SHA-2」への移行が進んでいますので、今すぐ大きな問題になるとは考えにくいですが、今後、SHA-1の使用は控え、より強固なSHA-2などへの移行が強く推奨されるのではないかと思います。
情報セキュリティ管理者:J
[Googleによる発表(原文)]
https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html