レインボーテーブル
ソルトにユーザーIDを利用やハッシュ値を作る際にユーザ名を混ぜ込むを読んでいて思ったのだが、メールアドレスをハッシュ化する際のSALTとしてメールアドレス自身を用いれば、メールアドレスをキーとして扱うことができる気がしてきた。
素人考えなのでセキュリティ的に安全なのかはわからない。レインボーテーブルは作れてしまいそうだ。
逆の発想で、パスワードをSALTにしてメールアドレスをハッシュ化すればいいかもしれない。パスワード変更時にはメールアドレスも一緒に入力してもらう必要がある。
プログラマがパスワードをハッシュ化する際に毎回同じソルトを使用するケース。 この場合でも、既存のレインボーテーブルを無効化することはできる(ソルトの値が適切であれば)。ただし、広く使われている製品にソルトがハードコーディングされると、そこから抽出したソルトを使って新しいレインボーテーブルを生成できてしまう。 また、ソルトが固定だと、パスワードが同じユーザーはハッシュ値も同じになってしまう(ハッシュ値を作る際にユーザ名を混ぜ込んでいる場合を除く)。これにより、一つのハッシュ値で複数のユーザーを攻撃するのが容易になってしまう。
rainbow table
語源が知りたい。
→
When colors are used to represent the reduction functions, a rainbow appears in the rainbow table.
塩との関係性
この対策〔暗証語長を長くし,語彙を複雑にする〕は容易に行えるため総当たり攻撃,辞書攻撃は計算量,記憶容量的観点からパスワード認証の現実的な脅威にはなりにくい[...]
空間的,計算量的な問題を解決するパスワード解析手法にレインボークラックがある。
レインボークラックはレインボーテーブルを用いることによって,現実的な記憶容量や計算量でのパスワード解析を可能とする. レインボーテーブルは大量のパスワードとそのハッシュ値のペアを圧縮して保存することによって,必要な記憶容量を削減したデータテーブルである.
接触元: あれ