WCF分布式开发步步为赢(14)WCF安全编程--基本概念4965.docx

上传人:you****now 文档编号:48055376 上传时间:2022-10-04 格式:DOCX 页数:13 大小:65.14KB
返回 下载 相关 举报
WCF分布式开发步步为赢(14)WCF安全编程--基本概念4965.docx_第1页
第1页 / 共13页
WCF分布式开发步步为赢(14)WCF安全编程--基本概念4965.docx_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《WCF分布式开发步步为赢(14)WCF安全编程--基本概念4965.docx》由会员分享,可在线阅读,更多相关《WCF分布式开发步步为赢(14)WCF安全编程--基本概念4965.docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、WCF分分布式开开发步步步为赢(14):WCCF安全全编程-基本本概念所属分类类: WCCF分布布式开发发步步为为赢, SOAA annd EEAIWCCF安全全机制是是个非常常复杂的的问题,因因为涉及及的知识识点较多多,所以以今天这这个文章章,会分分析进行行WCFF安全开开发应该该了解的的哪些知知识点。如如何查看看资料。为为了更好好地理解解WCFF安全相相关知识识,我把把WCFF安全机机制主要要知识点点整理为为图表。本本章以介介绍WCCF安全全机制的的基础概概念为主主。 要学习习WCFF安全编编程,你你应该学学习什么么首先掌掌握什么么基础知知识?很很多时候候会因为为缺乏系系统的安安全概念念,

2、在进进行WCCF安全全编程开开发的时时候,遇遇到很多多问题,比比如所证证书,这这个概念念相信很很多初学学者第一一次接触触的时候候花费了了很多时时间。我我当时在在做WSSE安全全开发的的时候就就查阅了了很多资资料。那那么哪些些是WCCF安全全开发应应该掌握握的知识识点呢?今天我我们就在在这里做做详细的的介绍: Wiindoows Commmunnicaatioon FFounndattionn (WWCF) 是一一个基于于 SOOAP 消息的的分布式式编程平平台,我我们可以以使用现现有技术术(如 HTTTPS)、Wiindoows 集成安安全性或或对用户户进行身身份验证证的用户户名和密密码生成成

3、安全的的分布式式应用程程序。WWCF 基于现现有安全全性基础础结构和和 SOOAP 消息的的经验证证的安全全标准提提供可互互操作的的安全消消息交换换通用平平台。通通过使用用 WCCF的安安全机制制,我们们可以可可以在Intternnet 范围内内跨多个个 Wiindoows 域进行行服务和和客户端端的数据据交互。下下面会一一次介绍绍WCFF安全相相关的一一些知识识点:【0】安全全开发必必备知识识点:(1)对称称加密算算法DEES,也也叫密钥钥算法。(2)非对称加密算法,也叫公钥算法。使用一对密钥,配合使用。如RSA算法;(3)哈希算法:MD5(Message Digest5消息摘要算法),SH

4、A1,SHA256等概念。签名,也是在是哈希算法的应用。(4)WS-Security安全规范。这个是重要的安全规范,从Web Service ,WSE3.0 到现在的WCF服务都提供了支持。(5)证书。这个是非对称加密的一个应用。CA证书管理机构。如何创建证书和管理证书。等概念有所了解。算法这里主要讨论的是如何应用,即如何进行加密、解密、消息签名等问题。你对这些概念了解以后才会更好的理解WCF安全。其实早在WSE3.0构建Web服务安全(4)系列里已经详细讨论过这个问题。如果你看过这个系列的文章,这个些相关概念理解起来会容易许多。安全的相关知识点都有介绍,这个也是当初为什么花时间来学习WSE3

