Brute Force(総当たり攻撃)は、全てのパスワード候補を試すシンプルな手法ですが、現代のセキュリティでは多層的な防御策で対抗しています。本記事では、Brute Forceの仕組みからオンライン・オフライン攻撃、パスワード管理のコツや2要素認証、Passkeysまで、実践的な対策と最新動向をわかりやすく解説します。
Brute Force(ブルートフォース)は、最もシンプルなパスワードクラック手法の一つであり、プログラムがあらゆるパスワードの組み合わせを自動的に試し続け、正解を見つけるまで繰り返します。パスワード総当たり攻撃と呼ばれるこの手法は、システムの脆弱性を突く必要がなく、単に複数回の認証試行を許す環境であれば成立します。しかし、現代のセキュリティシステムはパスワード自体を強化するだけでなく、大量の試行を遅延させたり無効化したりすることで、Brute Forceへの耐性を高めています。
Brute Force攻撃は、無数の組み合わせを機械的かつ体系的に試して正解を見つける手法です。パスワードの場合、プログラムが組み合わせを生成し、失敗すれば次へ進みます。
最大のメリットは、攻撃者がパスワードの構造やシステムの脆弱性を知らなくてもよい点です。試行できる組み合わせが有限であれば、時間をかけていずれ正解に辿り着く「理論上の突破」が可能です。
ただし、組み合わせの数は指数関数的に増えるため、現実的には全パターンを試すことは困難です。
例えば4桁の数字パスワードなら、各桁に0~9の10種類が選べるため、1万通りの組み合わせ(0000~9999)が存在します。8桁なら1億通り、さらに英字や記号を加えると組み合わせは爆発的に増加します。
したがって、パスワードの長さは極めて重要です。1文字追加するごとに、組み合わせは使える文字セットの分だけ掛け算で増えます。
例えば、62種類(大小英字+数字)が使える8文字パスワードなら、218兆以上のパターンが存在します。
また、攻撃が行われる環境によって速度が大きく異なります。ログインフォーム経由ならサーバー側で試行回数や間隔が制限されますが、ハッシュデータを入手できればローカルで非常に高速に試行が可能です。
全通りの総当たりは非効率なため、現実の攻撃ではよく使われるパターンや、辞書攻撃が先に使われます。例えば「password」「qwerty」や数字の並びなどのリストを優先して試します。
また、文字の置き換え(例: a→@、o→0)、年号や記号の追加なども自動で考慮されます。見た目に難しそうでも、実はよくあるパターンに分類されるケースが少なくありません。
このためBrute Forceは、全通りだけでなく、より効率的な順序で候補を試す手法も含みます。
パスワード総当たりには主に2つのシナリオがあります:オンラインでサービス経由と、ハッシュデータ流出後のローカル攻撃です。これによって攻撃速度や防御策が大きく異なります。
オンラインBrute Forceは、サービスの認証画面からログインIDと推測パスワードを送信し、サーバーの応答で成否を判定します。
この方式ではサーバー側の制御があるため、高速で一斉に試行することはできません。数回の失敗で遅延や一時的なブロックを受ける場合が多く、大量の試行は年単位の時間が必要になることもあります。
さらに、IPアドレスやアカウントごとの試行回数、リクエスト頻度、端末情報などの監視により不審な動きはすぐ検知されます。
そのため、現代的なサービスでは従来型のオンライン総当たりはほとんど通用しません。例外は、試行制限がない・パスワードが極端に弱いシステムです。
一方、データベースが流出した場合は状況が変わります。安全なサービスはパスワードを平文で保存せず、ハッシュ化して保存します。
認証時には入力されたパスワードをハッシュ化して、保存値と一致するかを確認します。流出後はサイトにアクセスせずともローカルで推測パスワードのハッシュ値を計算し、照合できます。
この場合、サーバー側の試行制限や遅延が一切効かず、攻撃速度はハッシュアルゴリズムとPC性能に依存します。
よって、認証画面の防御だけでなく、パスワード保存方法の強化が同等に重要です。現代的なシステムは一回の試行自体に大きな計算資源を必要とするよう工夫されたアルゴリズムを採用しています。
パスワードハッシュの詳細や、流出時の防御メカニズムについては、「パスワードハッシュ:なぜ平文保存は危険なのか」で詳しく解説しています。
ただし、ハッシュ化だけで総当たりが不可能になるわけではありません。短い・よく使われるパスワードは初期段階で見つけられるため、複数層の対策(パスワードの強化・保存方法・試行制限)が求められます。
総当たりの速度は複数の要因に左右されます。パスワードの長さ、使える文字の種類、保存方法、攻撃がオンラインかオフラインかが主な要素です。
同じPCでも条件次第で試せる組み合わせ数は大きく変わります。組み合わせが多く、一回の試行が重いほど攻撃は困難になります。
最も重要なのは長さです。各桁ごとにN種類の文字が使え、L桁ならNL通りが可能です。
単なる記号追加より、長いランダムなパスワードのほうが格段に安全です。
使える文字種を増やすと組み合わせ数が増えます。小文字のみなら26種類、大小で52、数字を入れると62種類です。記号も加えればさらに増えますが、パターン化された組み合わせは攻撃ツールで予測されやすい点に注意が必要です。
例えば「Password1!」のような典型的な組み合わせは、ツールの辞書に含まれている場合が多く、見た目の複雑さほど安全ではありません。
オフライン攻撃では、一回のハッシュ計算の速さが重要になります。高速なハッシュ関数だと、短時間で膨大な試行ができてしまいます。
このため、現代的なパスワード保存には意図的に計算コストの高いハッシュアルゴリズムが使われます(例:bcrypt, Argon2など)。
さらに、ソルト(ランダム値)をパスワードに付加してハッシュ化することで、同じパスワードでも異なるハッシュ値となり、事前にテーブルを用意して一括照合する攻撃を困難にします。
安全性は、パスワードの複雑さと、システム側のハッシュ計算の重さの2つで支えられています。
現代のセキュリティ対策は、1つの仕組みだけでなく多層防御が基本です。万一弱いパスワードが使われても、試行速度制限や行動分析、2段階認証などが自動的な総当たりを大幅に困難にします。
最も基本的な防御策は試行回数の制限です。数回連続で失敗すると遅延や一時ロックをかけ、攻撃速度を劇的に低下させます。
一部サービスでは、失敗回数に応じて遅延を段階的に増やしたり、アカウントやIP単位でロックしたりします。ただし、厳格なロックは逆にアカウント妨害に悪用されることもあるため、複数の指標を組み合わせて判定するのが一般的です。
異常な試行が検知されると、CAPTCHAや追加認証で「人間による操作」であることを確認します。これにより自動化ツールによる大量試行が困難になります。
さらに、近年は明示的なCAPTCHA表示ではなく、リクエスト頻度やブラウザ情報など様々な行動パターンの分析による判定も主流です。
2要素認証(2FA)が有効な場合、パスワードが突破されてもそのままではログインできません。追加のワンタイムコードや認証デバイスが必要になります。
メール、SNS、クラウドなど個人データに直結するサービスでは、2FAの導入が特に重要です。
2FAの種類や安全性については、「2要素認証とは? 仕組みとSMS認証のリスク」をご覧ください。
一般ユーザーにとってのBrute Force対策は、狙われにくいパスワード選びと、万一漏洩時の被害最小化です。単なる文字種よりも長さ・独自性・予測困難性が重要です。
より長いパスワードは、攻撃者の試行回数を飛躍的に増やします。長いランダムなパスフレーズや、各サービスごとに異なるパスワードを設定しましょう。
同じパスワードの使い回しは、1箇所の漏洩で他サービスも危険に晒されます。パスワードマネージャーを活用すれば、長く複雑なパスワードの管理も容易です。
パスワードに加え、2FAでさらなる防御層を作ることができます。万が一パスワードが流出しても、攻撃者は追加認証を突破しなければなりません。
できれば、認証アプリや物理キー、信頼デバイスでの認証を優先し、SMSは補助的に利用しましょう。
近年注目されているのが、パスワード自体を使わない認証=Passkeysです。これはユーザーが覚えて入力する「秘密の文字列」を持たず、公開鍵暗号方式に基づきます。
Passkey作成時、端末上に秘密鍵が生成され、サービスには公開鍵だけが登録されます。ログイン時はサービスからのチャレンジに秘密鍵で署名して応答し、パスワードの推測や総当たりの余地がありません。
実際の認証は端末のPINや生体認証で完了します。
Passkeysやパスワードレス認証の仕組みは、「パスワード不要の安全認証:Passkeys・FIDO2・WebAuthn」で解説しています。
すぐにパスワードが消えることはありませんが、長くユニークなパスワード+2FA+Passkeysへの移行で、Brute Forceのリスクは大幅に減少します。
Brute Forceは、全てのパスワード候補を総当たりで試すシンプルな攻撃手法ですが、現代の環境ではサーバー側の遅延・ブロック・CAPTCHAや異常検知、オフライン攻撃ではパスワード長やハッシュアルゴリズムの強度によって大きく制限されます。
ユーザーにとって最も効果的な防御策は、各サービスごとに長くユニークなパスワードを設定し、2要素認証を利用することです。Passkeysの導入もパスワード依存からの脱却に有効であり、Brute Forceによる不正アクセスのリスクを根本から減らす手段となります。