パスワードを使ったログイン方式では、辞書攻撃(Dictionary Attack)という危険な攻撃手法が存在します。辞書攻撃は、攻撃者が「よく使われるパスワードのリスト(辞書)」を使って、ログインを何度も試すというものです。
この記事では『辞書攻撃』について、以下の内容を図を用いてわかりやすく解説します。
- 辞書攻撃とは?
- 辞書攻撃の流れ
- 「辞書攻撃」と「ブルートフォース攻撃(総当たり攻撃)」の違い
- 辞書攻撃への対策
辞書攻撃とは?

辞書攻撃は、攻撃者が「よく使われるパスワードの一覧(辞書)」を使って、ログインを何度も試す攻撃方法です。特定のユーザーID(例:adminやメールアドレスなど)を固定し、そのIDに対してログインを何度も試みます。
攻撃者はどんな「辞書」を使うのか?
攻撃に使われる「辞書」には、多くの人が使いがちな簡単なパスワードが集められています。
password
123456
abc123
iloveyou
111111
こうした辞書には、過去の情報漏えいで流出した本物のパスワードも含まれていることがあります。そのため、辞書攻撃は成功率が高く、とても危険性が高いです。
意外と多くの人が123456
などの簡単なパスワードを使っています。たとえば、スマホのロックに1111
のような単純な数字を設定している人もよく見かけますよね。以下のサイトでは、こうした「最悪なパスワードランキング」が紹介されていて、多くの人がどれだけ簡単なパスワードを使っているかがわかります。
辞書攻撃の流れ
辞書攻撃は、以下のような流れで行われます。
- 攻撃者が「よく使われるパスワードのリスト(辞書)」を用意
- 辞書には数千~数百万のよく使われるパスワードが収録されています。
- ログインフォームに自動で入力
- 自動化されたスクリプトやツールで連続的にログイン試行します。
- 正しいパスワードが見つかればログイン成功
- 成功すれば不正アクセスされます。その場合、アカウントが乗っ取られたり、個人情報などが盗まれる可能性があります。
「辞書攻撃」と「ブルートフォース攻撃(総当たり攻撃)」の違い
辞書攻撃とよく似た攻撃に「ブルートフォース攻撃(総当たり攻撃)」があります。以下に違いを示します。
比較項目 | 辞書攻撃 | ブルートフォース攻撃 |
---|---|---|
攻撃の内容 | よく使われる単語を順に試す | すべての文字の組み合わせを総当たりで試す |
処理時間 | 比較的短い | 非常に長い |
成功率 | 一般的なパスワードに有効 | 理論上すべてのパスワードに有効 |
攻撃の柔軟性 | 辞書にないパスワードには無力 | 時間さえあれば必ず突破できる(理論上) |
辞書攻撃の方が実際の攻撃でよく使われます。
辞書攻撃への対策
辞書攻撃を防ぐためにできる実践的な対策を紹介します。
対策1:強力なパスワードを使う
単純なパスワードは即突破されます。以下のポイントを意識した強固なパスワードを設定しましょう。
- できるだけ長い文字数(例:12文字以上)
- 英大文字・小文字・数字・記号を混ぜる
- 意味のある単語の組み合わせを避ける(例:password123 → NG)
- OK例:xT!7g@2v#MnZ8Wq
パスワードマネージャーの使用もおすすめです。
対策2:パスワードの使い回しをやめる
複数のサイトで同じパスワードを使うと、一つ漏れただけで全部危なくなります。同じパスワードを複数のサイトで使うのはやめましょう。
対策3:二要素認証(2FA)の導入
パスワードがバレても、認証コードやスマホアプリでの認証が必要になるため、不正ログインを防げます。
2FAの例
- Google Authenticator
- SMS認証
- メール認証
対策4:アカウントロック機能(開発者向け)
一定回数ログインに失敗したらアカウントを一時ロックする仕組みを実装すると、辞書攻撃の試行を防止できます。
対策5:reCAPTCHAの導入

ログインフォームに「私はロボットではありません」のチェックを入れるだけでも、自動化されたスクリプトによる攻撃を大きく防ぐことができます。
本記事のまとめ
この記事では『辞書攻撃』について、以下の内容を説明しました。
- 辞書攻撃は「よく使われるパスワード」を狙って突破を試みる攻撃方法です。
- シンプルなパスワードを使っていると非常に危険です。
- 強力なパスワード、2FA、reCAPTCHAなどを使って守りましょう。
お読み頂きありがとうございました。