結論: ブルートフォース攻撃(総当たり攻撃)は、パスワードの組み合わせを、片っ端から試して、ログインを破ろうとする攻撃です。パスワードが短い・単純・使い回しだと破られやすく、長くするほど、試す組み合わせは桁違いに増えます。対策の中心は、長いパスワード、使い回しをやめる、多要素認証の3つです。
ブルートフォース攻撃とは
英語の「brute force」は、「力任せ」という意味です。頭を使わず、機械の力で、すべての組み合わせを試すので、日本語では「総当たり攻撃」と呼ばれます。
たとえるなら、数字4桁の鍵を、「0000、0001、0002……」と、9999まで、順番に回していくようなものです。時間さえかければ、いつかは開きます。
似た攻撃との違い
「パスワードを試す攻撃」には、いくつかの種類があります。
| 攻撃 | 試し方 | 特徴 |
|---|---|---|
| ブルートフォース(総当たり) | 1つのIDに、組み合わせを片っ端から試す | 時間はかかるが、短いパスワードには効く |
| 辞書攻撃 | 「password」「123456」など、よくあるパスワードの一覧を順に試す | 単純なパスワードは、すぐに見つかる |
| パスワードスプレー | 多数のIDに、少数の弱いパスワードだけを試す | 1つのIDあたりの試行が少なく、ロックされにくい |
| リスト型攻撃 | 他で流出した、実在するIDとパスワードの組み合わせを試す | 使い回しがあると、一発で成功することも |
リスト型攻撃については、リスト型攻撃(クレデンシャルスタッフィング)とは?で、くわしく解説しています。
パスワードの長さで、組み合わせはどう変わるか
試す組み合わせの数は、長さと、使える文字の種類で決まります。
- 数字だけ4桁:10,000通り
- 数字だけ8桁:約1億通り
- 英字の大文字・小文字と数字、8文字(62種類の文字):約218兆通り
- 12文字以上:さらに桁違いに増える
短いパスワードは、数が少ないので、機械なら一瞬です。1文字増えるごとに、組み合わせは何十倍にも増えます。そのため、**「複雑さ」より「長さ」**のほうが、効きやすいとされています。
ただし、「長ければ安全」とも限りません。「password12345678」のように、よくあるパターンは、辞書攻撃で、すぐに見つかります。予測しにくいことも、大切です。
オンライン攻撃とオフライン攻撃
ブルートフォース攻撃には、試す場所による違いもあります。
- オンライン攻撃:実際のログイン画面に、直接試す。サービス側の回数制限や、ロックに引っかかるので、1秒に試せる回数は、限られる。
- オフライン攻撃:サービスから**流出したデータ(パスワードをハッシュ化したもの)**を手に入れ、自分のパソコンで、制限なく試す。短時間に、非常に多くの組み合わせを試せる。
オフライン攻撃への備えは、サービス側の仕事で、パスワードをそのまま保存しない、ハッシュ化とソルトを使う、といった対策が必要です。仕組みは、パスワードのハッシュ化とソルトとは?で解説しています。利用者の側からは、その対策が見えないので、使い回しをしないことが、そのまま自分の身を守る手段になります。
個人でできる対策
① 長くて、予測しにくいパスワードにする
目安は、12文字以上です。名前や、誕生日、キーボードの並び(qwerty、123456)は、避けます。単語をいくつかつなげる「パスフレーズ」も、覚えやすく、長さを確保できます。
② サービスごとに、別のパスワードにする
使い回しが、一番の弱点です。1つが流出すると、他のサービスも、まとめて危険になります。覚えられないのが普通なので、パスワードは「覚える」のではなく、管理ツールで管理するほうが、現実的です。
③ 多要素認証をオンにする
パスワードが破られても、もう1つの確認があれば、ログインを止められます。ただし、承認ボタンだけの方式は、MFA疲労攻撃のように、別の手口で狙われることがあります。パスキーなどの、パスワードに頼らない方式が使えるなら、そちらが強くなります。
④ ログインの通知を、見逃さない
「新しい端末からのログインがありました」「ログインに失敗しました」という通知が、身に覚えがないなら、パスワードを変えるサインです。通知を、オフにしないようにしましょう。
企業・サービス側の対策
- ログイン試行の回数制限と、一定回数の失敗でのロック(ただし、ロックの仕組みを悪用した、嫌がらせもあるので、設計に注意が必要)
- 多要素認証の必須化
- ログインの異常検知(短時間に、多数のIDで失敗が続く、普段と違う国からのアクセスなど)
- 弱いパスワードの登録の拒否(よくあるパスワードの一覧との照合)
- パスワードの安全な保存(ハッシュ化とソルト)
アカウントのロックが起きる理由と、対処は、アカウントがロックされる理由でも説明しています。
まとめ
- ブルートフォース攻撃は、組み合わせを片っ端から試す「総当たり」。
- 辞書攻撃・パスワードスプレー・リスト型攻撃は、試し方が違う、親戚のような攻撃。
- 個人は、長いパスワード、使い回しをやめる、多要素認証。サービス側は、回数制限と異常検知。
※この記事の「組み合わせの数」は、文字の種類と桁数から計算した、理論上の数です。実際の攻撃の速さは、環境や相手の対策で、大きく変わります。