5、.0的原因。你可以参考WSE3.0构建Web服务安全(1):WSE3.0安全机制与实例开发和WSE3.0构建Web服务安全(2):非对称加密、公钥、密钥、证书、签名的区别和联系以及X.509 证书的获得和管理。后面的讨论又对文章进行了补充。几乎涵盖了所有的WCF安全需要的所有的基本知识点。【1】WWCF身身份验证证机制: WCCF与现现有的WWinddowss平台上上的身份份验证机机制很好好地结合合以外,还还支持WWS-SSecuuritty安全全规范,以以及用户户定制扩扩展验证证模式,安安全令牌牌方式。如如果你关关注过WWSE33.0相相关的技技术文章章,一定定感觉不不会陌生生,这些些安全机

6、机制在WWSE33.0中中已经完完全支持持。这些些都是WWCF声声称继承承WSEE安全机机制的最最好证明明。延续续微软平平台的的的一贯做做法。优优秀模型型的复用用与扩展展。关于于安全的的概念可可以再参参考WSSE3.0构建建Webb服务安安全(11):WWSE33.0安安全机制制与实例例开发。WCFF支持的的身份验验证机制制可以参参考下图图:一一下是对对各种客客户端身身份验证证方式的的说明:(1)Nonne:客客户端为为匿名客客户端。在在这种情情况下,每每个客户户端拥有有一个自自己的证证书,比比如身份份证。服服务会使使用证书书来确保保服务客客户端的的标识。我我们经常常使用HHTTPPS 访访问

7、网站站,比如如登陆一一些安全全级别较较高的网网站情况况类似,或或者使用用网上银银行时候候,你的的客户端端证书就就会起到到鉴别客客户端的的作用。(2)UUserrNamme:客户端端将提供供用户名名和密码码。在这这种情况况下,服服务会使使用证书书向客户户端验证证其标识识。另外外就是证证书还将将用加密密客户端端的用户户名和密密码,保保证消息息在传输输过程中中的安全全。这个个方式也也是常见见的加密密方式。我我会在后后续文章章里给出出实现代代码。(3)WWinddowss:需要要Winndowws AAD支持持。一般般使用在在企业局局域网内内部。客客户端和和服务都都会使用用 Wiindoows 帐户进

8、行行身份验验证。WWinddowss Coommuuniccatiion Fouundaatioon 将将会就 Kerrberros 或 NTTLM 进行协协商,如如果存在在域,则则优先选选择 KKerbberoos(NTLLM 实实际上不不会向客客户端验验证服务务的身份份,而只只会向服服务验证证客户端端的身份份)。如如果您想想要使用用 Keerbeeross,则必必须让客客户端根根据配置置中的服服务主体体名称验验证服务务的身份份。如果果您要在在域环境境中为客客户端构构建服务务,您应应明确地地为其提提供发送送 Wiindoows 账号的的选项。(4)CCerttifiicatte:服服务将具具

9、有一个个证书(客客户端的的公钥),客客户端也也具有一一个其自自己的证证书(服服务端的的公钥)。当当客户端端向服务务端发送送消息时时,使用用证书加加密消息息,服务务端使用用私钥解密。反反之亦然然。证书书就是包包含公钥钥,证书书标识,主主题,指指纹,签签名算法法等的一一个文件件。(5)IIssuuedTTokeen:安全令令牌的概概念在WWSE33.0里里曾经涉涉及到。它它允许您您的服务务从安全全性令牌牌服务 (STTS) 接受一一组签名名的声明明。因为为它可以以启用联联合标识识方案和和InffoCaard。当当您与某某个合作作伙伴组组织联合合时,您您将允许许该合作作伙伴通通过任何何合适的的技术对

10、对其自己己的用户户进行身身份验证证。在最最理想的的情况下下,这将将允许该该合作伙伙伴组织织中的用用户通过过单一登登录使用用您的服服务,即即便他们们并不与与您使用用同一个个 Acctivve DDireectoory 域,或或不受您您的信任任。该合合作伙伴伴组织中中的用户户需要使使用 SSTS 进行身身份验证证,而 STSS 可以以发出一一个签名名的安全全声明标标记语言言 (SSecuuritty AAsseertiion Marrkupp Laanguuagee, SSAMLL) 令令牌。您您既可以以直接接接受该令令牌,也也可以要要求将该该令牌呈呈送给您您组织中中的 SSTS,以以便让其其评估

