14

私は C# を使用して、自分のパスワードを保存し、表示/編集するためにそれらを取得するために使用できる小さなプログラムを自分で作成しています。

パスワードは暗号化された形式でディスクに保存されますが、フォーム上で表示/編集するためにメモリに読み込まれると、パスワードは暗号化されません。

SecureString暗号化されていないパスワードをメモリに保持することは、セキュリティ上の大きな問題であることを知ったので、クラスに出くわしました。

SecureStringクラスを使用するよりもこれを行うためのより安全な方法はありますか、それともSecureStringその名前に恥じませんか?

4

4 に答える 4

16

SecureStringテキストを暗号化してメモリに保持し、不要になったらすぐに破棄できます。問題は、それを表示したり、他のほとんどの方法で使用したりする場合、通常の文字列に変換する必要があることです。これは安全ではありません。

また、私はあまり信頼しません。システムは復号化キーなしで復号化できます。つまり、特定のハッカーが同じことを実行できる可能性が高いことを意味します。ハッカーがあなたのコンピュータを乗っ取ったとき、あなたは何も確信が持てず、おそらく彼は適切なアルゴリズムと適切な鍵を使って暗号化されていないものなら何でもアクセスできるでしょう.

于 2011-06-26T12:26:30.190 に答える
1

SecureString はまさにその名前の通りで、ご想像のとおりです。文字列も暗号化されてメモリに保存されるため、正しい方法です。
ここを参照してください

機密を保持する必要があるテキストを表します。テキストは使用時にプライバシー保護のために暗号化され、不要になるとコンピューターのメモリから削除されます。このクラスは継承できません。

于 2011-06-26T12:12:38.963 に答える