2017-11-16 14 views
0

現在のアプリケーションでパスワード暗号化に使用されるアルゴリズムを探しています。私は、このリンクパスワードのハッシングアルゴリズム

https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet

Argon2 [* 7]パスワードハッシュの競争の勝者で、新しいアプリケーションのための最初の選択肢として考慮されるべきで出くわしました。 PBKDF2 [* 4]多くのプラットフォームでのFIPS認証またはエンタープライズサポートが必要な場合。 scrypt [* 5]ハードウェアアクセラレーション攻撃のいずれかまたはすべてに抵抗する必要がありますが、サポートはしていません。 bcryptここで、PBKDF2またはscryptのサポートは利用できません。

私はこれらの以前のプロジェクトを使用していません。私はSHa-256について知っています。しかし、私はどちらがパスワードを暗号化するための最良のアルゴリズムであるかを知りたい。計算、メモリの使用、戻りハッシュ値の長さ、salt値を使用する必要があるかどうかを検討してください。

彼らはまた、アルゴン2を示唆していますが、これは比較的新しいものです。それを使うことはできますか?それはお勧めですか?

これらについての任意の提案。

+0

SHA-256で十分ではありませんか? –

+0

**いいえSHA-256は十分ではありません**、それはブルートフォース攻撃が実行可能であることを意味します。必要なのは、一般的な約100msのCPU時間とリソースを消費するパスワードハッシング方式です.HPA-256は、一般的なパスワードで約1秒で実行されます。 – zaph

答えて

0

ハッシュ関数を使用するだけでパスワードベリファイアを保存するだけでは不十分で、単に塩を追加するだけでセキュリティを向上させることはほとんどありません。

代わりに、約100msの間、ランダムな塩でHMACを繰り返し、ハッシュで塩を保存します。

いっそようPBKDF2Rfc2898DeriveBytesArgon2password_hashBcryptとしての機能又は類似の機能を使用します。

重要な点は、攻撃者が無差別にパスワードを見つけるのにかなりの時間を費やすことです。

Rfc2898とRfc2898DeriveBytesとしても知られているPBKDF2は、現在のNISTで承認されている方法です。Argon2はさらに優れた解決策ですが、広く利用できるわけではありません。

+0

ありがとうzaph.私はgitでargon2コードを参照してください..私はそれを使用することができますか、あなたはC#でPBKDF2の他の実装を知っている場合私は – Deepak

+0

PBKDF2 Rfc2898またはRfc2898DeriveBytes、命名が難しい。 – zaph

+0

NuGetで提案されているアルゴリズムをチェックすることで、頭痛を軽減することもできます。そこからインストールできるBcrypt、Scrypt、およびPBKDF2用の専用パッケージがあります。 – user8675309

関連する問題