11、该该合作伙伙伴的声声明,并并发出第第二个您您可以使使用的 SAMML 令令牌。理理解起来来有点复复杂。实实际也是是一个标标识,鉴鉴别客户户端的一一个标识识。就是是一种更更加灵活活的身份份验证方方式。 好好比你现现在使用用中国护护照,有有一天突突然联合合国实现现了一种种新的护护照,全全球统一一护照,你你可以进进入任何何一个国国家,即即使你在在中国办办理,但但是其他他国家可可以再你你落地的的时候验验证你的的护照的的有效性性。然后后告诉其其他国家家,共享享着这次次验证的的结果。你你的护照照就是令令牌。需需要后续续鉴别的的身份证证明。IIssuued这这个单词词的作用用就在这这里。需需要鉴别别的令牌牌

12、。 UUserrNamme方式式容易实实现,但但是在WWCF框框架下需需要使用用服务证证书,这这个是相相对WSSE3.0改变变的地方方。如果果结合证证书使用用的话,会会使的这这种方式式适合在在Intternnet中中使用。安安全性较较高。适适合对发发布到IInteerneet的WCFF服务常常见的身身份验证证方式。X.509证书验证方式相对严谨,要求客户端提供有效的证书凭证,也就是每个客户端都要维护一个自己的证书,调用服务前,通过SOAP消息传递到WCF服务,WCF进行身份验证。这个需要CA支持。或者需要申请第三方商业证书。 定制方式也比较常见,用户根据需要定制自己的身份验证机制,如指纹,基因

13、等技术。来代替现有的身份验证方式。【2】WCF传输安全模式: WCF transfer Security mode包含5种方式:None,Transport,Message,Mixed,Both.这里的翻译直接翻译会导致奇异,因为这里还有一个概念就是Transport安全。选择不翻译更好,两者的中文直译反而难以理解。记住transfer Security 包含Transport,Message等5中安全模式,Transport,Message也是最长使用的安全模式。如下图: 传输安全模式使用传输级协议(如 HTTPS)获取传输安全性。传输模式的优点是可以被广泛采用、可用于多个平台以及计算较为简

14、单。但是,它的缺点是只能保证点到点的消息安全。(1)混混合模式式: 使用用传送安安全实现现完整性性、保密密性和服服务器身身份验证证。使用用消息安安全(WWS-SSecuuritty 和和其他标标准)实实现客户户端身份份验证。(此此模式的的枚举值值是TraanspporttWitthMeessaageCCreddenttiall。)(22)消息息和传送送: 在传传送级别别和消息息级别都都执行保保护和身身份验证证。此模模式仅在在 元素素中可用用。 消消息安全全模式使使用 WWS-SSecuuritty(和和其他规规范)实实现传输输安全性性。因为为消息安安全性直直接应用用于 SSOAPP 消息息并与

15、应应用程序序数据一一起包含含在 SSOAPP 消息息内,它它的优点点是独立立于传输输协议、可可扩展性性更强以以及可确确保端到到端安全性性(与点点到点相相对),实实现在整整个Innterrnett网络中中的消息息传播安安全;它它的缺点点是比传传输安全全性模式式慢很多多倍,因因为它必必须处理理 SOOAP 消息,对对消息加加密,解解密和签签名等操操作。【3】WCFF安全模模式与绑绑定协议议: Nett相关的的绑定协协议默认认支持ttrannspoort安安全模式式,而WWS相关关绑定默默认支持持消息安安全模式式。BassicHHttppBinndinng绑定定可支持持基本安安全配置置文件,而而WS

16、HHttppBinndinng绑定定则支持持最新的的安全标标准,例例如 WWS-SSecuuritty 11.1 和 WSS-SeecurreCoonveersaatioon。通通过对这这些标准准的支持持,WCCF 安安全性可可与除 Miccrossoftt Wiindoows 之外的的操作系系统和平平台上承承载的 Webb 服务务进行互互操作和和集成。具具体关系系可以参参考下表表:绑定安安全模式式NoneeTrannspoortMesssageeMixeedBothhBasiicHtttpBBinddinggYes (Deefauult)YesYesYesNoNetTTcpBBindding

