3

CryptoStream クラスを使用してテキストを暗号化します。解読したい場合は、元のテキストを取り戻すことができるようにキーと iv を知る必要がありますが、盗まれないように、それらをどこに保存すればよいでしょうか?

チート エンジンなどのツールを使用すると、他のプログラムの RAM から値を読み取ることができます。キー/iv を変数に保存すると、値も読み取ることができます。それを防ぐ方法はありますか?また、復号化されたテキストを SecureString に即座に保存する方法はありますか? では、プレーン文字列として保存されることはありませんか?

(c# に関連するセキュリティについては何も知りません。クラッシュ コースや本をお勧めできる人がいれば、私は感謝します!)

4

1 に答える 1

1

Dotfuscator http://www.preemptive.com/products/dotfuscator/overviewなどのツールを使用してソース コードを難読化できます (Visual Studio には無料バージョンが含まれていますが、文字列を暗号化するにはプロ バージョンが必要です)。これにより、悪意のあるユーザーがコードを逆コンパイルしてキー/iv を表示するのを防ぐことができます。

もう 1 つのオプションは、ここhttp://weblogs.asp.net/jongalloway/encrypting-passwords-in-a-net-app-config-fileに示すように .NET DPAPI を使用することです。このシステムを使用する場合は、key/iv が app.config ファイルに配置され、展開ビルドの前に暗号化されていることを確認する必要があります。

私の知る限り、暗号化されていない値がメモリに読み込まれるのを防ぐ方法はありません。結局のところ、プログラムはそれらの値をプロセッサに送信する必要があります。

MSDNには、安全な開発プラクティスに関する優れた速習コースがあります。

于 2014-09-25T12:59:11.930 に答える