我对我的SOA应用程序进行了wcf用户名/密码身份验证。安全模型是Message,密钥是加密RSA 4096位的x509证书。每个客户端在配置文件中都有相同的密钥
<certificate encodedValue="VeryVeryBigRsaKey />
我很好奇,例如,一个具有VeryVeryBigRsaKey的应用程序用户可以嗅探共享相同密钥(VeryVeryBigRsaKey)的其他用户的数据包。如果是,我认为这是一个非常严重的问题,我必须将安全模型更改为TransportWithMessageCredential
修改
我使用pluralsight self cert生成了我的密钥,并将其导出为带有Base 64编码的* .cer文件。并用记事本打开生成* .cer,这给了我一个rsa键(VeryVeryBigRsaKey):)
答案 0 :(得分:3)
我认为您的意思是您使用UserName凭据类型和&lt;证书&gt;用于标识服务器,以便客户端可以信任它从正确的服务器获取消息。
如果另一个用户想要嗅探包,他需要的服务器证书只能由真实服务器拥有。
因此,您的担忧是没有理由的。
答案 1 :(得分:2)
我认为您在端点标识元素中引用的配置。如果是,则表示服务的标识,客户端堆栈在与服务器通信之前将检查该标识。因此,每个客户都必须如此。
用于保护邮件流量的密钥来自客户端凭据。基于这种证书身份的恐惧是毫无根据的。
答案 2 :(得分:1)
我确定WCF中存在安全漏洞,但事实并非如此。
证书用于
a)验证服务器
b)加密客户端生成的对称密钥并将其发送到服务器
另一位客户不能闯入这个。