ブルートフォースアタックとは?

泥棒が金庫を開けるためにあらゆる暗証番号のコンビネーションを試すように、ブルートフォースアタック(総当たり攻撃)もあらゆるコンビネーションを試みることによりデータを盗もうとします。

Share facebook icon linkedin icon twitter icon email icon

ブルートフォースアタック(総当たり攻撃)

学習目的

この記事を読み終えると、以下のことができます。

  • ブルートフォースアタックとより巧妙な攻撃を区別する
  • ブルートフォースアタックの長所と短所を定義する
  • ブルートフォースアタックから守る最良の方法について説明する

ブルートフォースアタックとは?

ブルートフォースアタック(総当たり攻撃)は手当たり次第に大量の文字列を試し機密データを解読しようとする攻撃手法です。最も一般的なブルートフォースアタックの用途は、パスワードや暗号化キーのクラッキングです(暗号化キーについては下記の詳細を参照)。ブルートフォースアタックのその他の一般的な標的はAPIキーおよびSSHログインです。ブルートフォースパスワード攻撃はしばしばWebサイトのログインページをターゲットとするスクリプトあるいはボットによって実行されます。

ブルートフォースアタックとその他のクラッキング方法の違いは、ブルートフォースアタックではスマートな戦略を使用しないという点です。ブルートフォースアタックは正しいコンビネーションが見つかるまで、あらゆる文字のコンビネーションを試し続けます。これは、泥棒が金庫を開けられるまであらゆる番号を試みることに似ています。

ブルートフォースアタックの長所と短所とは?

ブルートフォースアタックの最大の利点は、比較的簡単に実行できることです。十分な時間があり、標的に防御戦略がなければ、攻撃は常にうまくいきます。ブルートフォースアタックは、あらゆるパスワードベースのシステムおよび暗号化キーを盗むことができます。実際、ブルートフォースアタックがシステムに侵入するまでにかかる時間は、システムのセキュリティレベルを測定するための有用な指標となります。

一方、目的を達成するまでに、あらゆるコンビネーションの文字を試さなければならないため、ブルートフォースアタックは非常に時間がかかります。攻撃速度の遅さは、標的の文字列が増加するほど悪化します(文字列とは単に文字のコンビネーションのことです)。たとえば、4文字のパスワードをブルートフォースアタックで破るのは、3文字のパスワードを破るより著しく長くかかります。同様に、5文字のパスワードは4文字のパスワードより著しく長くかかります。文字数がある程度の数を超えると、このようなパスワードを破るために、無作為化されたパスワードを試すブルートフォースアタックは非現実的になります。

Brute Force Cracking Times

標的文字列が非常に長い場合、ブルートフォースアタックが無作為化されたパスワードを解読するために何日、何か月、何年、何十年とかかるかもしれません。より長いパスワードおよび暗号化キーを要求する現在の方針の結果、ブルートフォースアタックはより困難になっています。強力なパスワードおよび暗号化が利用される場合、一般的に攻撃者はソーシャルエンジニアリングや中間者攻撃のようなその他の解読方法を試みます。

ブルートフォースアタックから守る方法

認証システムを管理する開発者は、何度もログインに失敗したIPアドレスをロックしたり、パスワードをチェックするソフトウェアに遅れを組み込んだりするような対策を取ることができます。数秒の遅れさえ、ブルートフォースアタックの有効性を非常に緩和できる場合があります。

Webサービスのユーザーは、より長く複雑なパスワードを使うことで、ブルートフォースアタックへの脆弱性を減少させることができます。さらに2要素認証を有効にして、サービスごとに異なるパスワードを使用することが推奨されます。攻撃者がブルートフォースを行ってユーザーが使用する1つのサービスのパスワードを盗んだ場合、攻撃者はその他多くのポピュラーなサービスで同じログインとパスワードを再利用する恐れがあります。これはクレデンシャルスタッフィングとして知られています。

強力な暗号化キーを用いてデータを保護していないWebサービスには、パスワード、クレジットカード番号のような個人情報あるいは口座情報を入力するべきではありません。

暗号化キーとは?

暗号化キーはデータをスクランブルし、解読するために生成されたランダムなビットの文字列です。一旦データがスクランブルをかけられると、正しい暗号化キーで解読されるまで一連のランダムな文字列として現れます。パスワードと同じように、暗号化キーもブルートフォースアタックを使用して解読することができますが、今日使用される暗号化キーは、現代のコンピューターを使用しても解読に非常に長くかかるため、破れないのと同じと考えられます。

128ビット暗号化と256ビット暗号化の違いとは?

より長い暗号化キーは、短いものより指数関数的に安全性が高まります。たとえば、128ビットの暗号化キーではブルートフォースアタックは2128通りのコンビネーションを試す必要があります。256ビットの暗号化では攻撃者は2256通りの異なるコンビネーションを試みなければなりません。これは128ビットのキーより2128倍多くの計算時間がかかります(2128 = 340,282,366,920,938,463,463,374,607,431,768,211,456通りのコンビネーション)。

これらの数が意味するものは、たとえば、毎秒数兆通りのコンビネーションをチェックすることができる強力なコンピューターでも、256ビットの暗号化キーを解読するには、1000極(10の51乗)年かかるということです。

高ビットの暗号化キーは、現在のブルートフォースアタックに対しては完全に保護されるため、ユーザー情報を利用するすべてのWebサービスでデータと通信に256ビットの暗号化キーを使用する暗号化が推奨されます。Cloudflareはブルートフォースアタックを防ぐクラス内最高のTLS暗号化を使用します。また将来の量子計算にも対応しています。