ブルートフォース攻撃とは?パスワードが破られる仕組みを解説
総当たりで正解を探す攻撃の仕組みと、長さ・固有性・追加認証を組み合わせる理由を解説します。
ブルートフォース攻撃とは、考えられるパスワード候補を大量に試し、正しい組み合わせを見つけようとする攻撃です。日本語では「総当たり攻撃」と呼ばれます。
短いパスワードは候補が少なくなりますが、文字数だけで安全性は決まりません。定番の単語、連番、名前や誕生日は優先して推測される可能性があります。
総当たりの基本
数字だけの1桁なら10通り、2桁なら100通り、4桁なら1万通りです。使用文字と長さが増えるほど理論上の候補数は急激に増えます。攻撃は自動化される場合がありますが、この記事では実行ツールや手順は説明しません。
長さと推測されにくさ
1文字増えるごとに候補は大きく増えます。ただし12345678やpassword123は広く使われ、早い段階で試される可能性があります。長さに加えて予測されにくさが必要です。
辞書攻撃
人が使いそうな単語、既知の弱いパスワード、数字や記号を加えたパターンを優先します。名前、誕生日、電話番号、ペットなどSNSから分かる情報も避けましょう。
似た攻撃との違い
- ブルートフォース:1つのアカウントなどへ多数の候補を試す
- 辞書攻撃:よく使われる単語や既知の候補を優先する
- パスワードスプレー:少数の弱いパスワードを多数のアカウントへ試す
- クレデンシャルスタッフィング:別サービスから漏れた実際のID・パスワードを試す
オンライン攻撃とオフライン解析
オンライン
ログイン画面へ候補を送ります。サービス側は試行制限、待ち時間、追加認証、異常検知で高速な試行を抑えられます。
オフライン
パスワードのハッシュ値が盗まれ、攻撃者の環境で候補を計算・照合される場合です。ログイン画面の制限が効かないため、保存方式とパスワードの強さが特に重要です。
破られる時間は、攻撃方法、予測しやすさ、ハッシュ方式、計算資源などで変わり、一律には断定できません。
ハッシュとソルト
安全なサービスはパスワードを平文保存せず、パスワード保存向けのハッシュ処理を行います。ソルトは利用者ごとに加えるランダム値で、同じパスワードでも保存結果を異ならせます。
OWASPは、Argon2id、bcrypt、PBKDF2など、計算コストを持つ保存方式と個別ソルトを案内しています。
現代的なパスワード設計
NISTの現行ガイドラインでは、単一要素として使うパスワードは最低15文字とし、一般的・予測可能・漏洩済みの値を拒否する考え方が示されています。サービスの許容範囲で十分長いものを選びます。
大文字・小文字・数字・記号を必須にするだけでは、Password1!のような予測可能な形へ偏ることがあります。長さ、ブロックリスト、レート制限を組み合わせます。
パスフレーズとランダム文字列
推測されにくい単語を組み合わせる長いパスフレーズは選択肢ですが、有名な文章や個人情報を避け、使い回しません。パスワードマネージャーなら、人の規則に偏らない長いランダム文字列を生成できます。
使い回しは別の危険
どれほど長くても、別サービスから漏れるとクレデンシャルスタッフィングでは当てる必要すらありません。長さと固有性は別の条件です。
多要素認証とパスキー
多要素認証は、パスワードが当たっても追加認証を必要にします。ただし認証コードを盗むフィッシングには注意が必要です。
パスキーは共有パスワード文字列を毎回入力しないため、従来型のパスワード総当たりを成立させにくくします。端末の画面ロックと復旧情報も保護します。
スマートフォンのPIN
4桁より6桁は候補が増えますが、123456、同じ数字、誕生日は避けます。生体認証があっても再起動時などにPINが必要なため、裏側の認証も重要です。
利用者ができる7つの対策
- 十分に長いパスワードを使う
- 名前、誕生日、連番、定番文字列を避ける
- サービスごとに別のパスワードを使う
- パスワードマネージャーを使う
- 多要素認証を設定する
- 対応していればパスキーを使う
- 不審なログイン通知と端末一覧を確認する
多数のログイン試行を通知されたら
- 自分の操作か確認
- 公式画面から端末と履歴を確認
- 弱い・使い回しのパスワードなら変更
- 不審なセッションをログアウト
- 復旧情報と多要素認証を確認
- 同じパスワードを使う他サービスも確認
サービス提供者側の対策
- アカウント単位・通信元単位のレート制限
- 失敗回数に応じた待ち時間やリスクベース認証
- 多要素認証・パスキー
- 漏洩済み・一般的なパスワードの拒否
- 不審なログインの監視と通知
- CAPTCHAを含む自動化対策
- セッション一覧と一括ログアウト
- パスワード専用の低速ハッシュと個別ソルト
固定的で強すぎるロックは、他人のアカウントを意図的に利用不能にする攻撃へ悪用される場合があります。複数の対策をバランスよく重ねます。
Googleログインを使う場合
第三者サービスごとに弱いパスワードを新設する機会を減らせます。第三者サービスへGoogleのパスワードそのものを渡しません。その分、Googleアカウントを固有の認証、多要素認証やパスキーで保護します。
SECRET CLOUD
ログインの入口も守る
シークレットクラウドはGoogleログインを利用し、サービス専用パスワードを作りません。Googleアカウントの認証、端末の画面ロック、フィッシング対策を組み合わせてください。
プライバシー設計を見るまとめ
ブルートフォース攻撃は候補を大量に試して正解を探す攻撃です。十分に長く推測されにくいパスワードをサービスごとに使い分け、パスワードマネージャー、多要素認証、パスキーを活用します。
サービス側も、レート制限、安全なハッシュ保存、漏洩済みパスワードの拒否、異常検知などを重ねる必要があります。
参考情報
- NIST「SP 800-63B-4 Digital Identity Guidelines」
- OWASP「Authentication Cheat Sheet」
- OWASP「Password Storage Cheat Sheet」
- CISA「Turn On MFA」
推奨事項やサービスの認証仕様は更新される場合があります。各サービスと公的機関の最新案内も確認してください。