What is a brute force attack?

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

学習目的

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

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

記事のリンクをコピーする

ブルートフォース攻撃とは?

ブルートフォース攻撃(総当たり攻撃)は、機密データをデコードするために使用される、トライアルアンドエラーの手法です。ブルートフォース攻撃のための最も一般的なアプリケーションは、パスワードのクラックと暗号化キーのクラックです(暗号化キーについては下記の詳細を参照)。ブルートフォース攻撃のその他の一般的な標的はAPIキーおよびSSHログインです。ブルートフォースパスワード攻撃は、多くの場合、Webサイトのログインページを標的とするスクリプトまたはボットによって実行されます。

ブルートフォース攻撃が他のクラック方法と異なるのは、ブルートフォース攻撃では知的戦略が採用されないことです。正しい組み合わせが見つかるまで、さまざまな文字の組み合わせを使用してみます。これは、ある意味、泥棒が暗証番号式の金庫に侵入するために、金庫が開くまで数字のあらゆる可能な組み合わせを試みるようなものです。

ブルートフォース攻撃の長所と短所とは?

ブルートフォース攻撃の最大の利点は、比較的簡単に実行でき、十分な時間があって標的が適切な緩和戦略を実施していない場合、常に成功するということです。世の中に存在するあらゆるパスワードベースのシステムと暗号化キーは、ブルートフォース攻撃を使用してクラックできます。実際、システムにブルートフォースで侵入するのにかかる時間は、そのシステムのセキュリティレベルを測定するための有用な指標です。

一方、ブルートフォース攻撃は、目標を達成するまでにあらゆる可能な文字の組み合わせを実行する必要がある場合もあり、非常に時間がかかります。この緩慢さは、ターゲット文字列の文字数が増えるにつれて悪化します(文字列は単なる文字の組み合わせです)。たとえば、4文字のパスワードは3文字のパスワードよりもブルートフォースにかなり長くかかり、5文字のパスワードは4文字のパスワードよりもかなり長くかかります。文字数が特定のポイントを超えると、適切にランダム化されたパスワードのブルートフォースは非現実的になります。

ブルートフォース攻撃のクラッキングに要する時間

If the target string is sufficiently long, then it could take a brute force attacker days, months, or even years to decode a properly randomized password. As a result of the current trend of requiring longer passwords and encryption keys, brute force attacks are quite a bit more difficult. When good passwords and encryption are utilized, attackers typically try other methods of code breaking such as social engineering or on-path attacks.

ブルートフォース攻撃から保護する方法

承認システムを管理する開発者は、ログインの失敗が多すぎるIPアドレスをロックアウトしたり、パスワードチェックソフトウェアに遅延を組み込むなどの手段を講じることができます。数秒でも遅延すると、ブルートフォース攻撃の効果が大幅に低下する可能性があります。

Users of web services can decrease their vulnerability to brute force attacks by choosing longer, more complex passwords. It is also recommended to enable two-factor authentication and use unique passwords for each service. If an attacker is able to brute force a user’s password for one service, that attacker may try recycling the same login and password on many other popular services. This is known as credential stuffing.

Users should also avoid entering passwords or personal information such as credit card numbers or banking information with any web service that doesn’t protect their data with strong encryption keys.

暗号化キーとは?

暗号化キーは、データにスクランブルをかけたりスクランブルを解除したりするために生成されるランダムなビット列です。データがスクランブルされると、正しい暗号化キーでスクランブルが解除されるまで、ランダムでごちゃ混ぜの文字列として表示されます。パスワードと同じように、ブルートフォース攻撃を使用して暗号化キーをクラックできますが、現在使用されている暗号化キーは、最新のコンピューターを使用してもクラックするのには長い時間がかかるため、ほぼ解読不能と見なされています。

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暗号化を使用してブルートフォース攻撃を防止し、量子コンピューティングに対する将来の保証に取り組んでいます。