12

リンクインのパスワード ハッシュ リークの後、私はパスワード ハッシュを調べてきました。PBKDF2 を使用する Django 1.4 を使用しています。これは、以前の SHA1 からのステップアップです。

しかし、私はどれだけ簡単にそれを総当たりできるか興味があります。私はパスワードの複雑さのルールを見ていて、(たとえば) 8 つの長さの小文字の ASCII 文字を処理するのにどのくらいの時間がかかるか疑問に思っています。

LinkedIn のパスワード ハッシュをクラックするためのこのガイドでは、GPU で 1 秒あたり 4 億 3000 万の sha1 ハッシュを行っている人がいます。http://erratasec.blogspot.ie/2012/06/linkedin-vs-password-cracking.html PBKDF2 ではどのような速度が得られますか?

ブルート フォース PBKDF2 をどのくらいの速度で実行できるかについて、大まかな/封筒の裏/球場の数字を持っている人はいますか?

4

5 に答える 5

10

ナプキンの計算を行う 2 月のagilebits での記事があります。要約版:

大ざっぱな数字として、PBKDF2 を 10,000 回反復すると、非常にハイエンドな消費者向けシステムのパスワードをテストするのに数十ミリ秒または数百ミリ秒かかると言えます。私たちが PBKDF2 で行っていることは、1 秒間に 100 万回のテストを数百回に減らすことです。これは、複数のコアと複数の GPU を利用する特殊なソフトウェアを考慮に入れています。

ベースラインとして GPU で 1 秒あたり 4 億 3000 万の SHA-1 ハッシュをベンチマークする erratasec の記事を参考にしてください。agilebits の記事では、1 万回の反復で PBKDF2 が 1 秒あたり約 10 万回のテストになることを示唆する指標を示しています。

科学的ではありませんが、私たちを球場に連れて行きます...

于 2012-07-02T21:47:50.950 に答える
6

ビットコイン マイニングで使用されるような特殊なハードウェアは、1 秒あたり 500 億回以上のハッシュを実行できます (2013 年初めの時点で。ハードウェアが高速化するにつれて、これは移動するターゲットです)。

PBKDF2 を 1,000 回反復すると、攻撃は 1 秒あたり 500 億から 5000 万に減少します。10,000 回の反復は 1 秒あたり 500 万回になります。

ただし、一般的な Web サーバーはそれほど高速ではありません。あなたにとってはずっと遅くなるでしょう。独自の運用サーバーでいくつかのテストを行う必要があり、10,000 回の反復では遅すぎることがわかる場合があります。

したがって、実際には PBKDF2 がブルート フォースされる速さではなく、サーバーが PBKDF2 パスワードを検証できる速さについてです。必要な時間 (0.5 秒? 10 分の 1 秒? 100 分の 1 秒?) を決定し、それに合わせて PBKDF2 ラウンドの数を調整する必要があります。

また、顧客が使用するパスワードの強度も考慮してください。それらすべてが優れたパスワードを持っている場合、どのハッシュ システムを使用しても問題ありません。彼ら全員がひどいパスワードを使用している場合、PBKDF2 はそれらを保護するのに十分ではありません - Apple が iPhone で使用するハードウェアソルト付きハッシュのように、4 桁の数字を少なくともいくつかの数字を持つものに変換しようとするなど、より風変わりなものを取得する必要があります。セキュリティ (基本的に、すべてのハッシュを専用のハードウェア チップで実行するように強制します。これは意図的に低速です。データを他のハードウェアに移動すると、復号化できなくなります)。

パスワードが辞書に載っていないと仮定すると (ほとんどのパスワードは辞書に載っています)、パスワードの強度は、アルファベットの可能な文字数に各文字の 1 ハイブを掛けることによって計算されます。したがって、パスワードに文字 (26 文字のアルファベット) と数字 (さらに 10 文字) がある場合、36 文字のアルファベットがあり、6 文字の長さの場合はそれ自体を 6 回掛けます。

したがって、6 桁の英数字のパスワードは 36*36*36*36*36*36、または必要に応じて 36^6 です。これにより、約 21 億の可能なパスワードが得られます... 通常、ハッカーは実際のパスワードを途中で見つけると想定しているため、10 億と呼びます。

PBKDF2 を使用していて、反復回数が 1,000 回の場合、特殊なハードウェアを使用するハッカーは、約 20 秒で 10 億個のパスワードを推測します。それはあまり良いセキュリティではありません。

PBKDF2 の回数を増やす (Web サイトの速度が低下します) か、ユーザーに適切なパスワードを設定するよう説得することで、セキュリティを向上させることができます。6 桁から 7 桁に変更するか、大文字や記号を追加するだけで、セキュリティが大幅に向上します。

計算には Wolfram Alpha が便利です((36 ^ 6) / 50 million) seconds。36 はアルファベットのサイズ、6 はパスワードの長さ、5000 万はハッカーが使用できる 1 秒あたりの推測回数です (5000 万は PBKDF2 を狙う深刻な攻撃者です) 1,000ラウンドで)。

データベースにはいくつのパスワードがありますか? 個々のパスワードを解読するのに 20 秒かかるとしたら、それは 30 日分の数学か、それとも 30 年か? それはあなたが何人の顧客を持っているかによって異なります。

于 2013-04-29T13:00:23.650 に答える
3

bcrypt、scrypt、および PBKDF2/PKCS#5/RFC 2898 はすべて、さまざまな反復回数をサポートしていることに注意してください。本質的に「速い」または「遅い」ものはありません。より多くの RAM を必要とするものもありますが (PBKDF2 はあまり RAM を必要としませ)、それはそれくらいです。

具体的な PBKDF2 の繰り返しに関する限り、1 つの人気のある GPU ベースのクラッキング プログラムは、キット化された最新のデスクトップ + 8 つの GPU で、WPA2 に対して 1 秒あたり 100 万回の試行で処理できます。WPA2 は基本的に PBKDF2 (HMAC-SHA1、パスフレーズ、ssid、4096、256) であるため、1 台のマシンで 1 秒あたり 40 億回を超える HMAC-SHA1 PBKDF2 反復をテストできることがわかります。もちろん、そのようなマシンが 10 台あれば、1 秒あたり 400 億回以上の反復をテストすることになります。

OWASP パスワード チート シート ( https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet ) は、2012 年に少なくとも 64,000 回の反復を推奨しており、2 年ごとに倍増し、2013 年には 90,510 回の反復になります。

于 2013-01-31T04:05:35.033 に答える