Windows CryptoAPI 存储?

Windows CryptoAPI 存储?

我刚刚发现 Windows 可以将应用程序使用的证书和密钥存储在“加密存储”中。

我想知道商店的安全性如何?如果我选择高安全性,并在应用程序请求 crt 或密钥时要求输入密码才能访问商店,那么它是否加密正确?知道使用的加密是什么吗?

另一个问题是,如果我不需要密码,那么我看不出它如何提供任何安全性,因为 crt 和密钥仍然必须以纯文本形式保存在存储中,并且任何有权访问我的计算机的人都可以访问。在这种情况下,它似乎与将 crt 和密钥放在桌面上名为“crypt store”或类似名称的文件夹中一样安全。也就是说,它只是一种组织事物的方式,并没有增加任何有用的东西。

谢谢提供的信息。

答案1

默认证书存储区与计算机上任何其他系统加密文件一样安全。例如,如果有人知道您的 Windows 用户名/密码并且可以登录,他就可以毫无问题地访问证书。但是,如果有人在不知道您的 Windows 凭据的情况下访问了您的硬盘,那么他就无法访问证书存储区。因此,这比计算机上的纯文本文件要好。但是,如果您使用默认的 Windows 工具加密该文件,那么它们的安全性就非常相似:如果您忘记了密码或重新安装 Windows,其内容将永远丢失,无法恢复。

显然,由于一旦您登录,程序就必须可以访问默认存储中的证书,因此如果不使用外部硬件就不可能实现更强的安全性。

答案2

密钥(对于用户私有的 MY 密钥库)根据加密服务提供商(旧 API 或新 API)存储在(来源):

Legacy:
%APPDATA%\Microsoft\Crypto\RSA\User SID\
%APPDATA%\Microsoft\Crypto\DSS\User SID\
CNG:
%APPDATA%\Microsoft\Crypto\Keys

对于 CNG API,密钥在关键的Iso服务(并且 API 将要求服务使用它们)。

相关内容