用語集

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

ブルートフォース攻撃は、正しい値が見つかるまですべての可能な組み合わせを系統的に試すことでパスワード、暗号化キー、またはその他のシークレットを特定しようとする暗号解析的手法です。

別名: brute force, password cracking, exhaustive search

ブルートフォース攻撃は、あらゆるシークレットへの最も単純な攻撃形態です。すべての可能性を試します。4桁のPINには10,000の組み合わせがあります。コンピューターには容易です。8文字の小文字パスワードには約2,090億の組み合わせがあります。現代のハードウェアで実行可能です。256ビットの暗号化キーには2^256の可能性があります。既知の物理法則の下で存在し得るいかなるテクノロジーでも計算上不可能です。

実際には、攻撃者がパスワードに対して純粋なブルートフォース攻撃を行うことは稀です。代わりに最適化されたバリアントを使用します。辞書攻撃(一般的なパスワードと単語を試す)、ルールベース攻撃(数字の追加や文字の置換などの一般的な変換を適用)、クレデンシャルスタッフィング(他の侵害から流出したパスワードを使用)、レインボーテーブル攻撃(事前計算されたハッシュルックアップを使用)。これらの技術は人間が選ぶパスワードの予測可能性を利用して検索空間を劇的に縮小します。

ブルートフォース攻撃への防御は複数のレベルで機能します。強力なパスワードと長い暗号化キーが網羅的な検索を非現実的にします。レートリミットが時間あたりの試行回数を制限します。アカウントロックアウトポリシーが繰り返し失敗した後のアクセスをブロックします。PBKDF2やbcryptなどのキー導出関数が各推測を計算コストの高いものにします。ソルティングが事前計算されたルックアップ攻撃を防ぎます。これらの防御が組み合わさって、ブルートフォース攻撃のコストを実際的なしきい値を超えて高めます。

Vaulted における ブルートフォース攻撃 の使われ方

Vaultedは複数のレイヤーでブルートフォース攻撃に対して防御します。AES-256-GCM暗号化キーはランダムな256ビット値であり、ブルートフォースによる復号を計算上不可能にします。パスフレーズ保護されたシークレットには、100,000回の反復を使ったPBKDF2が各パスフレーズの推測を高コストにします。サーバーサイドのレートリミット(IPあたり毎分10回の作成、30回のビュー)がAPIへの高速な自動化された試行を防ぎます。そしてビュー制限により、少数のアクセス後にシークレットが永久に削除され、繰り返し推測の窓を閉じます。