我目前正在开发一个需要在 WCF 主机之间传递加密数据的项目。据我了解,只有两种方法可以确保通过 WCF 传递的数据是安全的。
- 使用证书
- 使用域(或在网络上的每台机器上使用相同的用户名和密码)
使用证书可能很昂贵且管理起来很复杂,因为我们不能保证在每次部署时都有一台服务器类机器,所以域也是不可能的。如果需要更改密码,让每台机器使用相同的用户名和密码也是有问题的。
目前我们使用 OpenSSH 在主机之间建立隧道连接。框架中是否还有另一个我不知道的选项?
加密需要密钥。密钥通常作为证书实现。如果您拥有通信的双方,则可以免费创建自己的证书,而无需从受信任的根授权处购买证书。
这是一个替代方案。无需 IIS 和 SSL/X509 证书即可工作。
最便宜的方法可能是运行您自己的证书颁发机构。这意味着您可以完全控制证书,但您不必为外部认证付费。如果你适当地自动化这个,你可以给你网络上的每台机器一个加密身份,并使用你的本地认证将所有东西联系在一起。
如果您使用的是 http 端点,则可以使用诸如 https 之类的安全传输。
对放置在 WCF 容器中的数据使用传统加密。可能类似于以下内容: