我想在Windows上安全地存储共享密钥,但是让这个密钥可以通过在潜在不同用户帐户下运行的应用程序访问。在OSX上,解决方案是使用合适的ACL将密钥放入系统密钥链中,以便将密钥的访问限制为仅需要使用该密钥的各种应用程序。Windows 7相当于OS X系统钥匙串
在Windows上,安全存储(CryptProtectData()
和CryptUnprotectData()
)允许我存储为特定用户加密的密钥,但似乎不允许将密钥限制为特定进程。此外,使用CryptProttectData
无法保护数据以供不同用户访问。 (1)使用CryptProtectData()
安全地存储密钥数据;(2)通过WCF端点公开密钥数据,处理我的服务中的认证/授权。我的唯一选择是Windows服务。这看起来很重(并且容易出错)。这是我唯一的选择吗?