一、引言
电子商务(Electronic Commerce)是在Internet开放的网络环境下,基于浏览器/服务器应用方式,实现消费者的网上购物、商户之间的网上交易和在线电子支付的一种新型的商业运营模式。Web Service 是构筑在XML与Soap技术之上的一种典型的异构分布技术。自Web Service技术出现以來,其开放性的标准让各个不同系统间能够互相交换资料。这种良好的开放性使得基于Web Service 构建电子商务系统成为趋势。现阶段推动电子商务面临的最大问题是如何保障电子商务过程中的安全性。由于Internet本身的开放性,使网上交易面临了种种危险,也由此对电子商务提出了相应的安全要求,主要体现在以下几个方面:1.信息保密性。交易中的商务信息有保密的要求。如信用卡的帐号和用户名被人知悉,就可能被盗用,订货和付款的信息被竞争对手获悉,就可能丧失商机。因此在电子商务的信息传播中一般均有加密的要求。
2.交易者身份的确定性。网上交易的双方很可能素昧平生,相隔千里。要使交易成功,首先要能确认对方的身份,对商家而言要考虑客户端不能是骗子,而客户也会担心网上的商店不是一个弄虚作假的黑店。因此能方便而可靠地确认对方身份是交易的前提。
3.不可否认性。由于商情的千变万化,交易一旦达成是不能被否认的。否则必然会损害一方的利益。
4.不可修改性。交易的文件是不可被修改的,如能改动文件内容,那么交易本身便是不可靠的,客户或商家可能会因此而蒙受损失。因此电子交易文件也要能做到不可修改,以保障交易的严肃和公正。
一个典型的Web service设置将会充分利用多种不同的技术、对象模型和编程语言,其中或许会包含简单的Perl脚本和使用C++ 或 Java实现单个Web service,可能还会有建立在J2EE应用程序服务器之上的复杂应用。通过XML与SOAP协议的通用性,可扩展性,Web Service可以实现扩平台的不同应用程序之间的相互通信。但同时,也付出了一定的代价:很难保证这些系统的安全性。因为不同的技术体系、不同的操作系统平台所采用的安全认证技术是不同的,整个系统的安全级别与系统中最脆弱部分的安全级别相同,即安全系统中所谓的“木桶效应”。因此,我们要么避免使用某些技术,要么就对整个系统的安全性进行折衷。因此如何设计安全解决方案成为开发实现基于Web Service集成的电子商务系统必须解决的问题。因此本文提出基于统一安全服务(uniform security )的Web service体系结构。
二、Web Service 统一安全服务体系结构
统一安全服务体系结构的基本想法就是将系统的安全体系结构的复杂性迁移到所谓的统一安全服务层,因而使得系统的其他部分无须承担任何的安全职责。
在统一安全体系结构中,由一个单独的服务器来实现统一安全服务,在此服务器上可以找到所有的安全算法,该服务器是对所定义域进行鉴别的唯一场所。因此,统一安全的鉴别/注册方法还有另外一个优点:即便一个用户在一个特定域中同许多不同的安全元素相互作用,它只需要进行一次登录。统一安全服务其本身可能就是一个Web service,这样可以使得系统中其它子系统可以很方便的进行安全功能的集成。
被鉴别方首先调用统一安全服务来请求得到一个能够在特定域中标识其自身的身份ID。为了能够获得这个身份ID,被鉴别的一方首先必须提供正确的鉴别资格信息。鉴别资格信息具有多种不同的形式:例如,可以是简单的用户名/口令或者证书,但是也可以采用别的方法。统一安全服务使用底层潜在的安全体系结构对用户的资格信息进行验证,然后才赋予用户一个身份ID。
具体过程如下:
1:被鉴别方向统一安全服务发出登陆请求
2:统一安全服务返回被鉴别方身份ID
3:被鉴别方将应用请求与身份ID发往应用服务器
4:应用服务器将身份ID发往统一安全服务进行认证以及判权
5:统一安全服务返回认证以及判权结果
6:应用服务器根据返回的信息做出特定回应。
||||||三、基于WS-Security实现传输信息安全
电子商务环境中,除了对交易者的身份信息需要认证和判权外,还对传输的内容的绝密性、完整性、不可否认性有很高的要求。由于web service 传输的是基于Soap协议的XML文本消息,为保证传输信息的绝密性、完整性、不可否认性,可以利用Web service security扩展机制来实现。
WS-Security 主要是一个用于基于 XML 的安全性元数据容器的规范。业界已经对网络传输信息安全提出了许多解决方案。例如 Kerberos 和 X.509 用于身份验证;X.509 还使用现有的 PKI 进行密钥管理;XML 加密和 XML 签名描述了 XML 消息内容的加密和签名方法;XML 标准描述了为签名和加密而准备 XML 的方法。WS-Security通过在现有规范中添加了一个架构,用于将这些机制嵌入到 SOAP 消息中。实现了一种与传输无关的安全扩展方式。
WS-Security 定义了一个用于携带安全性相关数据的 SOAP 标头元素。如果使用 XML 签名,此标头可以包含由 XML 签名定义的信息,其中包括消息的签名方法、使用的密钥以及得出的签名值。同样,如果消息中的某个元素被加密,则 WS-Security 标头中还可以包含加密信息(例如由 XML 加密定义的加密信息)。WS-Security 并不指定签名或加密的格式,而是指定如何在 SOAP 消息中嵌入由其他规范定义的安全性信息。
在基于WS-Security 扩展的Web Service中,Soap传输的不再是简单的XML文本消息,而是实现了WS-Security扩展的XML文件,身份证书作为XML header中的一个属性被用户私钥加密,传输的XML BODY内容也进行了数字签名。应用端对客户传输来的信息根据客户用户解密进行验证,这样就保证了信息来源的准确以及信息完整性、保密性。下面就是一个使用了WS-Security扩展的SOAP消息,里面使用了用户令牌与数字签名。
<?xml version="1.0" encoding="utf-8"?>
<S:Envelope xmlns:S="http://www.w3.org/2001/12/soap-envelope"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<S:Header>
<m:path xmlns:m="http://schemas.xmlsoap.org/rp/">
<m:action>http://fabrikam123.com/getQuote</m:action>
<m:to>http://fabrikam123.com/stocks</m:to>
<m:id>uuid:84b9f5d0-33fb-4a81-b02b-5b760641c1d6</m:id>
</m:path>
<wsse:Security
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext">
<wsse:UsernameToken Id="MyID">
<wsse:Username>Zoe</wsse:Username>
</wsse:UsernameToken>
<ds:Signature>
<ds:SignedInfo>
<ds:CanonicalizationMethod
Algorithm=
"http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod
Algorithm=
"http://www.w3.org/2000/09/xmldsig#hmac-sha1"/>
<ds:Reference URI="#MsgBody">
<ds:DigestMethod
Algorithm=
"http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>LyLsF0Pi4wPU...</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>DJbchm5gK...</ds:SignatureValue>
<ds:KeyInfo>
<wsse:SecurityTokenReference>
<wsse:Reference URI="#MyID"/>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
</wsse:Security>
</S:Header>
<S:Body Id="MsgBody">
<tru:StockSymbol xmlns:tru="http://fabrikam123.com/payloads">
QQQ
</tru:StockSymbol>
</S:Body>
</S:Envelope>
其中标记<wsse:UsernameToken > 与</wsse:UsernameToken > 间的部分为用户令牌,标记<ds:Signature>与</ds:Signature>间的部分为数字签名。
四、系统性能分析
基于统一安全服务的Web service 电子商务解决方案由以下优点:
1.由于关于安全方面的处理机制全部集中在统一服务层,电子商务系统中的其它实体就没有必要单独实现所有的安全功能和机制。因此整个系统安全策略的制定、实施与维护变得很简单。
2.SOAP对于统一安全服务的接口使Web Service统一安全服务体系结构变得非常通用。统一安全服务本身也是一个Web service,使得系统中的其它部分可以很方便的将统一安全服务集成到一起。
3.由于不必到处传递安全信用信息,统一安全服务增强了整个系统的安全性。统一安全服务层成为唯一可以接受安全信用信息的场所,所以就可以在一个广阔的范围里进行鉴别(超出特定的安全域),而安全信用信息却仍然位于特定的安全域中。
小知识:Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。可以用任何你喜欢的语言,不同的平台中编写Web service ,而通过Web service的标准来对这些服务进行查询和访问。
小知识:Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。可以用任何你喜欢的语言,不同的平台中编写Web service ,而通过Web service的标准来对这些服务进行查询和访问。