17、gYesYes (Deefauult)YesYesNoNetPPeerrTcppBinndinngYesYes (Deefauult)YesYesNoNetNNameedPiipeBBinddinggYesYes (Deefauult)NoNoNoWSHtttpBBinddinggYesYesYes (Deefauult)YesNoWSFeederratiionHHttppBinndinngYesNoYes (Deefauult)YesNoWSDuualHHttppBinndinngYesNoYes (Deefauult)NoNoNetMMsmqqBinndinngYesYes (Deefau

18、ult)YesNoYes【4】TTrannspoort安安全模式式与客户户端凭据据: Trranssporrt安全全模式与与客户端端验证方方式包括括以下44种:Noone,Winndowws,UUserrNamme,Cerrtifficaate也也就是证证书(非非对称加加密算法法里,包包含公钥钥等信息息的一种种文件形形式)。客客户端凭凭据中文文翻译别别扭,不不好理解解。cllienntCrredeentiial。通通俗来说说:就是是用什么么样的方方式来验验证客户户端。即即客户端端提供的的证件。具具体由服服务端决决定使用用哪种方方式。下下面是绑绑定协议议和客户户端验证证方式在在traansppo

19、rtt模式下下的对应应关系:绑定客客户端凭凭据NoneeWinddowssUserrnammeCerttifiicatteBasiicHtttpBBinddinggYes (Deefauult)YesYesYesNetTTcpBBinddinggYesYes (Deefauult)NoYesNetPPeerrTcppBinndinngNoNoYes (Deefauult)YesNetNNameedPiipeBBinddinggNoYes (Deefauult)NoNoWSHtttpBBinddinggYesYes (Deefauult)YesYesWSFeederratiionHHttppBi

20、nndinngN/AN/AN/AN/AWSDuualHHttppBinndinngN/AN/AN/AN/ANetMMsmqqBinndinngYesYes (Deefauult)NoYes【5】消消息安全全模式与与客户端端凭据: 相相对taanspportt安全模模式来说说,消息息安全模模式下我我们可以以多使用用一种客客户端验验证方式式:Isssueed ttokeen令牌牌。消息息安全模模式增加加支持的的安全令令牌机制制。 IsssueddTokken:安全令令牌的概概念在WWSE33.0里里曾经涉涉及到。它它允许您您的服务务从安全全性令牌牌服务 (STTS) 接受一一组签名名的声明明。因为

21、为它可以以启用联联合标识识方案和和InffoCaard。当当您与某某个合作作伙伴组组织联合合时,您您将允许许该合作作伙伴通通过任何何合适的的技术对对其自己己的用户户进行身身份验证证。在最最理想的的情况下下,这将将允许该该合作伙伙伴组织织中的用用户通过过单一登登录使用用您的服服务,即即便他们们并不与与您使用用同一个个 Acctivve DDireectoory 域,或或不受您您的信任任。该合合作伙伴伴组织中中的用户户需要使使用 SSTS 进行身身份验证证,而 STSS 可以以发出一一个签名名的安全全声明标标记语言言 (SSecuuritty AAsseertiion Marrkupp Laang

22、uuagee, SSAMLL) 令令牌。您您既可以以直接接接受该令令牌,也也可以要要求将该该令牌呈呈送给您您组织中中的 SSTS,以以便让其其评估该该合作伙伙伴的声声明,并并发出第第二个您您可以使使用的 SAMML 令令牌。理理解起来来有点复复杂。实实际也是是一个标标识,鉴鉴别客户户端的一一个标识识。就是是一种更更加灵活活的身份份验证方方式。 这里主主要是为为什么ttrannspoort模模式不支支持,而而消息模模式支持持,因为为安全令令牌,需需要后续续组织中中的一个个成员进进行后续续的身份份鉴别,然然后进行行验证结结果的共共享。TTrannspoortaat模式式只限制制点对点点传输安安全,

