PBKDF2 アルゴリズムは、SimpleMembership
プロバイダー (ユニバーサル プロバイダー) 2.0 で使用されます。非 FIPS 準拠アルゴリズムですか? 正しい解決策を確認してください。
1 に答える
PBKDF2 アルゴリズムは simplemembership プロバイダー (ユニバーサル プロバイダー) で使用されます。2.0 は非 FIPS 準拠アルゴリズムです。
これを正しく読んでいれば、ここに 3 つの質問があります。まず、 の実装の詳細について質問していますSimpleMembership
。PBKDF2
次に、 FIPS で検証された暗号化での使用が承認されているかどうかを尋ねています。SimpleMembership
3 番目に、の PBKDF の使用が承認されているかどうかを尋ねています。
初め
SimpleMembership
非標準のPBKDFを使用していることを思い出すようです。Rfc2898DeriveBytes
で使用する必要がありますSystem.Security.Cryptography
。
一般的に言えば、FIPS 承認のアルゴリズムと検証済みの実装は にあり、管理さSystem.Security.Cryptography
れていません。実際、KB 811833 によると、「システムの暗号化: 暗号化、ハッシュ、および署名に FIPS 準拠のアルゴリズムを使用する」セキュリティ設定は、Windows XP およびそれ以降のバージョンの Windows で次のように影響します。
Microsoft ASP.NET などの Microsoft .NET Framework アプリケーションでは、NIST によって FIPS 140 準拠であると認定されたアルゴリズム実装のみを使用できます。具体的には、インスタンス化できる暗号化アルゴリズム クラスは、FIPS 準拠のアルゴリズムを実装するものだけです。これらのクラスの名前は、「CryptoServiceProvider」または「Cng」で終わります。名前が「Managed」で終わるクラスなど、他の暗号化アルゴリズム クラスのインスタンスを作成しようとすると、InvalidOperationException 例外が発生します。
2番
PBKDF2
承認されたハッシュを使用している場合、使用が承認されます。HMAC/SHA-1 を使用するためRfc2898DeriveBytes
、使用できません。NIST SP800-56 と SP800-57 は、衝突耐性のためのハッシュの選択について非常に明確です。
ただし、ユース ケースは少し異なります。SHA-1 は Pseudo Random Function (PRF) として使用されています。しかし、SHA-1 を PRF として使用できる例外が 1 つだけあり、それは TLS にあります。例外は、SP800-108 (IIRC) の脚注です。
三番
SimpleMembership
の PBKDF は使用が承認されていません。