加密 WCF 连接的其他方法
Posted
技术标签:
【中文标题】加密 WCF 连接的其他方法【英文标题】:Other ways to encrypt WCF Connections 【发布时间】:2010-09-08 05:14:56 【问题描述】:我目前正在处理一个需要在 WCF 主机之间传递加密数据的项目。据我了解,只有两种方法可以确保通过 WCF 传递的数据是安全的。
-
使用证书
使用域(或在网络上的每台计算机上使用相同的用户名和密码)
使用证书可能会很昂贵且管理起来很复杂,而且由于我们不能保证在每次部署时都有一台服务器类机器,因此域也是不可能的。如果需要更改密码,让每台机器使用相同的用户名和密码也是有问题的。
目前我们使用 OpenSSH 在主机之间建立隧道连接。框架中是否还有其他我不知道的选项?
【问题讨论】:
我也很好奇这个问题的答案; ssh隧道不足有什么原因吗? 你用的是什么绑定方式? 目前我们使用 net.tcp 绑定,但任何绑定都可以。 SSH 还不够,只是在客户端机器上进行设置很复杂 【参考方案1】:加密需要密钥。密钥通常作为证书实现。如果您拥有通信双方,则可以免费创建自己的证书,而无需从受信任的根授权处购买。
【讨论】:
【参考方案2】:这是alternative。无需 IIS 和 SSL/X509 证书即可工作。
【讨论】:
【参考方案3】:如果您使用的是 http 端点,则可以使用安全传输,例如 https。
【讨论】:
【参考方案4】:对您放置在 WCF 容器中的数据使用传统加密。可能类似于以下内容:
http://www.obviex.com/samples/EncryptionWithSalt.aspx
【讨论】:
我们考虑过这一点,但为了保持函数的强类型化,它必须在低得多的级别上发生。【参考方案5】:最便宜的方法可能是运行您自己的证书颁发机构。这意味着您可以完全控制证书,但您不必为外部认证付费。如果您适当地自动执行此操作,您可以为您网络上的每台机器提供一个加密身份,并使用您的本地认证将所有内容联系在一起。
【讨论】:
我不会说这是最便宜的方法。我们确实考虑到了这一点,但设置和维护需要花费一定的精力。以上是关于加密 WCF 连接的其他方法的主要内容,如果未能解决你的问题,请参考以下文章
wcf中实用net.tcp绑定,在本机可以连接,但是其他机器上就不可以?
连接WCF报EntityFramework.SqlServer 错误的解决方法