23、因因而不适适合这种种验证方方式。绑定客客户端凭凭据NoneeWinddowssUserrnammeCerttifiicatteIssuued tokkenBasiicHtttpBBinddinggNoNoYesYesNoNetTTcpBBinddinggYesYes (Deefauult)YesYesYesNetPPeerrTcppBinndinngN/AN/AN/AN/AN/ANetNNameedPiipeBBinddinggN/AN/AN/AN/AN/AWSHtttpBBinddinggYesYes (Deefauult)YesYesYesWSFeederratiionHHttppBinn

24、dinngN/AN/AN/AN/AN/AWSDuualHHttppBinndinngYesYes (Deefauult)YesYesYesNetMMsmqqBinndinngYesYes (Deefauult)YesYesYes【6】总总结: WWCF 安全性性与现有有传输安安全模型型集成,并并且可对对基于 SOAAP 消消息安全全的新传传输安全全模型使使用现有有基础结结构。支支持IIIS结合合的所有有安全性性解决方方案。安安全套接接字层 (SSSL) 或 Keerbeeross 协议议。也支支持Wiindoows身身份验证证方式,使使用 AActiive Dirrecttoryy 的 Wii

25、ndoows 域。而而对WSS-Seecurrityy安全规规范的支支持又使使其可以以在互联联网中实实现安全全的消息息传输。 这些基础知识,基本是WCF安全机制要使用的主要的知识点。这里之所以单独整理出来,主要是因为:(1)安全的概念由来已久,而与安全相关的算法或者相关概念,如加密、解密、证书、签名等概念大家必须有所了解。这个是进行安全编程的基础。如果对此基本概念不了解,在后续的学习中会寸步难行。(2)WS-Security相关知识点,在WSE3.0里已经提供了很好的支持,WCF集成过来以后,也是对WCF宣称支持早期WSE优势的重要证据。也使得WCF具有可以实现向Web Service一样跨平

26、台的安全的重要特性。例如许多自定义安全验证方式使用就是重写积累的Validate方法。这个和WSE3.0非常相似,用户自定义实现用户名和密码的验证,重写以后,WCF框架会自动调用这个方法。验证失败会抛出异常。(3)WCF安全更加复杂,除了支持先有的安全框架,还有结合自身的要求实现与绑定等协议的结合,为此,WCF提供了自己的安全通道,来实现对安全机制的支持。消息的加密、签名和解密都是在这里完成。来适用不同的安全验证场景。(4)安全级别的提升,除了显示配置安全模式为None意外,WCF大部分消息安全模式在使用WS绑定都要求提供证书支持。比如UserName的消息安全模式,服务器必须提供证书,而且要

27、是可信任的证书。这个和早期的Web Service直接在Soap 消息Header里写明文的用户名和密码。WSE3.0安全只启用UserName验证不同。 在了解完这些基础概念以后,我会在后续文章里给出更多讲解。因为涉及的知识点太多。如果只讲一个问题,或者简单给出实现,难以系统掌握WCF安全开发。所以为了更好的学习WCF安全编程,这里现从安全的总体概念入手,系统介绍安全的主要知识点以后,再来进行下面的学习。我在下一篇会介绍USerName方式的客户单身份验证的实现原理和过程。包括实现代码。 谢谢 参考资料:1.programming WCF Services2.3.WSSE3.0构建建Webb

28、服务安安全(11):WWSE33.0安安全机制制与实例例开发44.WSSE3.0构建建Webb服务安安全(22):非非对称加加密、公公钥、密钥钥、证书书、签名名的区别别和联系系以及XX.5009 证证书的获获得和管管理5.htttp:/mssdn.miccrossoftt.coom/zzh-ccn/llibrraryy/mss73110699.asspx66.htttp:/ttechhnett.miicroosofft.ccom/zh-cn/libbrarry/ccc76680663(een-uus).asppx7.htttp:/m/mssj/008999/keerbeeross/keerbeeross.asspx

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文献 > 管理制度

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