我正在为分布式应用程序设计身份验证和安全性。
要求是: -
1)两个分布式组件A和B. A和B将始终安装在Windows环境中。 A和B可以安装在两个不相互信任的Windows域中。
2)A和B使用WCF进行通信。
A和B应该能够相互验证并安全地交换数据。
有什么方法可以做到这一点?
可能的解决方案是: -
a)实施CA,向A和B颁发证书。这两个证书都由rootCA签名。但是这个解决方案涉及我们实施一个成本太高的CA
b)在A上实施密钥生成服务。
这看起来像是: -
CreateSymmetricKey(string userName,string password);
A和B将拥有自签名证书。 A和B之间交换的数据将使用自签名证书进行保护。 使用userName和密码完成身份验证。
这将生成对称密钥。 A和B都将使用本地安全存储来存储此密钥。
此对称密钥将用于A和B之间通信的加密和身份验证。
你能否提出其他可行的方法?
谢谢, 的Vivek
答案 0 :(得分:1)
CA并不昂贵。 Windows证书服务器内置于服务器操作系统中,可以configured生成Internet托管的CRL,或者,您可以使用makecert到create a root certificate,然后从中生成X509证书root,然后生成一个CRL,您可以手动将其加载到托管服务器上的证书存储区中。
您需要任何一种类型的CRL才能让WCF满意。