基于XML的多方数据通信安全模型研究
1 引言
双重签名可以延伸到保证在任何一个事务处理过程中三方安全地传输信息的一种技术,用与三方通信时的身份认证和信息完整性、交易防抵赖的保护。双重签名除了在应用范围可以延伸,扩展此技术的原理可以应用到保护一个业务链在处理事务过程中多方安全地传输信息,用来保证多方通信时的身份验证和信息完整性、交易防抵赖的保护。
经过对双重签名技术的两轮扩展后本文提出整体签名技术(UnitedSignature)。它继承和发扬双重签名技术的特点,适用于如下应用情景:现有一个多方业务链,由多个通信方:A,B,C,D,E,…,X,…组成,其中A为业务发起方,这个业务发起方在处理业务时需要提供给其它各方信息,这些信息组成一个信息流,信息流中包括A需要提供给B的敏感信息一一>Info(A-B),提供给C的敏感信息一一>Info(A-C),提供给D相应的敏感信息一一>Tnfo(A-D),提供给E相应的敏感信息一一>Info(A-E),等等。在这个业务链的模型如下图:
2基于整体签名的多方通信安全模型
本文采用数字信封技术对所要发送给各业务方的敏感信息分别加密以保证这些信息的机密性,此安全信道的工作过程如下:
2.1A端发出业务请求,产生发送给参与业务的B, C, D, EX,…的敏感信息,记为Tnfo(A-B) , Tnfo(A-C) , Tnfo (A-D) , Tnfo(A-E) ,…、Info(A-X) ,…,并且对这些敏感信息进行安全处理。
2.2信息的发送
各方所得到的敏感信息可由A方直接发送,也可以是它的业务上家转发。
2.3信息的解密及验证
3 XML整体签名技术
3.1XML整体签名技术的特点
XML整体签名技术包括两个方面:将整体签名技术应用于保护XML数据的安全,以及用XML来作为整体签名加密技术的数据传输和交换的载体。这两个方面相互作用,所以要从这两个方面来讨论XML整体签名技术的特点:
3.1.1 将整体签名技术应用于保护XML的安全同样可以发挥该加密技术整体签名、部分验证的技术特点。业务链的XML信息发送方对所有提供给其他业务方的XML敏感数据进行基于整体签名技术的安全处理,而这些接收方可以解密提供给自己那部分XML数据密文,并通过验证整体签名来确定所得到的XML数据明文的数据确认性、完整性和不可否认性,这样可以增强XML业务链的业务处理效率,并且使得消息的发送方只需要和其中某个特定的上游业务方交互,而无须考虑这些上游业务方之间的交互,因为信息可以互相转发并目_转发过程是安全的,而且能够排除多次转发过程中的业务处理错位的可能性。
3.1.2 XML是一种用来描述数据的标记语言,具有对数据进行统一描述的强大功能;XML语言具有平台无关性的特点,可以摒弃由于通信各方的平台异构所带来的不良影响;XML语言自身具有结构化特征,可以在同一个XML文档中携带所有的信息,减少交互的复杂度,提高效率;XML语言具有很好的可扩展性,使得XML语言非常的灵活。
3.2 XML整体签名的处理过程
3.2.1 XML整体签名的产生
(1)构建SubDigest元素(这个过程是个循环的过程)
(2)将各个SubDigest元素放在一起,构建SubDigests元素;
(3)构建ds:Signature元素;(其中,用ds:Reference元素来表示需要连接的所有的子摘要和联接摘要值;用ds:SignatureValue元素表示整体签名值);
(4)构建UnitedSignature0句ect元素(其中,如果要表示数据密文,遵从XML加密规则来构建EncryptedData元素并替换数据对象明文);
(5) 构建UnitedSignature元素。
3.2.2 XML整体签名的验证
(1) 替换摘要值
a. 从SubDigests元素中通过SubDigest元素的To属性值找到本业务方应处理的那些SubDigest元素。b. 通过SubDigest元素的DigestInfo子元素的DigestReference元素得到被计算摘要的数据对象。其间,要通过DigestReference的URI属性表示的数据对象引用和子元素ds:Transforms元素表示的转换列表得到目标数据对象(若有解密转换,需要对EncryptedData元素解密)。c. 根据:Digest元素所给出的规范化算法规范化上面所得的数据对象,并根据Digest元素给出的摘要算法计算规范化后的数据对象的摘要值。d. 用此摘要值替换DigestValue元素的内容。
(2) 验证ds:Signaure元素
以上讨论了XML整体签名的处理规则,包括XML整体签名文档的产生与验证。
处理规则中要涉及到XML加密/解密和XML签名/验证,这些过程的处理规则符合W3C XML加密规范和XML签名规范。
4 系统的功能结构
5XML加密签名层
5.1数据对象读取模块
在XML整体签名过程中,获取数据对象的要求贯穿整个处理过程的始终。其中,处理子摘要信息时对DigestReference元素进行处理从而读取被计算摘要数据对象、处理签名信息时对Reference元素进行处理从而读取子摘要连接
- 什么是XML技术与数据库的发展(05-13)
- DB2 9实例 完美诠释混合型数据库优势(05-15)
- 基于WEB服务的异构数据库集成中间件(05-25)
- 换个角度解决内容管理的问题(05-26)
- 使用IBM DB2 XML 验证技术(06-02)
- 利用Oracle9i XML DB解决复杂编码问题(06-12)