账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
WWS发展现况之剖析
让电子商务起飞的推手

【作者: 張思源】2004年04月25日 星期日

浏览人次:【6400】

今年二月23日起在美国旧金山马士孔尼大会堂之中举行为期一周的RSA网络安全会议,不但受到了网络安全业界一致的重视,且厂商参展及出席参加会议的人数比去年又成长了30%。主办单位今年特别请到微软的主席比尔盖茨先生来做第一个主题演讲者,使得整个大会生色不少。


电子商务不是梦

比尔盖茨在他的主题演讲中,除了对Windows XP SP2的安全特性和垃圾邮件的安全问题等着墨很深之外,在谈到了有关Web服务(Web Services)安全的议题时,更表示说这个由一连串XML标准所产生的无穷商机,正是实现当年网络泡沫化之前大家所讨论的电子商务梦想所需的重要基本建设架构。


包括SOAP和WSDL在内的各种丰富XML标准和通讯协议,可以让XML的数据在不同的系统之间,透过Internet来互相交换,而不必考虑双方系统之软件的兼容性问题。换句话说,Web服务是一个在Internet上真正实用的平台,它可以让任何一段网上软件和另一段软件,在网络上以丰富及安全的方式来互通互动,并不用去管它们是用何种计算机语言所写,也不用去管它们是在何种操作系统环境上运行。


这代表Web服务可以让人们去打造那些以丰富通讯协议导向(Rich protocol oriented)的程序应用,而不用烦恼如何去建造底层的基础,也不用去外面买特殊的队列软件或插入附加的软件,因为在系统之中已提供了丰富的功能。


比尔盖茨表示,Web服务各种标准和通讯协议的重要性,而且这一堆的丰富通讯协议已受到一个称为「网络服务兼容性组织(WS-I)」的监控和背书。


WS – Security是这些Web服务标准和通讯协议的核心组件,它让使用Web服务通讯协议的讯息不会受到地址欺伪攻击(Spoofing Attack),或是重送攻击(Replay Attack)。但由于这个WS-Security 的标准使用到好几层的通讯协议软件,并不容易编写,所以要将它放到执行时的Runtime中,使程序应用的程序设计师省去打造和安全相关的底层软件的麻烦。


Web服务核心问题

笔者认为虽然比尔盖茨的这一段演说中,有很多在技术上值得商榷的细节,但他的重点是在强调,Web服务是一个可以让在Internet上实行电子商务的技术。而在Web服务技术的核心,则是Web服务网络安全问题,这是一个非常重要的重点。


2003年3月中,美国市埸调查公司嘉纳集团(Gartner Group)公布了一项网络安全的分析和调查报告。它指出在企业信息人员的观点中,最受瞩目的11项网络安全议题,名列第一位的就是Web服务安全问题。


在过去一年里,很多和网络安全相关的研讨会中,嘉纳集团的这项报告被广泛地引用,但也常被台下的观众询问, Web服务的安全问题到底出在哪里?为何它会成为最热门的网络安全议题呢?


让美梦成真的Web服务

首先,我们来看一看究竟什么是让电子商务美梦成真的Web服务呢?基本上,Web服务是一个有超强能力的新型计算机运算模式,它可以让分散各地的系统以一种平台和计算机语言中性的方式,透过Internet用标准的通讯协议来交换信息,进而达到系统和系统之间互通和互动的目标。


Web服务是一套以Internet及Intranet为基础的完整模块化应用程序,它的运算方式是以XML的文件为重心,并透过XML的各种标准规范,来作为信息传输的格式。此外,也借着XML文件在网上的传输,在复杂的系统间互动,并自动被一个或多个应用程序来启动和呼叫,以完成一组特定的服务工作。


Web服务提供了一种简单且顺畅的机制,它采用XML和SOAP等标准的运算方式,让因特网上的程序逻辑模块可以被出版、发掘以及呼叫。这些模块在网络上相互运作,并用松散耦合的方式相互结合,让应用程序与应用程序之间的沟通,不必经由人力的操作介入,就能够自动做互动。


Web服务的掘起,让企业的计算机运算进入了一个新纪元,也因为这个由包括IBM和微软等众多软件巨头们所一致支持的平台中性互通方法,让企业可以打造并部署分布式应用程序,而不必考虑在网络上通信的双方之硬件平台、操作系统、程序语言,以及网络拓朴等等因素。


在信息的历史上面,这是第一次可以将新开发系统和旧有系统,用一个共通的语言和一组共同的数据互换方法去整合起来。简单地说,这次的信息革命是让微软、非微软、新和旧的软件都可以互通。


