第45回 ハッシュアルゴリズムSHA-1の衝突

  • Clip to Evernote
  • Check

 いつもお世話になっております。情報セキュリティ担当の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