基于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.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元素進行處理從而讀取子摘要連接值的數據對象、處理加密信息時對CipherReference元素進行處理從而讀取密文數據對象,這些都是XML整體簽名中數據對象讀取的典型,分為兩個步驟:對URI引用屬性的處理和對Transforms轉換列表的處理,這涵蓋了XML整體簽名中其它情況的數據對象讀取時要處理URI引用屬性的要求,又有需要處理Transforms列表的要求。
5.2XML加密處理模塊
XML加密/解密處理過程中涉及到三個角色:應用程序--提出加密實現的請求,并提供加密/解密處理所必需的數據和變量;加密器--XML文檔加密的實現;解密器--XML加密文檔解密的實現。
W3C加密規范所描述的XML加密的處理過程如下:(1)選擇加密的算法;(2)獲取并表示密鑰;(3)加密數據;(4)構建EncryptedType(EncryptedData或者EncryptedKey)元素;(5)處理EncryptedData元素。
6 總結
本文在對現有的XML安全規范做了分析研究后,針對基于XML網絡通信技術的業務鏈的多方通信過程中XML數據安全問題,提出了一種XML安全技術一一XML整體簽名技術,并圍繞實現XML整體簽名這一目的,在分析了XML整體簽名、XML簽名規范和XML加密規范這三者關系的基礎上設計了XML的多方通信安全系統,實現了XML基本加密簽名和XML整體簽名。
評論