仅使用SSL进行身份验证

时间:2012-06-18 09:08:36

标签: c# .net wcf ssl wcf-security

我想创建新的WCF服务和客户端。双方将使用双向SSL进行通信。

我想仅在身份验证阶段使用SSL。在此身份验证之后,不需要加密。我是否可以将我的服务(和客户端)配置为仅使用SSL进行身份验证并保持连接未加密(性能问题)?

2 个答案:

答案 0 :(得分:1)

为什么要在身份验证后保留未加密的连接?

用户名和密码将以这种或那种方式通过网络传递,因此您应该考虑始终加密连接以避免泄露该信息。

修改 如果您使用的是证书,则必须始终对其进行加密,因为我知道您无法使用证书进行身份验证,然后返回到简单的HTTP。 WCF需要为每个请求验证客户端(如果不是那个客户端可能暂时获得证书然后删除它并使用您的WCF服务,就像什么都没发生一样,因为在您的情况下不再需要身份验证)

答案 1 :(得分:1)

如果您想使用客户端证书进行身份验证(我认为您的意思是" 2-way" SSL),您可以使用具有NULL加密的密码套件,例如: TLS_RSA_WITH_NULL_SHA

否则,如果您的身份验证方案是SSL / TLS之上的应用程序层的一部分,那么您当然应该考虑使用加密。

请注意,使用TLS_RSA_WITH_NULL_SHA仍将在握手中继续进行RSA密钥交换(即使最终没有实际使用共享加密密钥)。 SSL / TLS握手是使用SSL / TLS的计算密集程度最高的部分。实际加密不应该对性能产生影响,因此您可以将其保留下来。