作者:Sanjay Dalal
摘要
B2B信息中交换的数据经常是敏感的,需要保护。安全套接字层(Secure Socket Layer ,SSL)为两个端点之间交换数据的机密性提供了传输层上的保护。
B2B信息中交换的数据经常是敏感的,需要保护。 SSL(安全套接字层)为两个端点之间交换数据的机密性提供传输层上的保护。
然而,这种商业信息有可能要经过许多端点。这使得验证信息的真实性(谁发送了它?)和完整性(它在途中是否改变?)变得十分必要。而且,对这些事实进行中立性的记录十分重要。
BEA WebLogic Integration(http://edocs.bea.com/wli/docs81/)支持使用可扩展标记语言(ebXML)且适用于B2B交易的电子商务协议。ebXML协议推荐使用XML数字签名(XMLDSig)来保证商业信息的真实性和完整性。本文介绍了XMLDSig,并且描述了如何在WebLogic Integration 8.1中将它与ebXML一起使用。
B2B交易中对签名的需求
商业企业比较喜欢采用Internet来交换商业文件,因为与昂贵的、专用的闭环网络相比,这种方式是一种廉价、有效的媒介。使用像Internet这样不安全可靠的媒介给商业交易带来了安全要求。传输层的安全只能在会话层上进行加密、完整性和身份验证。当信息需要经过各种不同的中间服务器时,仅能在两个端点之间提供传输层的安全是不够的。这种情况下,需要在信息层上提供机密性、真实性和完整性。这就要求有一种可互操作的、全球通用的信息签名技术来解决这些问题,比如谁送了信息、信息在传输过程中是否被修改、发送者能否否认发送过它或者接收者能否否认收到它。
本节的其他部分介绍了签名。它描述了签名在法律上的含义,数字签名,以及生成和查证签名的过程。最后,介绍了ebXML环境下的XML数字签名(XMLDSig)。
接下来的其他节分析了XMLDSig,包括ebXML的需求,签署并验证一个ebXML信息的过程,而且提供了在WebLogic Integration中支持和配置XMLDSig的方法。
签名
依照美国律师协会(American Bar Association)的规定,签名不是交易内容的组成部份,而是它的表现或形式。签名的目的如下:
·证据:签名验证签名人签署了被签署的文件。
·形式:签署文件的行为能够使签名人重视签名行为的法律有效性,从而避免不考虑后果的行动。
·核准:在法律或习惯规定的确定环境中,签名表示签名人对文件的正式批准或授权,或者表示签名人希望该文件具有法律效应。
·效率和后续活动:书面文件上签名时常表明签字者清楚交易内容和最终决定,能减少后续交易活动中文件字面意义以外的争执。
数字签名
数字签名是通过加密算法请求信息的私有密钥而生成的一个值。因此它具有完整性、信息鉴定和签名人鉴定的相关属性。
·完整性:在未经授权或意外方式下,数据没有被更改、破坏或丢失。
·信息鉴定:签名确定了签署内容,使得签署内容在签名事件或签名过程未经觉察的情况下难以伪造或改变。
·签名人鉴定:签名表明了签字人的身份。如果未经授权,其他人很难模仿。
生成数字签名
图1描述了签名人执行的数字签名生成过程。
1.对要签名的数据应用散列函数以生成一个摘要。
2.使用加密签名函数将签名人的私有密钥应用于要签名的数据以生成一个数字签名。
3.通过某种关联方式,比如封装(Envelope),将数据和数字签名发送给接收者。
验证数字签名
在收到数据和相应的数字签名之后,接收者执行如图2所示的过程以验证签名。
1.使用当把签名的信息应用于被接收数据以计算一个摘要时所用的同一个散列函数。
2. 通过签名人的公共密钥应用验证函数,以找出收到的签名是否是用签名人的私有密钥生成,并验证计算出的摘要与传输来的接收摘要是否相同。
3.最后,验证签名人的公共密钥。
ebXML信息使用的XML数字签名
ebXML是一个模块化的规范集,它能够使任何规模、位于任何地理位置的企业通过Internet进行交易。ebXML Messaging Service(ebXML-MS)规范定义了一种中立的通讯协议方法,用于在贸易伙伴之间借助某些商业交易电子化地交换商业信息。它定义了特定的包封结构以支持包含附件的商业数据的可靠安全传送。它还在SOAP Envelope内定义了一组命名空间受限的SOAP Header和Body元素扩展,如图3所示。ebXML信息在MIME的多个部分内进行打包,以允许按照带附件的SOAP消息规范将附件包括进来。9
7
3
1
2
3
4
5
6
7
4
8
: