パスワードと塩

パスワードの保存に SMD5 (Salted MD5) や SSHA1を使う
http://www.machu.jp/diary/20071023.html#p01

md5.rednoize.comのようなハッシュ値から元の値を返すようなサービスがあって、(...)仕組みは単純で、よく使われている単語を片っ端からハッシュ値に変換して、両者の対をDBに保管しておくだけ。こうすればDBに保管されているハッシュ値であれば、元の値に一瞬で変換することができる。こういう攻撃を辞書攻撃という。(...)ってことで登場するのが salt という仕組み。

昔、/etc/passwd にある salt ってフィールドが何のためか分からなかったなぁ。そういう意味では salt を使うのは常套手段かとも思うけど、意外とそうじゃないサービスが多いんでしょうね。しかし、md5.rednoize.com みたいなサービスもあるとは、ますます「network is a computer」ですな。

ちなみに、上のページのコメント欄で「hash 関数が十分に早いから辞書攻撃(というか、総当たり攻撃)に弱いんだ」っていう指摘があって、まぁ正しいとは思うけど、でも結局上のサービスみたいな巨大辞書が大きくなる時間が多少変化するだけで、本質的にはあまり変わらない気がする。(まぁ、有名じゃないアルゴリズムを使うとか round 数を変えるとかで、そもそも辞書を作る気が起きないようにするのは良い手段だと思うけど)

posted by say · 2007年10月27日 16:07 · memo