web-dev-qa-db-ja.com

SHA-256 + Saltはパスワードを保存するのに安全ですか?

ユーザーがその機能を使用するために登録する必要があるWebサイトを開発しています。SHA-256+ソルト(C#のRNGCryptoServiceProviderによって提供されるランダムソルト)が安全で2017年に使用するのに十分かどうか疑問に思っていましたか?

6
Itay080

パスワードを保存する場合、ソルト処理されたSHA256ハッシュは推奨されません。これは、汎用のSHA256が高速になるように設計されているためです。高速は、ブルートフォース攻撃や辞書攻撃をはるかに効率的にするため、パスワードハッシュアルゴリズムに望まないものです。

パスワードストレージハッシュは、特定のワークロードを必要とするように設計されており、場合によっては、最小メモリ要件を必要とします。優れたパスワードストレージスキームは、シリアル化や最適化が困難になるように設計されています。

2017年に推奨されるパスワードストレージスキームはBCryptハッシュであり、代わりにPBKDF2が使用されますが、あまり考慮されていないオプションです。

より完全な回答については、sec.se 'standard answer' によるパスワードハッシュについて Thomas Pornin を参照してください。

17
Jacco

それは可能性があります-それが直面していると感じる潜在的な脅威に対するリスク評価を満たしている場合。

ただし、パスワードベースの派生関数の使用を検討することをお勧めします。これらは、パスワードの保存に最適なハッシュベースのスタイル関数です。

C#アプリケーションのPBKF#2を調べます。広く使用されているBcryptもあります(ただし、前者はネイティブなのでC#で使用します)。

これはおそらく役に立ちます: https://lockmedown.com/hash-right-implementing-pbkdf2-net/

ただし、MSDNのドキュメントで最新の情報を確認することをお勧めします。

1
ISMSDEV