三、基于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=
"[url=http://www.w3.org/2001/10/xml-exc-c14n]http://www.w3.org/2001/10/xml-exc-c14n#"/'>http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod
Algorithm=
"[url=http://www.w3.org/2000/09/xmldsig]http://www.w3.org/2000/09/xmldsig#hmac-sha1"/'>http://www.w3.org/2000/09/xmldsig#hmac-sha1"/>
<ds:Reference URI="#MsgBody">
<ds:DigestMethod
Algorithm=
"[url=http://www.w3.org/2000/09/xmldsig]http://www.w3.org/2000/09/xmldsig#sha1"/'>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的标准来对这些服务进行查询和访问。