1 引言
雙重簽名可以延伸到保證在任何一個(gè)事務(wù)處理過(guò)程中三方安全地傳輸信息的一種技術(shù),用與三方通信時(shí)的身份認(rèn)證和信息完整性、交易防抵賴的保護(hù)。雙重簽名除了在應(yīng)用范圍可以延伸,擴(kuò)展此技術(shù)的原理可以應(yīng)用到保護(hù)一個(gè)業(yè)務(wù)鏈在處理事務(wù)過(guò)程中多方安全地傳輸信息,用來(lái)保證多方通信時(shí)的身份驗(yàn)證和信息完整性、交易防抵賴的保護(hù)。
經(jīng)過(guò)對(duì)雙重簽名技術(shù)的兩輪擴(kuò)展后本文提出整體簽名技術(shù)(UnitedSignature)。它繼承和發(fā)揚(yáng)雙重簽名技術(shù)的特點(diǎn),適用于如下應(yīng)用情景:現(xiàn)有一個(gè)多方業(yè)務(wù)鏈,由多個(gè)通信方:A,B,C,D,E,…,X,…組成,其中A為業(yè)務(wù)發(fā)起方,這個(gè)業(yè)務(wù)發(fā)起方在處理業(yè)務(wù)時(shí)需要提供給其它各方信息,這些信息組成一個(gè)信息流,信息流中包括A需要提供給B的敏感信息一一>Info(A-B),提供給C的敏感信息一一>Info(A-C),提供給D相應(yīng)的敏感信息一一>Tnfo(A-D),提供給E相應(yīng)的敏感信息一一>Info(A-E),等等。在這個(gè)業(yè)務(wù)鏈的模型如下圖:
2基于整體簽名的多方通信安全模型
本文采用數(shù)字信封技術(shù)對(duì)所要發(fā)送給各業(yè)務(wù)方的敏感信息分別加密以保證這些信息的機(jī)密性,此安全信道的工作過(guò)程如下:
2.1A端發(fā)出業(yè)務(wù)請(qǐng)求,產(chǎn)生發(fā)送給參與業(yè)務(wù)的B, C, D, EX,…的敏感信息,記為Tnfo(A-B) , Tnfo(A-C) , Tnfo (A-D) , Tnfo(A-E) ,…、Info(A-X) ,…,并且對(duì)這些敏感信息進(jìn)行安全處理。
2.2信息的發(fā)送
各方所得到的敏感信息可由A方直接發(fā)送,也可以是它的業(yè)務(wù)上家轉(zhuǎn)發(fā)。
2.3信息的解密及驗(yàn)證
3 XML整體簽名技術(shù)
3.1XML整體簽名技術(shù)的特點(diǎn)
XML整體簽名技術(shù)包括兩個(gè)方面:將整體簽名技術(shù)應(yīng)用于保護(hù)XML數(shù)據(jù)的安全,以及用XML來(lái)作為整體簽名加密技術(shù)的數(shù)據(jù)傳輸和交換的載體。這兩個(gè)方面相互作用,所以要從這兩個(gè)方面來(lái)討論XML整體簽名技術(shù)的特點(diǎn):
3.1.1 將整體簽名技術(shù)應(yīng)用于保護(hù)XML的安全同樣可以發(fā)揮該加密技術(shù)整體簽名、部分驗(yàn)證的技術(shù)特點(diǎn)。業(yè)務(wù)鏈的XML信息發(fā)送方對(duì)所有提供給其他業(yè)務(wù)方的XML敏感數(shù)據(jù)進(jìn)行基于整體簽名技術(shù)的安全處理,而這些接收方可以解密提供給自己那部分XML數(shù)據(jù)密文,并通過(guò)驗(yàn)證整體簽名來(lái)確定所得到的XML數(shù)據(jù)明文的數(shù)據(jù)確認(rèn)性、完整性和不可否認(rèn)性,這樣可以增強(qiáng)XML業(yè)務(wù)鏈的業(yè)務(wù)處理效率,并且使得消息的發(fā)送方只需要和其中某個(gè)特定的上游業(yè)務(wù)方交互,而無(wú)須考慮這些上游業(yè)務(wù)方之間的交互,因?yàn)樾畔⒖梢曰ハ噢D(zhuǎn)發(fā)并目_轉(zhuǎn)發(fā)過(guò)程是安全的,而且能夠排除多次轉(zhuǎn)發(fā)過(guò)程中的業(yè)務(wù)處理錯(cuò)位的可能性。
3.1.2 XML是一種用來(lái)描述數(shù)據(jù)的標(biāo)記語(yǔ)言,具有對(duì)數(shù)據(jù)進(jìn)行統(tǒng)一描述的強(qiáng)大功能;XML語(yǔ)言具有平臺(tái)無(wú)關(guān)性的特點(diǎn),可以摒棄由于通信各方的平臺(tái)異構(gòu)所帶來(lái)的不良影響;XML語(yǔ)言自身具有結(jié)構(gòu)化特征,可以在同一個(gè)XML文檔中攜帶所有的信息,減少交互的復(fù)雜度,提高效率;XML語(yǔ)言具有很好的可擴(kuò)展性,使得XML語(yǔ)言非常的靈活。
3.2 XML整體簽名的處理過(guò)程
3.2.1 XML整體簽名的產(chǎn)生
(1)構(gòu)建SubDigest元素(這個(gè)過(guò)程是個(gè)循環(huán)的過(guò)程)
(2)將各個(gè)SubDigest元素放在一起,構(gòu)建SubDigests元素;
(3)構(gòu)建ds:Signature元素;(其中,用ds:Reference元素來(lái)表示需要連接的所有的子摘要和聯(lián)接摘要值;用ds:SignatureValue元素表示整體簽名值);
(4)構(gòu)建UnitedSignature0句ect元素(其中,如果要表示數(shù)據(jù)密文,遵從XML加密規(guī)則來(lái)構(gòu)建EncryptedData元素并替換數(shù)據(jù)對(duì)象明文);
(5) 構(gòu)建UnitedSignature元素。
3.2.2 XML整體簽名的驗(yàn)證
(1) 替換摘要值
a. 從SubDigests元素中通過(guò)SubDigest元素的To屬性值找到本業(yè)務(wù)方應(yīng)處理的那些SubDigest元素。b. 通過(guò)SubDigest元素的DigestInfo子元素的DigestReference元素得到被計(jì)算摘要的數(shù)據(jù)對(duì)象。其間,要通過(guò)DigestReference的URI屬性表示的數(shù)據(jù)對(duì)象引用和子元素ds:Transforms元素表示的轉(zhuǎn)換列表得到目標(biāo)數(shù)據(jù)對(duì)象(若有解密轉(zhuǎn)換,需要對(duì)EncryptedData元素解密)。c. 根據(jù):Digest元素所給出的規(guī)范化算法規(guī)范化上面所得的數(shù)據(jù)對(duì)象,并根據(jù)Digest元素給出的摘要算法計(jì)算規(guī)范化后的數(shù)據(jù)對(duì)象的摘要值。d. 用此摘要值替換DigestValue元素的內(nèi)容。
(2) 驗(yàn)證ds:Signaure元素
以上討論了XML整體簽名的處理規(guī)則,包括XML整體簽名文檔的產(chǎn)生與驗(yàn)證。
處理規(guī)則中要涉及到XML加密/解密和XML簽名/驗(yàn)證,這些過(guò)程的處理規(guī)則符合W3C XML加密規(guī)范和XML簽名規(guī)范。
4 系統(tǒng)的功能結(jié)構(gòu)
5XML加密簽名層
5.1數(shù)據(jù)對(duì)象讀取模塊
在XML整體簽名過(guò)程中,獲取數(shù)據(jù)對(duì)象的要求貫穿整個(gè)處理過(guò)程的始終。其中,處理子摘要信息時(shí)對(duì)DigestReference元素進(jìn)行處理從而讀取被計(jì)算摘要數(shù)據(jù)對(duì)象、處理簽名信息時(shí)對(duì)Reference元素進(jìn)行處理從而讀取子摘要連接值的數(shù)據(jù)對(duì)象、處理加密信息時(shí)對(duì)CipherReference元素進(jìn)行處理從而讀取密文數(shù)據(jù)對(duì)象,這些都是XML整體簽名中數(shù)據(jù)對(duì)象讀取的典型,分為兩個(gè)步驟:對(duì)URI引用屬性的處理和對(duì)Transforms轉(zhuǎn)換列表的處理,這涵蓋了XML整體簽名中其它情況的數(shù)據(jù)對(duì)象讀取時(shí)要處理URI引用屬性的要求,又有需要處理Transforms列表的要求。
5.2XML加密處理模塊
XML加密/解密處理過(guò)程中涉及到三個(gè)角色:應(yīng)用程序--提出加密實(shí)現(xiàn)的請(qǐng)求,并提供加密/解密處理所必需的數(shù)據(jù)和變量;加密器--XML文檔加密的實(shí)現(xiàn);解密器--XML加密文檔解密的實(shí)現(xiàn)。
W3C加密規(guī)范所描述的XML加密的處理過(guò)程如下:(1)選擇加密的算法;(2)獲取并表示密鑰;(3)加密數(shù)據(jù);(4)構(gòu)建EncryptedType(EncryptedData或者EncryptedKey)元素;(5)處理EncryptedData元素。
6 總結(jié)
本文在對(duì)現(xiàn)有的XML安全規(guī)范做了分析研究后,針對(duì)基于XML網(wǎng)絡(luò)通信技術(shù)的業(yè)務(wù)鏈的多方通信過(guò)程中XML數(shù)據(jù)安全問(wèn)題,提出了一種XML安全技術(shù)一一XML整體簽名技術(shù),并圍繞實(shí)現(xiàn)XML整體簽名這一目的,在分析了XML整體簽名、XML簽名規(guī)范和XML加密規(guī)范這三者關(guān)系的基礎(chǔ)上設(shè)計(jì)了XML的多方通信安全系統(tǒng),實(shí)現(xiàn)了XML基本加密簽名和XML整體簽名。
作者:錢超 來(lái)源:中國(guó)新技術(shù)新產(chǎn)品