総当たり攻撃(ブルートフォース攻撃)
暗証番号を忘れた自転車のダイヤル錠を開けるために、0000から9999までを一つずつ全部試していくようなものです。
定義 総当たり攻撃(ブルートフォース攻撃)とは、暗証番号やパスワードを割り出すために、考えられるすべての文字の組み合わせを最初から最後まで手当たり次第に入力していくサイバー攻撃の手法です。コンピューターの圧倒的な計算スピードを使い、正解が出るまで無理やり扉を叩き続ける仕組みです。
自転車のダイヤル錠を力技で回し続ける仕組み
4桁の数字でロックされた自転車の鍵の番号を忘れてしまったとき、一番シンプルな解決策は何でしょうか? それは「0000」から始めて「0001」「0002」と、カチッと開くまで順番にすべての番号を試していく方法です。
人間が手作業でダイヤルを回すと、1万通りの組み合わせを試すのに何日もかかってしまいます。しかし、コンピュータープログラムなら1秒間に数千万回以上の番号を自動で入力できます。
ハッカーは、こうした強力なコンピューターの計算能力を使って、私たちが設定したパスワードを手当たり次第に入力してきます。数学的にあり得るすべてのパターンを漏れなく試すため、時間さえ十分にあれば必ず正解にたどり着く、シンプルながら確実な手法なのです。
もう少し詳しく:なぜパスワードの「長さ」にこだわるのか?
正確に言うと、総当たり攻撃の成否は「組み合わせのパターン数」と「コンピューターの計算スピード」の勝負にすぎません。パスワードが4桁の数字なら、組み合わせはたった1万通りしかないため、コンピューターなら1秒もかからずに突破してしまいます。
しかし、そこにアルファベットの大文字・小文字や記号を混ぜ、長さを12文字以上に伸ばすと状況は一変します。可能な組み合わせの数が何千兆通り以上へと爆発的に跳ね上がるからです。
こうなると、どんなに優れたスーパーコンピューターを使っても、すべてのパターンを試し終えるのに数百〜数万年もの時間がかかります。各Webサイトで複雑な記号を混ぜて長いパスワードを作るよう求められる理由はまさにここにあります。攻撃者がコンピューターをフル稼働させても、人間の寿命のうちには解けないように「時間を稼ぐ盾」を作っているのです。
Webサービスや端末はどうやって防いでいるのか?
いくら複雑なパスワードでも、無制限に入力を許可してしまえばいつかは破られるリスクがあります。そのため、Webサイトやスマートフォンには総当たり攻撃を食い止めるための様々な安全装置が備わっています。
スマホのロック画面のように、パスワードを5回連続で間違えると「30秒間入力を制限」したり、アカウントを一時的にロックしたりする機能がその代表例です。コンピューターが1秒間に何百万回も試そうとしても、1回入力するごとに待ち時間を強制されれば、攻撃自体が無力化されます。
また、歪んだ文字を読ませて入力させる「画像認証(CAPTCHA)」や、スマートフォンに届く認証コードをもう一度入力する「二段階認証」も、プログラムによる自動入力を防ぐ強力な防御壁となります。
🤔 よくある誤解
総当たり攻撃は、極めて高度で洗練されたハッキング技術である。
技術的には最も単純な力技の攻撃です。システムの隠れた脆弱性を突くのではなく、コンピューターの計算スピードを頼りに、単なる当てずっぽうの入力をひたすら繰り返す手法です。
🧺 日常で出会う場面
総当たり攻撃は正解が出るまですべての文字の組み合わせを試す攻撃であり、長いパスワードの設定や二段階認証の導入によって防ぐことができます。