FE EXAM

辞書攻撃(ディクショナリアタック)

よく使われる単語の一覧を使ってパスワードを推測する攻撃。

INTERACTIVE VISUALIZATION
辞書(候補)
一致
ログイン画面
フェーズ
idle
試行回数
0 / 8
突破状況
未突破
シナリオ
ステップ1 / 6
STEP 1/6攻撃が始まる前(辞書を用意)攻撃者は事前に「よく使われそうなパスワードの一覧」を用意します。これを辞書と呼びます。"password" や "123456" のような、多くの人が安易に設定しがちな単語が並んでいます。全部の組合せではなく、当たりそうな候補だけに絞っているのが特徴です。
辞書(よく使われる単語)password123456qwertyadminletmeinwelcomeiloveyoufootballログイン画面* * *待機
辞書攻撃の特徴
・候補:ありがちな単語だけに絞る(全組合せではない)
・速さ:試行回数が少なく高速
・弱点:辞書にない複雑な文字列は破れない
解説

📌
辞書攻撃とは

辞書password123456admin順に試すログイン推測突破

辞書攻撃(ディクショナリアタック)とは、よく使われる単語の一覧を使ってパスワードを推測する攻撃のことです。"password" や "123456" のように、多くの人が安易に設定しがちな単語をあらかじめ集めた一覧(辞書)を使います。

身近な例で考えると、「みんなが使いそうな暗証番号リスト(誕生日・1234・0000など)」を用意して、当たりそうなものから試すのと同じです。全部の番号を試すのではなく、「ありがち」なものに狙いを絞るのがポイントです。

上のツールで▶ボタンを押すと、攻撃者が辞書を上から順に入力し、被害者が設定した安易な単語に一致して突破される流れを確認できます。

⚙️
攻撃の仕組み

password →外れ123456 →外れqwerty →外れadmin →一致!

辞書攻撃は、事前に用意した単語リストを上から順にログインに入力するだけのシンプルな攻撃です。リストには、実際に漏洩したパスワードの統計や、辞書の単語、人名、地名などがまとめられています。

攻撃の手順は次のとおりです。
① 辞書を用意:ありがちなパスワードの一覧を集める
② 順に試行:辞書の単語を1つずつログインに入力する
③ 一致で突破:被害者のパスワードが辞書にあれば、その時点でログインに成功する

さらに、単語の末尾に数字を付けたり(password1)、文字を記号に置き換えたり(p@ssw0rd)といった変形パターンを自動生成する辞書攻撃もあります。安易な単語をベースにした「ひとひねり」程度のパスワードも、見破られやすいと言えます。

⚖️
ブルートフォースとの違い

辞書攻撃(厳選)少ない候補・高速総当たり(網羅)全組合せ・低速だが確実

辞書攻撃とブルートフォース攻撃は、どちらも「パスワードを当てる」攻撃ですが、試す候補の選び方が違います。辞書攻撃は「ありがちな単語に絞る」、ブルートフォースは「全組合せをしらみつぶし」です。

項目辞書攻撃ブルートフォース
試す候補ありがちな単語のみすべての組合せ
試行回数少ない(高速)膨大(低速)
弱点辞書にない単語は破れない長いと時間がかかりすぎる

両者は「速さ」と「網羅性」がトレードオフ(あちらを立てればこちらが立たず)の関係です。実際の攻撃では、まず辞書攻撃で手早く試し、ダメならブルートフォースに切り替える、と組み合わせることもあります。いずれにせよ、辞書にない長く複雑な文字列をパスワードにすれば、どちらの攻撃も効きにくくなります。上のツールで両者の候補の数の違いを見比べてみてください。

なぜ辞書攻撃が有効なのか

全パスワード空間ありがちなパスワード狙う多くの人がありがちなものを使う辞書に載る単語を使う人が多いほど成功率が上がる

辞書攻撃が有効なのは、現実に多くの人が安易なパスワードを使っているからです。「password」「123456」「生年月日」のような単純なものを設定する人が多いため、辞書に載った数千〜数万の候補だけでも、かなりの確率でパスワードを当てられます。

なぜ人は安易なパスワードを選んでしまうのかというと、「覚えやすさ」と「安全性」はトレードオフ(あちらを立てればこちらが立たず)の関係にあるからです。覚えやすいパスワードは、攻撃者にも「思いつきやすい」パスワードでもあります。
辞書に載りやすい例:単純な数字の並び・よく使われる英単語・自分の名前や誕生日
辞書に載りにくい例:意味のないランダムな文字と記号の組み合わせ(例:tR7$wq2!

身近な例で考えると、鍵の番号が「0000」や「1234」のロッカーは真っ先に試されるのと同じです。「まさか当たらないだろう」という感覚が、実は攻撃者が一番先に狙うところです。だからこそ、ありがちな単語を避けることが最も基本的な防御策になります。

🛡️
身を守るパスワードの作り方

password123辞書に載る → 危険tR7$wq2!Lp9辞書に載らない → 安全単語ベース・短いランダム・長い・記号混じり長さと複雑さが辞書攻撃への最大の防御

辞書攻撃から身を守るには、辞書に載らないパスワードを作ることが基本です。辞書に載らないとは、「よく使われる単語や並びではない」ということです。

強いパスワードを作るポイントは次のとおりです。
長くする:文字数が増えるほど候補が爆発的に増え、攻撃に時間がかかる
複雑にする:大文字・小文字・数字・記号を混ぜると辞書に載りにくくなる
意味のある単語を避ける:人名・誕生日・英単語はそのまま辞書に載っている

また、同じパスワードを複数のサービスで使い回さないことも重要です。1つのサービスでパスワードが漏れると、他のサービスでも同じパスワードが通じてしまうからです(=パスワードリスト攻撃といいます)。パスワード管理ツールを使えば、複雑なパスワードを覚えずに使い分けられます。

練習問題

🎯
基本情報技術者 練習問題

Q1.辞書攻撃の説明として最も適切なものはどれか。
A.よく使われる単語の一覧を使ってパスワードを推測する攻撃
B.考えられるすべての組合せを総当たりで試す攻撃
C.大量アクセスでサービスを停止させる攻撃
D.通信を盗聴して内容を読み取る攻撃
Q2.辞書攻撃とブルートフォース攻撃の違いとして正しいものはどれか。
A.辞書攻撃は全組合せを試し、ブルートフォースは単語だけを試す
B.辞書攻撃はありがちな単語に絞るため試行回数が少ない
C.辞書攻撃は辞書にない複雑なパスワードも必ず破れる
D.両者はまったく同じ攻撃である
Q3.辞書攻撃を防ぐのに最も効果的なパスワードはどれか。
A.password
B.123456
C.qwerty
D.tR7$wq2!Lp9

関連コンテンツ