HOME


MD5を含む各種ハッシュアルゴリズムに欠陥か

2004/8/24
(随時更新)

アメリカ・カリフォルニア州サンタバーバラで2004年8月15日から行われた暗号専門家のカンファレンス"Crypto 2004"で、MD5を含む各種のハッシュアルゴリズムに、異なる内容で同一のハッシュ値を作成できてしまう欠陥--ハッシュ衝突またはハッシュコリジョンと呼ばれる--があると発表された。
MD5の欠陥は「同一でないが、ハッシュ値は同じになる値を計算するのに、普通のPCで1時間程度ですむ」レベルだという。


原論文に「IBM P690を使用した」と書かれていたため「普通のPCで1時間程度」などと報道されたのかもしれないが、調べてみるとIBM P690は最大搭載RAMが1TB(!)というマルチプロセッサマシンで、とても「普通のPC」とはいえない。

改ざんの有無を検証する手段としてのMD5
今のところ、

を行って、ハッシュ値を同じにできたという報告はないようだ。...だがバイナリデータの方は、MD5を同じにしたバックドア付きの改ざんが可能だろうという意見が、専門家から出ている。
だが「プレーンテキストに文書として意味のある改ざんをして、MD5を同じにする」のはムリなんじゃないか...と思うのだが。テキストの末尾に多量のゴミ文字列でもつけない限り。...メールについては、ひょっとするとMIMEのアタッチメントを偽装して可能か?...でもメール本文の電子署名はアタッチメントとは別だし...。
スクリプトの場合は、改ざんの有無はソースを見れば一目瞭然だろうが、その逆も真--ソースを確かめるまで改ざんがわからない--かもしれない。
それから、公開鍵のフィンガープリントとしては、SHA-1以上のハッシュ関数を使うのがすでに一般的になっていて、MD5はほとんど使われないようだが、今回の衝突発見によってMD5は決定的に使われなくなるかもしれない。

パスワードを照合する手段としてのMD5
UNIX系OSではパスワードの暗号化方式にMD5を選択すると、/etc/shadowにパスワードのMD5値が保存される。
今回のMD5ハッシュ衝突を計算するには、MD5と、そのもとになる値の両方が必要らしいので、MD5パスワードについては直接の影響はないのではないか。ただしこれについては、まだはっきりしたことはいえない。

チャレンジ・レスポンス方式でのMD5
OTP(One Time Password)、SSH、APOP、Apacheのダイジェスト認証などでは、毎回異なるチャレンジ文字列とパスワードを連結してMD5値をとり、それをネットワークに流す。チャレンジ文字列が毎回異なるので、MD5値も毎回異なる。この仕組に対して、今回のハッシュ衝突が影響を与えるかというと、ほとんど関連がないのではないだろうか。

解説記事など
詳細は以下を参照。


HOME

Copyright (C) Cybernetic Survival Network. All Rights Reserved.