更重要的一点是IBM和微软等软件公司都投下了巨资,全力推展这一个可以让微软的.Net系统和非微软所开发的Java系统在网络上互通互动。并且Web服务可以让各个机关和企业的系统和应用程序,透过无远弗届的Internet来进行整合,不受各企业间防火墙的限制。


目前包括微软、IBM以及升阳在内的大大小小软件公司都一致支持Web服务技术,并连手创立一个名为WS – I的标准组织。WS-I专注于软件厂商间Web服务的互通问题,让各家公司推出的Web服务技术能彼此兼容,所以这组织的重点在于提倡工具与平台的兼容性,而不是在于新标准的制订工作。


如图一所示,左端是传统的网页,而右端则是Web服务的网上应用程序模块、分布式部署和松散耦合的协同合作。使用大家都同意的标准运算方式,最适合将各种传统的系统整合起来,并创造出新的网上应用程序,充分发挥网络上数字应用的功能,让电子商务能够在Internet上进行的美梦成真。


《图一 传统网页和Web服务》
《图一 传统网页和Web服务》

美梦成真的最大障碍

让电子商务美梦成真最大的障碍,是在于Web服务的网络安全问题。不论是大型或是中小企业,都因为Web服务的兴起,而计划利用它来进入电子商务的领域之中,以实现当年网络泡沫化之前,未完成的电子商务梦想。


但网络的安全问题是影响电子商务成败的最重要问题之一,即没有安全的网络,就不会有成功的电子商务;没有安全的Web服务就不会有起飞的电子商务;没有整体的Web服务安全解决方案,就不会有实现电子商务梦想的可能。然而,网络安全问并不是一蹴可及的,它有一定的技术难度,所以Web服务技术的核心是Web服务网络安全问题。


Web服务这种的运算方式是以XML文件为重心,借着XML文件在网上的传输,启动复杂的系统间互动,让不同的系统得以在网络上整合起来。在这种情况之下,一个XML的信息可能会绕送经过好几个节点,而不只是传统的网络一对一或点对点的通信方式。


当企业欲采用Web服务这种新的分布式技术时,也期望这个技术能和传统的分布式应用程序一样,有一个强而有力的安全基础。也就是说,用Web服务将不同的系统来整合新兴数字应用,再经过了多重节点时,要有一个完整端点到端点的安全解决方案,才不会让网络上横行的黑客有机可乘。


从网络安全的角度来看,这种经过多重节点的Web服务,颠覆了传统以连接导向(Connection Oriented)的点对点安全机制。在Web服务的环境之中,需要一个新的端点到端点安全机制,不论一个XML的信息绕送过多少个节点,都要能在其SOAP的信息之中,确保其安全。


像是原先在Internet上最为广泛应用的SSL安全机制,由于过于简单,以至于不能在这种Web服务的新环境下,独挑大梁来担任完全的安全防御任务了。以(图二)的例子来看,左端的传统网页可以用SSL来保障安全,但是右端还有一大串连接是在SSL的保障之外。


因此,Web服务不被采用的最大障碍在于缺乏安全;假如有了安全,相信Web服务的市埸马上就能够成长加倍;反之如果没有安全,就不可能达到市场成长的目标。


Web服务的安全标准 – WSS

比尔盖茨在2004 RSA网络安全会议中表示,微软对于Web服务的网络安全问题的答案就是WS – Security,其实这个说词有些值得商榷的地方。首先,WS – Security只是一个标准规范,并不是一个切实的安全解决方案;其次,WS – Security的本身并不能解决像是扮猪吃老虎般的地址欺伪攻击,或是狸猫换太子般的重送攻击。


WS-Security规范的本身,是经过了好几次的具体化。2001年十月时,微软单独推出WS – Security规范的第一个版本;到了2002年四月,IBM和微软联合发表Web服务世界之安全文件,在其中界定了一个Web服务的安全架构,并又和Verisign公司连手推出了新版本的WS – Security草案。


2002年六月,WS – Security被正式呈送到标准组织OASIS。由于OASIS同时也掌管了好几个和Web服务安全相关的标准,诸如XKMS、SAML、XACML,及XML生物辨识用途的XCBF等,因此被业界公认是WS – Security非常理想的归宿。


OASIS特别成立了一个Web服务安全技术委员会(WSS – TC),来主持Web服务网络安全标准的开发工作,并且研议和Web服务安全相关之各项议题,目前笔者也是该委员会拥有投票表决权的正式委员之一。


在Web服务的网络安全标准规范方面,WSS-TC早已将原来由IBM和微软领军的WS – Security草案,改名为OASIS的Web Services Security(WSS)。在经过近两年的努力后,WSS标准和原先的WS – Security已有很大的区别。WSS – TC本身并不希望别人将它所制订的新WSS标准和原先微软的WS – Security标准混淆,但包括比尔盖茨在内,一般人还是将这两个标准画上一个等号。


