Windowsencryption容器有多安全?

我正在使用每个用户的Win32encryption密钥容器(通过.Net RSACryptoServiceProvider类)来存储用于解密存储在口令pipe理器中的密码的私钥。

该私钥存储的安全性如何? 很明显,从同一个用户帐户运行的任何程序都可以访问它。 但实际上是基于用户密码encryption的关键?

我可以假设只有在用户login后才能访问私钥? 或者服务(或其他帐户)仍然可以提取密钥? 计算机pipe理员可以不知道用户的密码解压缩吗? 可以通过使用pipe理帐户重置用户密码来提取密钥吗? 如果计算机被盗取,攻击者可以访问硬盘(但不知道用户的密码),他可以提取私钥吗? 如果用户locking了会话,攻击者是否可以使用pipe理帐户/内核驱动程序从内存中提取密钥?

PS我知道“主密钥”模式,但在我的情况下是不能接受的,所以我需要以最安全的方式存储密码。

用户的私钥只能在用户登录后才能访问,并且不能简单地通过重置用户密码然后使用重置密码登录来进行访问(事实上,在重置用户密码之前,会出现用户将丢失的警告访问加密数据等)请参阅: http : //support.microsoft.com/kb/290260

但是,一旦用户登录,其他用户在具有足够权限(通常只授予管理/系统帐户)的用户进程可以访问存储的密钥,例如通过将代码注入用户进程将运行我是用户的上下文,因此能够做任何用户可以做的关键(使用它来解密,签名或导出密钥等)。

启用强大的私钥保护可以通过要求用户在使用密钥时输入该密钥的密码来缓解其中的一些问题。 即使如此,恶意代码仍然可能拦截密钥的密码。