web-dev-qa-db-ja.com

なぜキーではなくパスワードを直接総当たりするのですか?

セキュリティstackexchangeに関する別の質問に対するこの回答 非常に評判の高いユーザーによる、ファイル暗号化にOpenSSLよりもGnuPGを好む理由を説明しています。私が理解していることから、それは次のように要約できます:

OpenSSLを使用する場合、使用される暗号化キーは、MD5(password + salt)から1回の反復で導出されます。したがって、攻撃者がパスワードを総当たりして暗号化キーを取得するのは簡単です。

私の質問は次のとおりです。なぜ攻撃者はキーではなくパスワードを直接総当たりしたいのですか?たとえば、キーが128ビットで、パスワードが16文字(128ビット)の場合、私の(パスワード+塩)はすでに暗号化キーよりも長くなっています。これは、実際にはパスワードの代わりに暗号化キーを直接総当たりするほうが簡単であり、キー導出関数の反復回数は無関係であることを意味します。

しかし、上記の回答は他の多くの同様の質問への参照としてリンクされていることが多く、評判の高いユーザーからの回答です。だから私の推論のどこに欠陥がありますか?

5
Gradient

キーのブルートフォースとパスワードのブルートフォース

キーをブルートフォースで

キーを直接総当たりするためには、キーを推測し続け、最終的にファイルが適切に復号化されるまで、それを使用して暗号化されたファイルの復号化を試みる必要があります。追加情報なしで、私は2を試す必要があります128 ランダムなキー値の可能性があります。

平均して2を行う必要があります128/2 = 2127 推測。ちなみにこれは膨大な数です!物理の削減:1つARMアセンブリ命令(ADD、SUB、XORなど))は約300 pJを消費します〜= 3.0x10-10 低電力組み込みデバイスの1命令あたりのジュール。太陽には約1.2x10が含まれています44 核燃料のジュール。キーを推測し、ファイルを単一のARM=命令(バナナであり、妥当なサイズのファイルに対する何百万もの命令を参照している)で復号化してみてください) -force攻撃には 2x10を消費する必要があります15 !うん、2127大規模な数です。その総当たり攻撃で頑張ってください。電気料金が良いことを願っています。

パスワードをブルートファース

パスワードの長さは、16文字のパスワードが8文字のパスワードよりも多くの組み合わせを推測できる場合にのみ関連します。 16文字のパスワードには128ビットのディスク領域が必要な場合がありますが、128ビットのセキュリティではありません。初心者には 95印刷可能ASCII文字 しかないため、キーボード文字のみを使用するパスワード(アクセント、絵文字など)はせいぜい、 95を見ている16 〜= 2105 推測できる16文字のパスワード。その上、インターネット上のアカウントの30%に、上位10,000個のパスワード[ source ]のパスワードがあることがわかっているため、10,000名の場合、長さは実際には関係ありません。

それを一緒に入れて

パスワードをブルートフォースにすると、これがランダムなインターネットユーザーである場合(つまり、平均的なインターネットユーザーが行う方法でパスワードを作成している場合)、最初の10,000回の推測で30%の確率で解読されます。 (余分な知識を使用せずに)キーを直接ブルートフォースにすると、0.0000000000000000000000000000000003%(3x10-35)最初の10,000回の推測でそれをクラックする可能性。

基本的に、人間の脳は愚かで予測可能であるため、パスワードはキーよりも脆弱です。パスワードがランダムジェネレーターからのものである場合、これは完全に別の話です。なぜなら、パスワードは実際にはパスワードではなく、鍵のようなものだからです。

9
Mike Ounsworth