




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、文 档 目 录第1章.系统安全认证概述3第2章.WCF通讯协议42.1.WCF与以往技术的比较42.2.WCF在安全性方面的改进42.3.WCF在性能方面的改进52.4.WCF开发模型和以往的其他分布式技术的区别52.5.Binding类型比较62.6.WCF实例会话模型7第3章.证书认证体系83.1.WCF身份验证机制83.2.传输安全模式之匿名客户端身份验证93.3.传输安全模式之基本身份验证(Windows帐户验证)103.4.传输安全模式之自定义用户名密码身份验113.5.传输安全模式之Windows身份验证123.6.传输安全模式之Certificate证书身份验证123.7.传输安
2、全模式之自定义X509Certificate证书身份验证133.8.消息安全模式之匿名客户端身份验143.9.消息安全模式之UserName客户端身份验证143.10.消息安全模式之NetTcpBinding客户端身份验证153.11.消息安全模式之自定义用户名密153.12.消息安全模式之证书客户端身份验证163.13.消息安全模式之自定义证书客户端身份验证16第4章.证书载体论述17第5章.可行性分析报告18第6章.WEB应用程序证书认证体系18第1章. 系统安全认证概述本文档重点讨论WCF系统安全的身份认证和WEB应用程序系统安全的身份认证。WCF系统的身份认证体系与其相关的通讯协议紧密
3、联系,有些通讯协议只能采用证书认证或Windows身份认证等方式。本文档重点讨论阐述基于wsHttpBinding通讯协议的WCF安全认证。WEB应用程序系统安全采用以WEB服务器证书身份验证和客户端即浏览器身份验证方式。第2章. WCF通讯协议2.1. WCF与以往技术的比较从表格中我们可以看出,WCF似乎等于前面几项技术之和,但事实并非如此,它既整合了原来的多项技术,而且拥有着自己得天独厚的优点,如下: u 统一性(Integration) u 互操作性 u 安全可靠(Secure and Reliable) u 兼容性2.2. WCF在安全性方面的改进为了保证数据通讯的安全,WCF提供了
4、三种保护措施:1)机密性(Confidentiality)2)完整性(Integrity) 3)可验证性(Authentication),这三种措施联合起来被称为CIA。并且这些措施在WCF中是默认支持的。机密性能保证传输的数据是经过加密的,不被非法监听(eavesdrop),而完整性利用数字签名技术防止数据在传输过程中被注入(injected)或篡改(tampered),而验证(Authentication)可以采用灵活的策略来处理达到的客户端请求,比如用户名密码验证,客户端证书验证等。2.3. WCF在性能方面的改进大家都知道,越复杂,结构层次越多的框架一般效率也越低,WCF是以往其他分布
5、式技术的集成者,它结构相对复杂,且由于默认支持安全传输,在性能上应该不如Xml Web Service技术,更不用和.Net Remoting等比较,这是一个有框架设计经验和架构师们都明白的简单道理,但是事实怎么样呢?wcf比xml web service性能到底是高还是底,低要低多少?这些问题很值得大家的研究和讨论,其实已经有人在此方面做了很详细的对比,msdn上便有一篇专门介绍此方面知识的文章: WCF Performance Comparison ,对wcf性能感兴趣的同学,可以到这文章中学习。很详尽。限于条件的限制,我这里只在我一台机器上作一个简单的对比,仅供参考。分别测试循环1000
6、次对wcf和xml web service相同功能方法的调用,得到如下的数据:2.4. WCF开发模型和以往的其他分布式技术的区别WCF不仅仅在功能上集成了以往的分布式开发技术,而且在编程模型中充分吸取原来技术的优点,如xml web service的声明性编程(declareable),和.net remoting中的配置(configuration)和wse中的安全策略声明性配置方法,这样WCF虽然功能强大,而且学习简单,便于推广。在vs2008中还集成了WCF Test Client,开发服务的时候,甚至不需要再开发测试客户端就能用WCF Test Client来进行调用,简单之极,示例
7、程序更是无需更改以行代码,便可以运行。 上面这些是说了WCF编程的简单易学性,我总结出来,主要包括以下几种特性:u 基于声明性编程模型;u 充分利用配置来实现框架的灵活; u 使用配置的同时,仍保留代码编程的模型,使得框架更加丰富,便于控制; u 默认的CIA支持,极大地简化了安全控制。2.5. Binding类型比较2.6. WCF实例会话模型u Per-Call:每次的客户端请求分配一个新的服务实例。 类似于Net Remoting的Single-Call模式, 在这种方式下,程序的扩展性是最强的,在事务编程与队列服务中优势更为明显。但是由于频繁地创建与销毁实例,会对性能造成一定的影响。u
8、 Per-Session: 服务端需要保持客户端的状态,为每次客户端连接分配一个服务实例,客户端的每次调用,会使用到同一个实例,如果实例销毁,客户端的调用会抛出异常。类似于Net Remoting的客户端激活模式;这是wcf的默认支持方式. 由于每个客户端都需要维护一个会话,需要占用较多的资源来保存服务会话状态。如果存在多个独立的客户端,则创建专门的服务实例的代价太大。u Singleton: 所有客户端而言,都只有一个服务实例,当服务端被host的时候,就会创建,有且仅有一个服务实例来响应客户端服务调用的请求,在多个客户端请求下,服务端只会处理一个客户端的请求,其他的排队等候处理。因此在系统
9、的吞吐量、相应效率、系统服务性能上都存在严重的瓶颈,好处是,可以共享数据。第3章. 证书认证体系3.1. WCF身份验证机制绑定协议和客户端验证方式在transport模式下的对应关系:3.2. 传输安全模式之匿名客户端身份验证SSL安全套接字层一个数据传输加密机制,它可以确保在客户机与服务器之间传输的数据仍然是安全与隐密的。传输安全 (HTTPS) 确保保密性和完整性。使用安全套接字层 (SSL) 证书对服务器进行身份验证,并且客户端必须信任服务器的证书。对客户端不通过任何机制进行身份验证,因此是匿名的。SSL 广泛用于 Internet 中,以便向客户端证明服务的身份,并且随后向通道提供保
10、密性(加密)。这里要经过三次握手以后,客户端和服务端建立安全套接字连接。在握手期间,服务还将其 SSL 证书发送到客户端。该证书包含一些信息,例如证书的到期日期、颁发机构以及网站的统一资源标识符 (URI)。客户端将该 URI 与它原来联系的 URI 进行比较,以确保二者匹配,并且对日期和颁发机构进行检查。客户机和服务器对它们将要为此会话使用的密钥及加密方法达成一致。客户机使用服务器证书验证服务器。握手之后,SSL 被用来加密和解密 HTTPS(组合 SSL 和 HTTP 的一个独特协议)请求和服务器响应中的所有信息。这个就是为什么WCF传输安全需要使用证书的原因,客户端可以不进行身份验证。但
11、是要有一个服务器证书来保证客户端和服务器之间能够建立SSL安全套接字连接。证书注册与查询输入:makecert -sr localmachine -ss My -n CN=WCFServerPK -sky exchange -pe -r输入:makecert -sr localmachine -ss My -n CN=WCFClientPK -sky exchange -pe rhttpcfg set ssl -i :9001-h b2860b6d5ec3de133d5fcc4e1419b09e5httpcfg delete ssl -i :9001-h b2860
12、b6d5ec3de133d5fcc4e1419b09e5httpcfg query ssl3.3. 传输安全模式之基本身份验证(Windows帐户验证)传输安全模式之基本身份验证需要服务器需要一个有效的可用于安全套接字层 (SSL) 的 X.509 证书,并且客户端必须信任此服务器证书。如果不信任此证书会导致建立SSL传输连接失败,因为客户端会认为服务端是一个非法的服务端,从而导致建立SSL安全套接层失败。客户端建立SSL安全套接层以后,会使用商定的密码对消息签名,客户端使用证书加密数据,服务端使用证书解密数据,保证数据的安全和机密性,消息签名防止被篡改。这个链接是唯一的。通信结束以后会关闭连
13、接。3.4. 传输安全模式之自定义用户名密码身份验传输安全模式之基本身份验证需要服务器需要一个有效的可用于安全套接字层 (SSL) 的 X.509 证书,并且客户端必须信任此服务器证书。 这里使用https协议。客户端提供有效的UserName和Password。客户端建立SSL安全套接层以后,会使用商定的密码对消息签名,客户端使用证书加密数据,服务端使用证书解密数据,保证数据的安全和机密性,消息签名防止被篡改。这个链接是唯一的。通信结束以后会关闭连接。3.5. 传输安全模式之Windows身份验证Windows域验证:Kerberos V5和域控制器Kerberos V5服务安装在每个域控制
14、器上,而Kerberos V5客户机则安装在每个Windows Server 2003工作站和服务器上。Windows Server 2003系统使用域名服务(DNS)查询定位最近的可用域控制器。该域控制器则会在用户登录期间对该用户起首选KDC的作用。如果首选KDC失效,则Windows 2003 Server系统将确定由另一个KDC提供验证。Kerberos V5验证过程是按以下步骤工作的:(1) 客户机中的用户,使用口令或智能卡向KDC(Key Distribution Center)发出验证请求。(2) KDC向客户机发出一个特别的授权票证(Ticket Granting Ticket,
15、简称TGT)。客户机系统使用该TGT访问售票服务(Ticket Granting Service,简称TGS),它是域控制器中Kerberos V5验证机制的一部分。(3) 然后,TGS向客户机发布一个服务票证(Service Ticket),客户机使用服务票证来请求网络服务。服务票证用来证明服务和用户的身份。传输安全模式之Windows身份验证需要服务器不需要一个服务器提供有效的可用于安全套接字层 (SSL) 的 X.509 证书。 这里使用Tcp协议来保证数据传输安全。客户端提供有效的Windows 用户名和密码。验证有域服务器完成。3.6. 传输安全模式之Certificate证书身份验
16、证传输安全模式之Certificate证书身份验证需要服务器需要一个有效的可用于安全套接字层 (SSL) 的 X.509 证书,并且客户端必须信任此服务器证书。 这里使用https协议。客户端提供有效的Certificate证书。 服务器通过证书来检验客户端身份的有效性。客户端首先要提供自己的证书,服务器对此进行验证,有效后,服务器会和客户端尝试建立SSL安全套接层,会使用商定的密码对消息签名,客户端使用证书加密数据,服务端使用证书解密数据,保证数据的安全和机密性,消息签名防止被篡改。这个链接是唯一的。通信结束以后会关闭连接。3.7. 传输安全模式之自定义X509Certificate证书身份
17、验证传输安全模式之基本身份验证需要服务器需要一个有效的可用于安全套接字层 (SSL) 的 X.509 证书,并且客户端必须信任此服务器证书。 这里使用https协议。客户端提供有效的自定义X509Certificate证书。客户端建立SSL安全套接层以后,会使用商定的密码对消息签名,客户端使用证书加密数据,服务端使用证书解密数据,保证数据的安全和机密性,消息签名防止被篡改。这个链接是唯一的。通信结束以后会关闭连接。(1)验证 HTTPS 客户端证书 当使用 HTTPS 在客户端和服务间通信时,客户端用于向服务进行身份验证的证书必须支持链信任。也就是说,它必须链至受信任的根证书颁发机构。否则,H
18、TTP 层将引发 WebException,并显示消息“远程服务器返回错误: (403) 禁止。”WCF 将此异常包装为 MessageSecurityException。(2)验证 HTTPS 服务证书 当使用 HTTPS 在客户端和服务间通信时,服务器身份验证使用的证书默认情况下必须支持链信任。也就是说,它必须链至受信任的根证书颁发机构。不会执行任何在线检查来查看证书是否已吊销。可以通过注册 RemoteCertificateValidationCallback 回调来重写此行为,如以下代码所示。其中,ValidateServerCertificate 的签名如下:public stati
19、c bool ValidateServerCertificate( object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)。实现 ValidateServerCertificate 可以执行客户端应用程序开发人员认为在验证服务证书时有必要进行的任何检查。3.8. 消息安全模式之匿名客户端身份验消息安全模式之匿名客户端身份验证需要服务器需要一个有效的可用于TLS 加密和向客户端验证服务身份的 X.509 证书,并且客户端必须信任此服务器证书。 这里使用http协议。
20、建议安全上下文以后,使用共享安全上下文对SOAP消息进行加密和签名。但是不采用任何客户端身份验证。也就是任何客户端都可以访问此服务。客户端建立TLS安全上下文以后,会使用商定的密码对消息签名,客户端使用证书加密数据,服务端使用证书解密数据,保证数据的安全和机密性,消息签名放置被篡改。3.9. 消息安全模式之UserName客户端身份验证消息安全模式之UserName客户端身份验证需要服务器需要一个有效的可用于TLS 加密和向客户端验证服务身份的 X.509 证书,并且客户端必须信任此服务器证书。 这里使用http协议。建议安全上下文以后,使用共享安全上下文对SOAP消息进行加密和签名。但是采用
21、UserName客户端身份验证。也就是客户端提供用户名和密码才可以访问此服务。客户端建立TLS安全上下文以后,会使用商定的密码对消息签名,客户端使用证书加密数据,服务端使用证书解密数据,保证数据的安全和机密性,消息签名放置被篡改。3.10. 消息安全模式之NetTcpBinding客户端身份验证消息安全模式之NetTcpBinding客户端身份验证不需要服务器证书。这里的客户端和服务器的验证由DC来完成。 这里使用TCP协议。建议安全上下文以后,使用共享安全上下文对SOAP消息进行加密和签名。但是采用Windows身份验证。也就是客户端提供Windows域账号和密码才可以访问此服务。客户端建立TLS安全上下文以后,会使用商定的密码对消息签名,保证数据的安全和机密性,消息签名放置被篡改。这里客户端提供的是有效的Windows域账号和密码,进行验证。服务器也在Windows域中。不需要证书。3.11. 消息安全模式之自定义用户名密消息安全模式下的UserNamePassword身份验证方式,基于WSHttpBinding绑定协议。3.12. 消息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度婚前婚后房产共有管理及分割协议
- 2025年度高新技术企业担保合同解除协议书
- 2025年度珠宝店培训与发展中心聘用合同书
- 二零二五年度实习就业实习实训基地就业跟踪与服务合同
- 未来健康管理师的角色试题及答案
- 二零二五年度林业工程树木砍伐安全责任承诺书
- 2025年度无产权车库转让与物业管理权移交合同
- 2025年度跨境电商三方利润分配合同
- 二零二五年度危化品仓库使用权及安全管理协议
- 2025年度艺术品交易佣金分成协议
- 新增工程单价报审表
- 幼儿园惊蛰来了课件
- 真核生物蛋白质合成课件
- 转包违法分包等违法行为认定查处管理办法讲座课件
- 小学英语人教新起点一年级上册Unit3Animals新起点英语(一起)一年级上三单元2稿
- 基于PLC饮料灌装生产流水线控制系统设计(完整资料)
- 危化品泄漏应急演练方案
- 肝移植手术的配合课件
- 部编版六年级下册道德与法治全册优秀课件
- 绿野仙踪(导读课)课件
- 小学生防溺水安全教育主题班会ppt市公开课一等奖省名师优质课赛课一等奖课件
评论
0/150
提交评论