Pedia

レインボーテーブル

れいんぼーてーぶる

English: Rainbow Table

意味

レインボーテーブルとは、ハッシュ化されたパスワードを解読するために用いられる、事前計算されたハッシュ値とその元の文字列(平文)の対応表のことである。パスワードクラック手法の一つであり、総当たり攻撃(ブルートフォースアタック)に比べて計算時間を大幅に短縮できる特徴がある。これを防ぐためには、パスワードのハッシュ化時に「ソルト」と呼ばれるランダムなデータを付加し、同じパスワードでも異なるハッシュ値が生成されるようにすることが有効である。

概要

パスワードのハッシュ値(暗号化された文字列)から、元のパスワードを高速に割り出す(クラッキングする)ための「カンニングペーパー(対応表)」のこと。

仕組み

通常、パスワードは「ハッシュ化」されて保存されているため、もしデータベースが盗まれても解読には時間がかかる。 しかし、攻撃者はあらかじめ「よくあるパスワード(aaa, password, 123456...)」と「そのハッシュ値」のペアを何億通りも計算して、巨大なテーブル(表)を作っておく。 盗んだハッシュ値をこのテーブルと照らし合わせれば、一瞬で元のパスワードが分かってしまう。

対策:ソルト(Salt)

レインボーテーブル攻撃を防ぐには、パスワードに「ソルト」と呼ばれるランダムな文字列(塩)を混ぜてからハッシュ化する。 これなら、もし同じパスワード「password」でも、混ぜる塩が違えばハッシュ値も毎回変わるため、レインボーテーブルが役に立たなくなる。

TOP / 検索 Amazonで探す