3

Rfc2898DeriveBytes に基づくパスワード ハッシュ メカニズムがあります (ここで詳しく説明されているコードに基づく: http://crackstation.net/hashing-security.htm )。内部的には、このクラスは SHA1 を使用します。CrackStation リンクは SHA1 が「古い」ことを示していますが、Rfc2898DeriveBytes は内部的に使用していますが、Rfc2898DeriveBytes は依然として適切なメカニズムであると述べています。

私の顧客のセキュリティ部門は、「SHA1 が侵害された」(具体的には、インターネット経由で送信するドキュメントに署名する目的で、特定の状況下で SHA1 が無効になったということを聞いています。この「脆弱性」という事実" はパスワード ハッシュには適用されず、セキュリティ部門にとって重要ではありません)。その結果、パスワード ハッシュ メカニズムを変更して SHA2 を採用するよう要求されました。

現在、.Net フレームワークには、内部で SHA2 (または SHA256 など) を使用する Rfc2898DeriveBytes に相当するものはありません。リフレクションを使用してこのクラスのソース コードを取得し、それを変更できることはわかっていますが、暗号化の最初のルールは「独自のものを作成しないこと」であると常に言われてきました。

これは主に私の顧客による政治的な要求であり、技術的な要求ではなく、Rfc2898DeriveBytes を実行する前に SHA2 ハッシュを介してパスワードを実行することで簡単に満たすことができます。しかし、私は暗号化について十分な知識がなく、これが悪い可能性があるかどうかを判断できません。実際には、客観的に安全性の低いパスワード ハッシュになる可能性があります。

SHA2 を使用する Rfc2898DeriveBytes と同等のクラスを知っている人はいますか? または、Rfc2898DeriveBytes の前に SHA2 ハッシュを介してパスワードを実行することが完全に安全かどうかを誰かが知っていますか?

4

1 に答える 1

0

「 SecurityDriven.NET」ブックから無料のコード サンプルをダウンロードします。HMACファクトリを取るPBKDF2クラスを見つけます。使用可能なファクトリには、SHA2 ( 256384512 ) が含まれます。

事前にSHA2ハッシュを介してパスワードを実行することは、これがあなたがしていることの最も弱い部分である可能性が低い場合でも、正しいことではありません(パスワードエントロピーを失うことになりますRfc2898DeriveBytes)

于 2014-10-10T02:34:27.473 に答える