0

いくつの主要な Web サイトがハッキングされ、パスワードのデータベースが解読されているかを考えると、認証を保護する最善の方法は何ですか?

基本的に、ハッキングされた場合にハッカーがユーザーのパスワードを取得できないように、サイトの一部へのアクセスをメンバーに保護する方法に興味があります。

無敵というものはありませんが、少なくともクラッキングを非常に困難にします。

4

2 に答える 2

5

http://codahale.com/how-to-safely-store-a-password/

使用するbcrypt

bcryptを使用します。bcryptを使用します。bcryptを使用します。bcryptを使用します。bcryptを使用します。bcryptを使用します。bcryptを使用します。bcryptを使用します。bcryptを使用します。

なぜ{ 、、、、、、MD5など} ?SHA1SHA256SHA512SHA-3

これらはすべて、大量のデータのダイジェストをできるだけ短時間で計算するように設計された汎用ハッシュ関数です。これは、データの整合性を確保するのに優れていることと、パスワードを保存するのにまったく役に立たないことを意味します。

最新のサーバーは、毎秒約 330MB の MD5 ハッシュを計算できます 。ユーザーが小文字、英数字、および 6 文字の長さのパスワードを使用している場合、そのサイズの可能なすべてのパスワードを40 秒で試すことができます。

そして、それは何も投資せずにです。

約 2,000 米ドルを費やして 1 週間か 2 週間 CUDAを手に入れる気があるなら 、1 秒間に約 7 億のパスワードを試すことができる独自の小さなスーパーコンピューター クラスターを組み立てることができます。そして、その速度では、これらのパスワードを 1 秒あたり 1 回以上の速度でクラックすることになります

塩はあなたを助けません

ソルトは、辞書攻撃やブルート フォース攻撃を防ぐのには役に立たないことに注意することが重要です。巨大な塩、または多くの塩、または手で収穫された日陰で育った有機ヒマラヤピンクソルトを使用できます。データベースのハッシュとソルトがあれば、攻撃者が候補パスワードを試す速度には影響しません。

塩であろうとなかろうと、速度を重視して設計された汎用ハッシュ関数を使用している場合は、非常に効果的です。

bcryptこれらの問題を解決します

どのように?基本的に、それは地獄のように遅いです。これは、Blowfish 暗号化アルゴリズムのキーイング スケジュールのバリアントを使用し、ワーク ファクターを導入して、ハッシュ関数のコストを決定できるようにします。このため、bcryptムーアの法則についていくことができます。コンピューターが高速になるにつれて、作業係数を増やすことができ、ハッシュは遅くなります。

bcryptたとえば、よりどれくらい遅いMD5ですか?仕事の要因によります。作業係数 12 を使用すると、ラップトップで約 0.3 秒でbcryptパスワードがハッシュされます。一方、1 マイクロ秒未満で済みます。yaaaMD5

つまり、5 桁程度の桁数です。40 秒ごとにパスワードをクラックする代わりに、12 年ごとにクラックすることになります。パスワードにはそのようなセキュリティは必要ないかもしれませんし、より高速な比較アルゴリズムが必要かもしれませんが、bcrypt速度とセキュリティのバランスを選択できます。これを使って。

于 2012-09-25T00:28:14.823 に答える
0

適切なパスワード処理 (前述の bcrypt など) に加えて、専用のデバイス/マシンでパスワードのハッシュを行う必要があります。

このパスワードハッシュ用の「デバイス」は、いわゆる「ローカルパラメーター」を含む別のシステムであり、これはハッシュ関数への追加の入力です (たとえば、128 ビットの強力な乱数)。このローカル パラメーターは、ホスト システム (ユーザー認証を行うアプリ) によって読み取れないようにする必要があります。

このような専用マシンをパスワード ハッシュに使用すると、パスワード データベースやアプリが危険にさらされた場合に、追加のセキュリティ レイヤーが得られます。

于 2012-09-25T06:23:04.657 に答える