概述:

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)只能提供点到点的安全。

WCF安全3-Transport与Message安全模式的更多相关文章

  1. WCF身份验证一:消息安全模式之<Certificate>身份验证

    消息安全模式的证书身份验证方式,基于WSHttpBinding绑定协议的实现过程.主要内容:基本概念,然后是制作证书.服务端配置.客户端配置.总结.这里应该和Transport传输安全模式之证书身份验 ...

  2. WCF wsHttpBinding之Transport security Mode, clientCredentialType=”Basic”

    原创地址:http://www.cnblogs.com/jfzhu/p/4071342.html 转载请注明出处 如何在WCF中使用Transport Security Mode,以及如何创建证书,请 ...

  3. WCF basicHttpBinding之Transport Security Mode, clientCredentialType="None"

    原创地址:http://www.cnblogs.com/jfzhu/p/4071342.html 转载请注明出处 前面文章介绍了<WCF basicHttpBinding之Message Sec ...

  4. 使用wsHttpBinding构建Message安全模式和UserName授权

    http://www.cnblogs.com/artech/archive/2011/05/22/authentication_01.html https://www.cnblogs.com/Fran ...

  5. C# 的 WCF文章 消息契约(Message Contract)在流(Stream )传输大文件中的应用

    我也遇到同样问题,所以抄下做MARK http://www.cnblogs.com/lmjq/archive/2011/07/19/2110319.html 刚做完一个binding为netTcpBi ...

  6. [No0000125]WCF安全体系

    WCF的安全体系主要包括三个方面:传输安全(Transfer Security).授权或者访问控制(Authorization OR Access Control)以及审核(Auditing).而传输 ...

  7. WCF basicHttpBinding之Message Security Mode

    原创地址:http://www.cnblogs.com/jfzhu/p/4067873.html 转载请注明出处 前面的文章<WCF Security基本概念>介绍了WCF的securit ...

  8. WCF 内置绑定在不同的传输安全模式下的信道层

    basicHttpBinding Transport安全模式信道层 Message安全模式信道层 TransportWithMessageCredential安全模式信道层 TransportCred ...

  9. WCF初探-22:WCF中使用Message类(上)

    前言 从我们学习WCF以来,就一直强调WCF是基于消息的通信机制.但是由于WCF给我们做了高级封装,以至于我们在使用WCF的时候很少了解到消息的内部机制.由于WCF的架构的可扩展性,针对一些特殊情况, ...

随机推荐

  1. eclipse 打开是报错"reload maven project has encountered a problem"

    不需要删除整个 .metadata 如果删除这个代价是重新导入全部项目 D:\eclipse-workspace\.metadata\.plugins\org.eclipse.e4.workbench ...

  2. Java null String

    In Java, the String will have different usage. Example: public class Test { public static void main( ...

  3. android: SQLite删除数据

    删除数据对你来说应该就更简单了,因为它所需要用到的知识点你全部已经学过了. SQLiteDatabase 中提供了一个 delete()方法专门用于删除数据,这个方法接收三个参数,第一 个参数仍然是表 ...

  4. PlaceholderImageView

    PlaceholderImageView 说明 1. PlaceHolderImageView基于SDWebImage编写 2. 给定一个图片的urlString,以及一个placeholderIma ...

  5. Hermes实时检索分析平台

    一.序言 随着TDW的发展,公司在大数据离线分析方面已经具备了行业领先的能力.但是,很多应用场景往往要求在数秒内完成对几亿.几十亿甚至几百上千亿的数据分析,从而达到不影响用户体验的目的.如何能够及时有 ...

  6. count有关

    1.count有两个作用:统计某个字段有值的记录数:统计结果集的记录数.2.count括号内的表达式不为null,就是统计结果集的记录数.也就是说,count(1),count(*),count(10 ...

  7. Maven Learning - Direct Dependencies & Transitive Dependencies

    Dependencies declared in your project's pom.xml file often have their own dependencies. The main dep ...

  8. Javascript - 栈 和 单链表

    最近在重温数据结构,于是写了一些代码玩玩,都是很初级的,表喷各位.... function Stack() { this.dataStore = []; this.top = 0; } Stack.p ...

  9. Notes on how to use Webots, especially how to make a robot fly in the air

    How to create a new project Wizard - New project directory   Scene Tree Scene tree is a representati ...

  10. LeetCode: Unique Binary Search Trees II 解题报告

    Unique Binary Search Trees II Given n, generate all structurally unique BST's (binary search trees) ...