まちゅダイアリー

生兵法は怪我の元 (ハッシュ関数と HMAC)

2006-05-07

昨日の日記に書いた、「署名の生成に MD5 は危険だから HMAC を使った方がいい」という指摘が理解できないという話の続き。

「ある値」のハッシュ値が分かれば、「ある値+α」のハッシュ値が分かるということか。これが本当なら、僕のハッシュ関数への理解が根本的に間違っていることになるなぁ…。 (もしくは、ハッシュ関数全般の危険性じゃなくて、MD5固有の話?)

これについて、 kazuho さんから貴重なツッコミを頂いた(ありがとうございます)。

秘密鍵とハッシュ関数を組み合わせる手法によっては、セキュリティホールが発生する可能性がある。このような穴がないことが証明されている組み合わせ手法が HMAC である、ということです。

はてなの認証 API リリース」で書いた「はてな認証API」の方式(パラメータと秘密鍵を連結した値のハッシュ値を署名とする)では、ある条件を満たすと秘密鍵を知らなくても署名を偽造できる危険性があるということらしい (ただし、これは潜在的な危険性であって、「はてな認証API」の現状の実装では直接的な影響は無いとのこと)。 やっぱり、僕のハッシュ関数への理解が間違っていたみたい。 勉強になったなぁ…。

とりあえず整理

ちゃんと整理したいけど、時間が無いので箇条書きで。

関連リンク