一般に、よりエキゾチックな攻撃について心配する前に、脅威モデルを定義する必要があります。この場合: 誰かがコンピュータをシャットダウンし、ハードドライブのフォレンジック分析を行うのではないかと心配していますか? アプリケーション メモリもスワップ アウトできるため、1 つのプロセスがメモリ内にアプリケーション メモリを持っているという単純な事実によって、そのプロセスがスワップ ファイルで終了する可能性があります。冬眠はどうですか?ハイバネーション中に、メモリの内容全体がハードディスクに書き込まれます (SecureString と、おそらく暗号化キーも含まれます!)。攻撃者が実行中のシステムにアクセスし、アプリケーションのメモリを検索できる場合はどうなるでしょうか?
一般に、クライアント側のセキュリティは非常に複雑で、専用のハードウェア (TPM チップなど) を使用しない限り、正しく行うことはほとんど不可能です。2つの解決策は次のとおりです。
- 2 つの文字列が等しいかどうかのみをテストする必要がある場合 (つまり、この文字列が前に持っていたものと同じかどうか)、その (ソルト化された) ハッシュ値のみを保存します。
- 2 回目に必要なときにユーザーに情報を再入力させる (あまり便利ではありませんが、セキュリティと利便性は相反するものです)