辞書攻撃とは?簡単なパスワードが危険な理由
人が選びやすい言葉を優先して試す攻撃と、長さ・ランダム性・固有性を組み合わせる理由を解説します。
辞書攻撃とは、人がパスワードに使いそうな単語や既知の弱い文字列をまとめた候補集を使い、正しいパスワードを推測する攻撃です。
「辞書」は国語辞典だけではありません。よく使われるパスワード、漏洩済みの文字列、名前・地名・日付、数字や記号を加えた典型的な変形も候補になり得ます。この記事では攻撃用リスト、ツール、実行手順は紹介しません。
辞書攻撃の仕組み
人が覚えやすい文字列には偏りがあります。攻撃者は無意味な組み合わせを最初からすべて試すより、実際に選ばれやすい候補から自動的に試して正解を探そうとします。
先頭だけを大文字にする、末尾に年や記号を付ける、見た目が似た文字へ置き換えるといった変形も予測される可能性があります。英字・数字・記号を全部入れただけでは安全性を保証できません。
簡単なパスワードが危険な理由
多くの人が似た候補を選ぶ
名前、誕生日、地域、学校、ペット、好きな作品などは覚えやすい一方、公開情報から推測される場合があります。本人には特別な言葉でも、攻撃側の候補では珍しくないことがあります。
漏洩した実例が次の候補になる
過去の情報漏洩で使われていたパスワードは、人が実際に選ぶ文字列の資料になり得ます。以前のパスワードを少し変えただけでは、元の候補と一緒に推測される可能性があります。
定番の変形も予測される
末尾へ数字や記号を1文字加える、現在の年へ変更するといった規則は候補化できます。複雑に見えることと、予測されにくいことは同じではありません。
似た攻撃との違い
- 辞書攻撃:人が選びそうな単語や既知の候補を優先する
- ブルートフォース攻撃:考えられる組み合わせを広く総当たりする
- パスワードスプレー:少数の弱い候補を多数のアカウントへ試す
- クレデンシャルスタッフィング:別サービスから漏れた実際のIDとパスワードを試す
現実の攻撃は1種類だけとは限らず、辞書の候補に変形規則や総当たりを組み合わせる場合もあります。
オンラインとオフライン
ログイン画面へ試す場合
オンライン攻撃では、試行回数の制限、失敗後の待ち時間、異常検知、多要素認証が防御になります。
ハッシュ値が盗まれた場合
漏れたハッシュ値を攻撃者の環境で照合するオフライン解析では、ログイン画面の制限が働きません。個別ソルトと計算コストの高い保存方式、長く予測されにくいパスワードが重要です。
破られる時間は、攻撃方法、予測しやすさ、保存方式、計算資源で変わり、一律には断定できません。
安全なパスワードの考え方
十分な長さ
NISTの現行ガイドラインでは、単一要素のパスワードは最低15文字とし、一般的・予測可能・漏洩済みの値を拒否する考え方が示されています。
ランダムに作る
パスワードマネージャーで長いランダム文字列を生成すると、人の規則を避けやすくなります。覚える場合は、互いに関係のない複数の単語をランダムに選ぶ長いパスフレーズも選択肢です。有名な文章は避けます。
サービスごとに固有にする
別サービスから漏れた認証情報を使い回されれば、推測に強くても防げません。すべてのサービスで異なるものを使います。
定期変更より漏洩時の変更
NISTとOWASPは根拠のない定期変更を強制せず、漏洩や侵害の証拠があるときに変更する考え方を示しています。
多要素認証とパスキー
多要素認証は、パスワードを推測されても別の要素を要求します。ただし認証コードまで入力させるフィッシングには注意してください。
パスキーは共有パスワード文字列を毎回入力しない方式で、従来型のパスワード推測を受けにくくします。端末の画面ロックと復旧手段も保護します。
利用者が確認する7項目
- 名前、誕生日、連番、定番の単語を使わない
- 十分に長く、予測されにくいものを選ぶ
- サービスごとに異なるものを使う
- パスワードマネージャーを利用する
- 多要素認証またはパスキーを有効にする
- ログイン通知とログイン中の端末を確認する
- 漏洩が疑われたら公式画面から変更する
サービス提供者側の対策
- 一般的・予測可能・漏洩済みパスワードの拒否
- 十分な最小文字数と長いパスフレーズを許容する上限
- アカウントや通信元を考慮したレート制限
- 待ち時間、リスクベース認証、多要素認証、パスキー
- 不審なログインの監視と通知
- 低速なパスワードハッシュと利用者ごとのソルト
CAPTCHAや固定ロックだけに頼らず、複数の対策を重ねます。強すぎる固定ロックは、第三者による意図的な失敗で正規利用者を締め出す攻撃にも悪用され得ます。
Googleログインを使う場合
第三者サービスごとに新しいパスワードを作る必要がなく、第三者へGoogleのパスワードそのものを渡しません。その分、Googleアカウントを固有の認証情報、多要素認証やパスキー、不審なログイン通知で保護します。
SECRET CLOUD
ログインの入口も守る
シークレットクラウドはGoogleログインを利用し、サービス専用パスワードを作りません。Googleアカウントの保護に加え、端末の画面ロックとフィッシング対策を組み合わせてください。
プライバシー設計を見るまとめ
辞書攻撃は、人が選びやすい単語、漏洩済み文字列、典型的な変形を優先してパスワードを推測します。数字や記号を1つ加えるだけでは十分とは限りません。
長くランダムでサービスごとに固有のパスワードを使い、パスワードマネージャー、多要素認証、パスキーを活用しましょう。
参考情報
- NIST「SP 800-63B-4 Digital Identity Guidelines」
- OWASP「Authentication Cheat Sheet」
- CISA「Secure Our World」
推奨事項や各サービスの認証仕様は更新される場合があります。利用時点の公式情報も確認してください。