辞書攻撃とは
この記事は約 2 分で読めます
辞書攻撃 (Dictionary Attack) とは、辞書に載っている単語やよく使われるパスワードの リストを使って、パスワードを推測する攻撃手法です。ブルートフォース攻撃が 全ての組み合わせを試すのに対し、辞書攻撃は人間が選びがちなパスワードに 絞って効率的に試行します。「password」「123456」「qwerty」などの 一般的なパスワードは数秒で突破されます。2024 年の NordPass 調査でも 「123456」が依然として最も使われるパスワードであり、辞書攻撃の有効性は 衰えていません。
現場での使用例
「侵入テストで辞書攻撃を実施したところ、従業員 500 名中 47 名のパスワードが 10 分以内に解読されました。大半が社名や誕生日を含むパターンで、 ランダム生成への移行を強く推奨しています。」
辞書攻撃の手法と進化
基本的な辞書攻撃は単語リストをそのまま試行しますが、高度な手法では 単語の末尾に数字を付加する、大文字小文字を変換する、文字を記号に置換する (例: a → @, e → 3) などの変換ルールを適用します。過去のデータ漏洩で 流出した数十億件のパスワードリストも辞書として利用されます。 現代の辞書攻撃ツールは GPU を活用し、1 秒間に数十億回の試行が可能です。パスワード攻撃の書籍 (Amazon)で攻撃手法を学べます。
ブルートフォース攻撃との違い
ブルートフォース攻撃は 「aaaa」から「zzzz」のように全組み合わせを網羅的に試行するため、 理論上はどんなパスワードも解読できますが、長いパスワードには膨大な時間が かかります。辞書攻撃は試行範囲を人間が選びやすいパターンに限定するため 高速ですが、ランダムなパスワードには無力です。実際の攻撃では、 まず辞書攻撃を試み、失敗した場合にブルートフォースに切り替えるのが一般的です。 また、パスワードスプレー攻撃は 少数のパスワードを多数のアカウントに試す変種で、アカウントロックを回避します。
辞書攻撃への対策
パスつく.com で生成したランダムなパスワードは、辞書に含まれる単語やパターンを 一切使用しないため、辞書攻撃に対して極めて高い耐性を持ちます。 人間が考えたパスワードは無意識に辞書の単語やパターンを含みがちですが、 ランダム生成されたパスワードにはそのような偏りがありません。 サービス提供者側では、ログイン試行回数の制限、CAPTCHA の導入、 漏洩パスワードリストとの照合が有効な防御策です。安全なパスワードの作成ガイド (Amazon)も参考になります。