私は、パスワードマネージャーに保存されたパスワードを解読するために使用される秘密鍵を格納するために、ユーザーごとのWin32暗号化キーコンテナ(.Net RSACryptoServiceProvider
経由)を使用しています。Windowsの暗号化コンテナはどのくらい安全ですか?
秘密鍵はどの程度安全に保存されていますか?明らかに、同じユーザーアカウントから実行されているすべてのプログラムがアクセスできます。しかし、キーは実際にはユーザーのパスワードに基づいて暗号化されていますか?
ユーザーがログオンすると、秘密鍵はのみにアクセスできますか?または、サービス(または別のアカウント)でもキーを抽出できますか?コンピュータの管理者は、ユーザーのパスワードがそれを抽出することを知らないことができますか?管理者アカウントを使用してユーザーのパスワードをリセットしてキーを抽出できますか?コンピュータが盗まれ、攻撃者がハードディスクにアクセスできますが(ユーザーのパスワードがわからない場合)、秘密鍵を抽出できますか?ユーザーがセッションをロックした場合、攻撃者は管理アカウント/カーネルドライバを使用してメモリからキーを抽出できますか?
P.S.私は「マスターキー」のパターンについて知っていますが、私の場合は受け入れられませんので、できる限り安全な方法でパスワードを保管する必要があります。
パスワードを暗号化したいと思われるときに、どのように鍵を暗号化しているのか分かりにくいです。パスワードを解読する場所でRSA.ExportParameters(true)を呼び出すと、秘密鍵を保護するために物理的なセキュリティが必要になります。代わりにパスワードのハッシュを保存して比較することでログオンを実装するだけです。 –