目前WSS主要的规范是SOAP信息的安全规范、 X.509数字证书和用户名称的安全令牌(Username Token)。这三本规范的现在已由技术委员会的表决通过,正式呈交OASIS的发展会员表决。如果没有意外,预计在2004年四月初就成为OASIS正式的1.0版本。WSS成为OASIS正式标准,将会是Web服务界的一件大事,因为一般都认为这是继SOAP、WSDL和UDDI之后,让各界最期待的Web服务标准。


安全标准大集合

在XML和Web服务的安全标准中,WSS并不是一项创举,例如掌控XML文件安全的XML数据加密(XML Encryption)、XML数字签名(XML Digital Signature)、管理撷取权限的XACML标准(OASIS Extensible Access Control Markup Language)、从XML文件安全再进阶到XML信息安全的密钥管理所用的XKMS(XML Key Management Specification,XML密钥管理规范),以及提供单一签入认证与授权的SAML(Security Assertion Markup Language)等标准和技术,都是早已存在的一些和Web服务安全相关的技术和标准。


不过WSS这个标准和上面的这些标准不同,它主要是集合上述标准之大成,并专注在如何保障SOAP信息的安全上面。


在概念上,Web服务所使用的SOAP信息,就好像一个装有XML文件的信封。信封内装的可以是XML的主文,也可以是一个或多个附件。在信封上除了有收件人和寄件人的地址数据之外,还有各种处理内文的相关指示。


WSS是用来定义信件内的各种数据加密及电子签章的记号,以及如何使用XML之规范来处理信息内文件的加解密和签章和验证签章的各项事宜。同时,它也规范了如何验证送件人的身份等SOAP标头。


如图二所示,WSS集合了底层讯息传输的SOAP、私密性和完整性的SSL、XML数据加密、XML数字签名、身分验证令牌用的X.509、SAML,Kerberos、授权及访问控制用的XrML和XACML,公钥的凭证,以及XKMS等。WSS集合了各种在XML上的安全标准,而成为Web服务信息安全上的大统帅。


《图二 Web Services Security》
《图二 Web Services Security》

WSS规范之内容

WSS规范组合了各种标准和技术,让采用不同安全技术的公司,可以用SOAP通讯协议安全地在网上互通讯息。例如一个公司主要是以用户名称及密码来做上网时身分验证的证件,而另外一个公司则是要以X.509数字证书来做上网时的证件。虽然这两家公司所使用的身分验证技术不同,但是可以把它们提升到同一个层次,因为都是要做身分验证的工作。


这种组合的基本机制,不但可以在SOAP的信息中,包含现存的各种安全技术,对于将来新发展出来的Web服务安全技术也能适用,进而打造出更为安全的Web服务基本建设架构。这些基本机制的功能不外乎是要提供SOAP信息的完整性、私密性和单一信息的身分验证等工作。


WSS信息使用用户名称及密码安全令牌和的实例,在框中是身分验证相关的编码


<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<wsse:Security soap:mustUnderstand="1"
xmlns:wsse="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken>
<wsse:Username>SteveTsai</wsse:Username>
<wsse:Password
Type="wsse:PasswordText">securance</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soap:Header>
<soap:Body>
<Ping xmlns="http://xmlsoap.org/Ping">
<text>NetSecurance</text>
</Ping>
</soap:Body>
</soap:Envelope>?

信息的私密性系利用现有W3C的XML数据加密标准,再加上安全令牌来确保信息在传输的过程之中,没有被泄露出去。这种数据加密的机制可以支持多种加密处理过程,并且可由多点来执行处理工作。


相对地,信息的完整性系利用现有W3C的数字签名标准,并且也加上了安全令牌,以确保信息在传输之中,没有被人窜改。这种数字签名的机制可以支持一个信息的多层数字签名,也支持在多点上进行签字的工作。


加密又签字的WSS信息实例,在框中分别是SOAP信息的Body部分之数字签名和数据加密相关编码


<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<wsse:Security soap:mustUnderstand="1"
xmlns:wsse="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<xenc:EncryptedKey xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<wsse:SecurityTokenReference>
<wsse:KeyIdentifier ValueType="wsse:X509v3">B39R...mY=</wsse:KeyIdentifier>
</wsse:SecurityTokenReference>
</KeyInfo>
<xenc:CipherData>
<xenc:CipherValue>dNYS...fQ=</xenc:CipherValue>
</xenc:CipherData>
<xenc:ReferenceList>
<xenc:DataReference URI="#enc" />
</xenc:ReferenceList>
</xenc:EncryptedKey>
<wsse:BinarySecurityToken ValueType="wsse:X509v3"
    EncodingType="wsse:Base64Binary" 
    xmlns:wsu="http://schemas.xmlsoap.org/ws/2003/06/utility"
