我正在使用每用户 Win32 加密密钥容器(通过 .NetRSACryptoServiceProvider
类)来存储用于在密码管理器中解密存储密码的私钥。
该私钥存储的安全性如何?显然,任何从同一用户帐户运行的程序都可以访问它。但是密钥实际上是根据用户的密码加密的吗?
我可以假设只有在用户登录后才能访问私钥吗?或者服务(或另一个帐户)仍然可以提取密钥吗?不知道用户密码的电脑管理员可以解压吗?可以通过使用管理帐户重置用户密码来提取密钥吗?如果计算机被盗,攻击者可以访问硬盘(但不知道用户密码),他能提取私钥吗?如果用户已锁定会话,攻击者能否使用管理帐户/内核驱动程序从内存中提取密钥?
PS我知道“万能钥匙”模式,但在我的情况下这是不可接受的,所以我需要以最安全的方式存储密码。