辞書攻撃 【dictionary attack】 ディクショナリアタック

概要

辞書攻撃(dictionary attack)とは、パスワードの割り出しなどの不明な文字列の推測を効率よく行う手法の一つで、辞書や人名録など人間にとって意味のある単語のリストを候補として用いる方式。

利用者認証などのパスワード破りに応用する場合には、辞書に掲載されている単語やフレーズを片端から入力して認証を突破できるか試みる。

文字通り語学辞書(英英辞典など)の見出し語などから候補リストを作る場合と、これに加えて何らかのリストから地名や人名、社名、製品名などの固有名詞を抽出して追加する場合がある。

人間はまったくランダムな文字列は覚えにくいため何らかの意味のある単語を使いたがるという心理を利用したもので、ありとあらゆる文字の組み合わせを試行する総当り攻撃ブルートフォースアタック)よりも効率的に探索を進めることができる。

試行回数は増えるが、より確実性を増すために、同じ単語の大文字と小文字の組み合わせが異なるパターンや、綴りを逆さにした文字列、先頭や末尾に数字や記号を加えたものなどを自動生成して追加する場合もある。

対処法としては、パスワードなどの一部または全体をまったく無意味でランダムな文字の並びにしたり、認証の試行回数に制限(一定回数の連続失敗でアカウントをロックするなど)を設け、攻撃者が大量のパターンを自動試行できないようにするといった手法がよく知られる。

暗号文やハッシュ値への辞書攻撃

暗号ハッシュ関数の解読手法として使われる場合には、辞書にある単語や無作為に集めた平文暗号化あるいはハッシュ化し、目的の暗号文ハッシュ値と突き合わせて一致するかどうかを調べる。

対策法としては、平文に毎回変化する無意味なデータ(ソルトと呼ばれる)を連結してから暗号化ハッシュ化などを行うようにするなどの手法がある。

(2020.2.23更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。