wsu:Id="myCert">MII...hk</wsse:BinarySecurityToken>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<Reference URI="#body">
<Transforms>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>QTV...dw=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>H+x0...gUw=</SignatureValue>
<KeyInfo>
<wsse:SecurityTokenReference>
<wsse:Reference URI="#myCert" />
</wsse:SecurityTokenReference>
</KeyInfo>
</Signature>
</wsse:Security>
</soap:Header>
<soap:Body wsu:Id="body" xmlns:wsu="http://schemas.xmlsoap.org/ws/2003/06/utility">
<xenc:EncryptedData wsu:Id="enc" Type="http://www.w3.org/2001/04/xmlenc#Content"
xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
<xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
<xenc:CipherData>
<xenc:CipherValue>AYb...Y8=</xenc:CipherValue>
</xenc:CipherData>
</xenc:EncryptedData>
</soap:Body>
</soap:Envelope>

在身分验证方面,WSS提供了多种身分验证的机制,从简单的用户名称的安全令牌、X.509数字证书、Kerberos、提供单一签入认证与授权的SAML(Security Assertion Markup Language),一直到用生物辨识(Biometric)技术,都有不同的附带标准在研议之中。除前两项马上成为正式的标准外,其他各项附带的安全认证规范都将会陆续地审议完成,并正式推出成为标准。


WSS并非刀枪不入

虽然,主管Web服务安全的WSS正式推出成为标准,但是这并不代表Web服务的安全就有了万灵丹,可以从此就高枕无忧、刀枪不入了。因为WSS只是一个安全的标准,而不是安全的解决方案。


在WSS的规范之中就明白地指出,单独的WSS并无法确保Web服务的安全,它也无法独力来提供一个完全的安全解决方案。WSS只是打造整个解决方案时候的一个建筑组件,必须要结合其他在Web服务之中和应用程序专属的通讯协议,以便提供多种不同的安全模式与数据加密的技术。


结语

事实上,在IBM和微软等厂商连手推出WS – Security标准后不久,他们又公布了整个WS – Security的蓝图,并用WS – Security做基础,发展出和安全相关的各项标准。只是这些标准目前大都还在各别厂商相互讨论和试验阶段,IBM和微软等大厂并无意将这些标准送到像是OASIS或是W3C之类的标准组织中去研议。


实现WS – Security并不代表Web服务应用不会被黑客入侵,也不代表网络安全不会被破解。WS – Security是打造安全的Web服务时之重要一员,但是其它各种网络安全的机制还是不可或缺。


<作者为本刊的资深专栏作家,目前在美国矽谷高科技公司任职,是OASIS之Web服务安全技术委员会(WSS-TC)的委员之一;作者网站:http://home.earthlink.net/ ~symonchang/webservices.htm>


延 伸 阅 读

什么是Web服务? What are Web Services?
Web服务代表着可以从Web上存取的一个单位的商业、应用、或者是系统的功能。Web服务的英文原名是Web Services,翻译成网络服务会和一般操作系统的Network Services混淆,所以将其称之「Web服务」。

PKI与Web Services Security标准与应用研究
利用PKI和Web Services技术的相结合,可以提供在Web Services交易行为中的安全性、鉴别性、整合性,以及不可否认性。PKI在各国的建置工作早已如火如荼的展开,我国也已经展开政府PKI的建置,且已完成部分CA的建置工作。欲发展网络上的商业行为,对于安全性的建置工作为首先必要条件。
本篇文章是介绍如何使用Web Services Enhancements 2.0 for Microsoft .NET来集成基于X.509的WS-Security验证和Microsoft .NET Framework中基于角色的安全功能。

相关组织网站
OASIS WS – Security网页
W3C WS – Security网页
RSA公司网站
相关文章
网页发展的未来 – XHTML 2.0
电子商务自动化标准– ebXML
剖析多媒体整合应用技术
XML供应链发展趋势
乙太网路交换器多层次观念及相关功能
comments powered by Disqus
相关讨论
  相关新闻
» 台达推出5G ORAN小型基地台 实现智慧工厂整合AI应用
» 欧洲航太技术展在德国盛大展开,全球吸睛 镭洋推出卫星通讯整合方案,目标抢占庞大的欧洲卫星商机
» 经济部促成3GPP大会来台争话语权 国内外大厂共商5G/6G新一代技术标准
» 经济部支持跨国研发有成 台欧双方分享B5G~6G规划
» 达梭系统收购IQMS扩展3DEXPERIENCE平台


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK84JA1UY2ISTACUKJ
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw