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