WCF的安全传输主要涉及认证、消息一致性和机密性三个主题。WCF采用两种不同的机制来解决这三个涉及传输安全的问题,一般将它们成为不同的安全模式,即Transport安全模式和Message安全模式。
概述:
WCF的安全传输主要涉及认证、消息一致性和机密性三个主题。WCF采用两种不同的机制来解决这三个涉及传输安全的问题,一般将它们成为不同的安全模式,即Transport安全模式和Message安全模式。
一、Transport安全模式
Transport安全模式利用基于传输层协议的安全机制解决传输安全涉及的三个问题(认证、消息一致性和机密性)。
TLS/SSL是实现Transport安全最常用的方式
1.TLS、SSL、HTTPS
(1)SSL->SSL1.0->SSL2.0->SSL3.0->TLS1.0
(2)TLS/SSL本身和具体的网络传输协议无关,既可以用于HTTP,也可以用于TCP。
(3)HTTPS将HTTP和TLS/SSL两者结合起来。对于WCF来说,所有基于HTTP协议的绑定采用的Transport安全都是通过HTTPS来实现的。
(4)NetTcpBinding也提供了对TLS/SSL的支持,一般将TLS/SSL在TCP上的应用称为SSL Over TCP。
2.TLS/SSL解决的问题:
- 客户端对服务端的验证;
- 通过对传输层传输的数据段(Segment)进行加密确保信息的机密性
3.TLS/SSL采用的协议是对称加密
客户端和服务端具有一个只有他们批次知晓的会话密钥,所有的请求和回复消息均通过该会话密钥进行加密和解密
选择对称加密的原因:
(1)对称加密/解密比非对称加密/解密需要更少的计算,所以具有更好的性能;
(2)在客户端不提供自身证书的情况下,非对称的加密方式只能确保客户端向服务端请求消息的机密性,而不能保证服务端向客户端回复消息的机密性。
2.Tansport安全模式的优缺点
优点:高性能,虽然TLS/SSL在正式进行消息交换之前需要通过协商建立一个安全的连接,但是这个协商过程完全通过传输层协议来完成,而且可以利用网络适配器的硬件加速。
缺点:
1.依赖于具体的传输协议
2.只能提供点对点的安全传输保障,即客户端直接连接服务器的场景。如果在客户端与服务端的网络需要一些用于消息路由的中间节点,Tansport安全模式则没有了用武之地。
3.在传输层(而不是应用层)解决对客户端的认证。这就决定了可供选择的认证方式(或者说可以采用的凭证)比较少。
二、Message安全模式
1.遵循了4个规范
WS-Security |
提供了一个抽象的消息安全模型。在这个安全模型中,通过安全令牌,结合数字签名和加密技术实现对消息交换实体的认证和对消息本身的保护。 |
WS-Trust |
双向验证 |
WS-Secure Conversation |
建立在WS-Security和WS-Trust基础之上,旨在提供一种机制,实现对安全上下文的创建和对整个生命周期的控制 |
WS-Security Policy |
建立在WS-Policy基础上,定义了一系列关于安全传输的策略断言。这些策略断言最终应用在WS-Security、WS-Trust、和WS-SC中。 |
2.安全模式的优缺点
优点:
(1)较之Transport安全,这种基于应用层实现的安全机制在认证方式上具有更多的选择
(2)能够提供端到端的安全
(3)互操作性,跨平台
缺点:
(1)性能较之Transport差
三、混合安全模式
(1)消息的一致性、机密性和客户端对服务端的认证通过Transport安全模式来实现;
(2)采用Message安全模式实现服务端对客户端的认证;
(3)充分利用Transport安全模式硬件加速优势,以提供高性能和具有高吞吐量的服务;
(4)更多关于客户端安全凭证和认证方式的选择;
(5)只能提供点到点的安全。