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

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

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極(1の後ろにゼロ96個)年かかるということです。

高ビットの暗号化キーは現在のブルートフォース攻撃の影響をほとんど受けないため、ユーザー情報を収集するすべてのWebサービスは、256ビット暗号化キーを使用してデータと通信を暗号化することをお勧めします。Cloudflareは、クラス最高の TLS暗号化を使用してブルートフォース攻撃を防止し、量子コンピューティングに対する将来の保証に取り組んでいます。