我有一个通常使用本地系统帐户运行的Windows服务(尽管在某些安装中它可能作为特定的用户帐户)。哪里存储Windows服务的X509证书?
该服务正在使用WCF,并使用X509证书进行通信保护。
我的问题是,哪里是存储证书(和私钥)的最佳位置?
如果使用证书存储是最好的方法,我应该使用哪一个来确保只有管理员和服务可以访问私钥?
或者,一个简单的选项是将两者都作为PFX文件存储在磁盘上,并使用ACL来确保只有管理员和服务才能访问它。这种方法与使用证书存储有什么区别?
编辑 为了澄清,我正在使用C#与所有的.NET Framework 3.5的
“不可导出”标志并不真正增加安全性 - 使用像Jailbreak(www.isecpartners.com)这样的工具导出此类密钥并不重要。 – Cocowalla 2010-05-06 21:25:19
@Cocowalla谢谢你的有趣信息!这对我来说是新的,我将搜索有关此工具的更多信息,但我不相信此工具可以从智能卡或其他硬件解决方案中导出私钥。原因智能卡不适合服务器的解决方案,但其他基于硬件的证书存储可以解决问题。而且,在Windows的下一个安全修复程序之后,越狱程序无法工作。为了说明信任,我不知道至少从体系结构方面来看证书存储更好的解决方案。 – Oleg 2010-05-06 21:44:44
你说得对,Jailbreak不能从智能卡中输出。如果证书商店是最好的解决方案,我应该使用哪个商店?本地机器商店?这是如何得到保证的(也就是说,_who_可以访问私钥)? – Cocowalla 2010-05-06 21:47:44