メインコンテンツへスキップ

辞書攻撃とは

この記事は約 2 分で読めます

辞書攻撃 (Dictionary Attack) とは、辞書に載っている単語やよく使われるパスワードのリストを使って、パスワードを推測する攻撃手法です。ブルートフォース攻撃が全ての組み合わせを試すのに対し、辞書攻撃は人間が選びがちなパスワードに絞って効率的に試行します。「 password 」「 123456 」「 qwerty 」などの一般的なパスワードは数秒で突破されます。 2024 年の NordPass 調査でも「 123456 」が依然として最も使われるパスワードであり、辞書攻撃の有効性は衰えていません。

侵入テストでの診断用途

辞書攻撃は攻撃者だけの道具ではなく、侵入テストやパスワード監査において、防御側が自組織のパスワード強度を検証する手段としても使われます。組織内のパスワードに対して辞書攻撃を実施すると、辞書に載っている単語、社名や部署名、誕生日といった推測されやすいパターンを含むパスワードが浮かび上がります。人が自分で考えたパスワードはこうしたパターンに集中する傾向があるため、短時間で見破られるものが一定数見つかるのが通例です。この診断結果は、利用者への注意喚起やパスワードポリシーの見直し、ランダム生成されたパスワードへの移行を進める具体的な根拠になります。

辞書攻撃の手法と進化

基本的な辞書攻撃は単語リストをそのまま試行しますが、高度な手法では単語の末尾に数字を付加する、大文字小文字を変換する、文字を記号に置換する (例: a → @, e → 3) などの変換ルールを適用します。過去のデータ漏洩で流出した数十億件のパスワードリストも辞書として利用されます。現代の辞書攻撃ツールは GPU を活用し、 1 秒間に数十億回の試行が可能です。

ブルートフォース攻撃との違い

ブルートフォース攻撃は「 aaaa 」から「 zzzz 」のように全組み合わせを網羅的に試行するため、理論上はどんなパスワードも解読できますが、長いパスワードには膨大な時間がかかります。辞書攻撃は試行範囲を人間が選びやすいパターンに限定するため高速ですが、ランダムなパスワードには無力です。実際の攻撃では、まず辞書攻撃を試み、失敗した場合にブルートフォースに切り替えるのが一般的です。また、パスワードスプレー攻撃は少数のパスワードを多数のアカウントに試す変種で、アカウントロックを回避します。

辞書攻撃への対策

ランダムに生成されたパスワードは、辞書に含まれる単語やパターンを一切使用しないため、辞書攻撃に対して極めて高い耐性を持ちます。人間が考えたパスワードは無意識に辞書の単語やパターンを含みがちですが、ランダム生成されたパスワードにはそのような偏りがありません。サービス提供者側では、ログイン試行回数の制限、 CAPTCHA の導入、漏洩パスワードリストとの照合が有効な防御策です。

関連用語

この記事は役に立ちましたか?