2

C# で記述されたアプリケーションがあります。ユーザーが System.Security.Cryptography を使用して電子メール パスワードをユーザー構成ファイルに格納する Net 4.0 を使用します。

実際のパスワードは SecureString に格納され、System.Security.Cryptography.ProtectedData.Unprotect(encrypted data, entropy, currentuser) を使用して暗号化されます。

パスワードは、送信時にのみ通常の文字列に変換されます (すぐに https セッションを経由します)

私が疑問に思っているのは、エントロピー値を同じままにする必要があるか、そうでなければパスワードを正しく復号化できないということです.

4

2 に答える 2

0

同じエントロピー値を使用する必要があります。

エントロピー値からソルトされたハッシュ テーブルを作成できます。これは、パスワードをソルトして Db に保存する方法ですか?

于 2012-04-19T22:55:49.027 に答える
-1

プロテクトで保護されており、プロテクト解除で読み取られていることを意味していると思います。

エントロピーを保護する必要はありません。それはキーではありません。Windows の DPAPI は、ユーザーのログイン資格情報を使用してキーを生成します。事実上、この場合のエントロピーは、パスワード ハッシュのソルト値のようなものです (実際には、おそらく文字通りソルトが PBKDF2 にフィードされます)。

ここで、DPAPI に問題があります。ログインすると、誰もがデータを読み取ることができます。たとえば、構成ファイルを読み取ることができれば (そしておそらくできる)、同じ呼び出しを行うことができるプログラムを作成できます。ログインしてから、値は復号化されます。これを少し緩和するために、エントロピー値の一部をプログラムにハード コードし、残りの半分を構成ファイルから読み取ることができます。何かをします。

于 2012-04-20T14:56:20.873 に答える