陳 樺,楊 威,劉寶龍
(西安工業大學 計算機科學與工程學院,陜西 西安 710021)
細粒度XML數字簽名的上下文參考完整性研究
陳 樺,楊 威,劉寶龍
(西安工業大學 計算機科學與工程學院,陜西 西安 710021)
針對XML簽名元素的上下文關聯信息保護缺失的問題,文中提出了簽名元素的上下文參考完整性,建立了簽名元素的上下文關聯元素的獲取規則,設計了上下文關聯元素的獲取算法以及上下文參考完整性的驗證方案。研究結果表明:基于文中的獲取規則及算法,可實現簽名元素的上下文關聯元素的自動獲取,進而保護上下文關聯元素的完整性,加強XML簽名元素原始語義的保護。上下文參考完整性驗證方案為有效地檢測XML重寫攻擊提供了理論基礎。
簽名元素;原始語義;上下文關聯元素;上下文參考完整性;語義相關
細粒度的XML數字簽名中,除了針對修改簽名元素自身的攻擊行為,還可以通過修改簽名元素的上下文關聯元素來改變簽名元素的原始語義,進而實現攻擊目的。而且,這種利用簽名元素原始語義保護缺失的攻擊行為,已有的攻擊檢測方案[1-5]并不能檢測到。為此,文中提出了簽名元素的上下文參考完整性。通過保護簽名元素的上下文關聯元素的完整性,來保護簽名元素和上下文關聯元素之間的語義關聯關系,加強了細粒度中XML數字簽名原始語義的保護,提高了XML數字簽名的安全性以及針對XML重寫攻擊的檢測能力,增強了Web服務的安全性。
定義1:XML文檔樹。
XML文檔通常被轉換為一棵有根的、帶標簽的樹。XML元素轉換為樹中的節點,每個節點都有一個標簽。如果一個XML節點有子節點,則稱此XML節點為內部節點;否則,稱其為葉子節點。
根據XML節點標簽的語義及節點之間的關系,XML樹中的節點可分為屬性節點、實體節點和連接節點[6-7]。屬性節點表示現實世界中實體的某一屬性,其子節點為葉子節點。實體節點表示現實世界中的實體,并且具有相同標簽的實體節點對應于現實世界中具有相同類型的實體,其子節點為屬性節點、實體節點或連接節點。連接節點用于將一些緊密聯系的節點包裝起來或將一些類似的節點聚合起來,其子節點為實體節點或屬性節點。XML樹實際上是由現實世界中的實體、屬性和屬性值抽象而來的實體節點、屬性節點以及屬性值對應的葉子節點構成的具有關聯關系的節點集合。
觀察圖1中的XML文檔樹,編號為2,3的實體節點分別對應于現實世界中的issue實體;編號為4,7的屬性節點分別表示出版物的volume屬性;編號為6,9,17的連接節點用于將一組相同類型的節點聚合起來。

圖1 XML文檔樹實例
定義2:語義清晰的XML文檔[8-9]。
語義清晰的XML文檔是指轉換生成的XML樹中,任意一個節點的標簽都不與其祖先節點的標簽重名;具有相同標簽的不同實體節點具有相同的實體類型,并且位于同一層次上。如圖1中的節點2,3都表示issue實體;節點10,11,12,13都表示article實體。
定義3:最低層公共祖先[10]。
令n1,n2,…,nk為XML文檔T中的節點。如果對任意的ni,v是ni(1≤i≤k)的祖先節點,而且不存在另外一個節點u,u是的v后裔,且u是n1,n2,…,nk的祖先節點,則稱v是n1,n2,…,nk的最低層公共祖先,簡稱為LCA,記為lca(n1,n2,…,nk)。
定義4:關系樹[11]。
令T為一棵XML文檔樹,n1和n2為T中的兩個節點,且n為n1和n2的最低層公共祖先,Tn為以節點n為根的T的子樹。如果刪除Tn中除n1和n2本身以及n1或n2的祖先節點以外的所有節點,稱這樣的子樹為n1和n2的關系樹,表示為T|n1,n2。
定義5:語義互連關系及語義相關概念[12-13]。
令T為一棵XML文檔樹,n和n0為T中的兩個節點。n和n0的最短無向路徑由n和n0的最低層公共祖先分別到n和n0的路徑組成,并將這兩條路徑組成的樹表示為關系樹T|n,n0。T|n,n0描述了節點n和n0之間的關系。當n和n0滿足以下兩條件之一時,稱n和n0是語義互連的:
(1)T|n,n0中不存在兩個具有相同標簽的不同節點;
(2)T|n,n0中唯一具有相同標簽的兩個不同節點為n和n0本身。
T|n,n0中,如果節點n和n0是語義互連的,那么它們就是語義相關的;否則,就是語義無關的。

細粒度的XML數字簽名中,由于XML文檔的結構特點,簽名元素的完整語義相關聯于同一文檔中其他的元素,文中將這種元素之間的語義關聯稱為上下文關聯,并將與簽名元素語義相關的元素稱為上下文關聯元素。如果簽名元素的上下文關聯元素改變了,必然會導致簽名元素原始語義的改變。這樣,XML數字簽名就會失去它原有的意義。為了加強細粒度中XML數字簽名的原始語義保護,文中構建了元素的上下文參考完整性,用于定義元素之間的上下文關聯,并對這種上下文關聯關系進行保護。
假設T為簽名文檔中的節點集合,v為T中的簽名元素,結合內容及結構完整性[14-15],簽名元素v的上下文參考完整性CRI(v)定義為:
CRI(v)=h(h(w.content‖w.attribute)‖ (h(path(r,w))))
其中,w為v的上下文關聯元素,且w∈T;h是一個抗沖突的單向Hash算法。
w.content=w.name∪w.value包含了元素的標簽名和元素值,w.attribute為元素的屬性,通過h(w.content||w.attribute)保護w的內容完整性。path(r,w)為根節點到當前節點w的絕對路徑字符串。通過h(path(r,w)),保護w的結構完整性。將w的內容及結構完整性融合在一起,就構成了v的上下文參考完整性。
上下文參考完整性通過保護XML簽名元素的上下文關聯元素的內容及結構完整性,來保護簽名元素和上下文關聯元素之間的語義關聯關系,進而加強簽名元素原始語義的保護。只有獲取了上下文關聯元素,才能去保護其完整性。
3.1 上下文關聯元素的獲取規則
XML簽名元素的上下文關聯元素就是指同一XML文檔中與簽名元素在語義上相關的元素。對于一個XML文檔,人們可以從常識上直接識別出簽名元素的語義相關元素。但是,由于XML文檔的語義隱式的表達在文檔的標簽和結構中,這導致計算機并不能直接從XML文檔中識別出簽名元素的語義相關元素。
為此,文中基于語義清晰的XML文檔、節點之間的語義互連關系及語義相關概念,建立了簽名元素的上下文關聯元素的獲取規則,使計算機可以從XML文檔的大量元素中自動獲取簽名元素的語義相關元素,進而保護上下文關聯元素的內容及結構完整性。
上下文關聯元素的獲取規則如下:
令T為一棵XML文檔樹,n0為T中的簽名節點,n為T中的其他任意節點。當n0和n的關系樹T|n0,n滿足以下兩條件之一時,節點n0和n就是語義相關的,并稱n為n0的上下文關聯元素:
(1)T|n0,n中同一層次上不存在兩個具有相同標簽的不同實體節點。
(2)T|n0,n中同一層次上唯一具有相同標簽的兩個不同實體節點為n0和n本身。
在節點n0和n的關系樹中,如果n0和n的同一層次上的祖先節點中存在兩個具有相同標簽的實體節點,那么n0和n就是分別屬于兩個具有相同類型的不同實體。因此,它們在語義上是不相關的;否則,它們是語義相關的。
獲取規則基于XML樹中節點標簽的語義,根據現實世界中實體或屬性之間的關聯關系,進而確定XML樹中由現實世界中實體或屬性抽象而來的實體節點或屬性節點之間的關聯關系。由此,依據節點之間的語義關聯關系,從XML文檔中篩選出人們從常識上認為與簽名節點在語義上相關的實體節點或屬性節點。
3.2 上下文關聯元素的獲取算法
XML文檔可能包含大量的XML節點,不可能將所有的節點都與簽名節點進行語義相關的判定。而且,由于XML文檔的樹形結構特點,所有的節點都判定一次也完全沒有必要。如果簽名節點或其祖先節點和某個節點的祖先節點是語義無關的,那么簽名節點和某個節點就是語義無關的;否則,語義相關。
文中依據上下文關聯元素的獲取規則,并結合XML文檔的層次結構特點,設計了一種上下文關聯元素的獲取算法。算法如下:
令T為一棵XML文檔樹中的節點集合,n0為T中的簽名節點,ni(1≤i≤k)為n0的祖先節點,其中nk為根節點。Φ(ni)(0≤i (1)從n0的兄弟節點Φ(n0)開始,判定n0與Φ(n0)的語義相關性,依據獲取規則,它們是語義相關的。因此,將Φ(n0)添加到Σ中。 (2)獲取n0的父節點n1,判定n1與Φ(n1)是否具有相同的標簽,從左向右依次進行比較,將和n1標簽不同的Φ(n1)添加到Σ中。 (3)獲取n1的父節點n2,判定n2與Φ(n2)是否具有相同的標簽,從左向右依次進行比較,將和n2標簽不同的Φ(n2)添加到Σ中。 (4)如此進行下去,直到獲取的父節點為根節點nk,算法結束。此時,Σ即為簽名節點n0的上下文關聯節點集。 在上述算法中,如果n0的祖先節點ni(1≤i 上下文參考完整性提供了簽名元素和上下文關聯元素之間的一個關聯。在簽名的有效性驗證時,如果簽名元素的上下文關聯元素改變了,上下文參考完整性驗證失敗,將導致簽名的有效性驗證失敗。 在獲取上下文關聯元素后,簽名元素v的上下文參考完整性CRI(v)表示為: CRI(v)=CI(w)||ST(w)=h(w.content‖w. attribute)‖h(path(r,w)) 其中,w為上下文關聯元素;CI(w)為w內容的HASH結果,表示w的內容完整性;ST(w)為w結構信息的HASH結果,表示w的結構完整性。 為了驗證簽名元素的上下文參考完整性,文中提出以下定理。 在簽名的有效性驗證時,該定理可用于檢查簽名元素的上下文關聯元素的變化。如果上下文關聯元素發生了變化,則簽名的原始語義可能被改變,那么簽名的有效性驗證失敗。也就是說,即使簽名元素自身未發生變化,但是,如果上下文關聯元素發生變化(內容或結構變化),那么簽名依舊被認為是無效的。 文中獲取規則的建立以及獲取算法的設計實現了簽名元素的上下文關聯元素的自動獲取,并結合內容及結構的完整性,實現了簽名元素的上下文參考完整性,從而將簽名元素和其語義相關的上下文關聯元素進行了關聯,進而保護了簽名元素和上下文關聯元素之間的語義關聯關系,加強了細粒度中XML數字簽名的原始語義保護,提高了XML數字簽名的安全性。上下文參考完整性的驗證則增強了簽名的有效性驗證中針對XML重寫攻擊的檢測能力。 [1]MclntoshM,AustelP.XMLsignatureelementwrappingattacksandcountermeasures[C]//Proceedingsofthe2005ACMworkshoponsecurewebservices.Fairfax,USA:ACMPress,2005:20-27. [2]RahamanMA,MartenR,SchaadA.Aninlineapproachforsecuresoaprequestsandearlyvalidation[C]//ProceedingsoftheOpenWebApplicationSecurityProjectEuropeconference(OWASP).Leuven,Belgium:[s.n.],2006:1-15. [3]GajekS,LiaoLJ,SchwenkJ.Breakingandfixingtheinlineapproach[C]//Proceedingsofthe2007ACMworkshoponsecurewebservices.NewYork,NY,USA:ACM,2007:37-43. [4]GajekS,JensenM,SchwenkJ.Analysisofsignaturewrappingattacksandcountermeasures[C]//ProcofIEEEinternationalconferenceonwebservices.[s.l.]:IEEE,2009:575-582. [5]BarhoomTS,RasheedRSK.PositionofsignedelementforSOAPmessageintegrity[J].InternationalJournalofComputerInformationSystems,2011,2(1):21-25. [6]LiuZ,ChenY.IdentifyingmeaningfulreturninformationforXMLkeywordsearch[C]//Proceedingsofthe2007ACMSIGMODinternationalconferenceonmanagementofdata.NewYork,NY,USA:ACM,2007:329-340. [7]NguyenK,CaoJ.ExploitkeywordquerysemanticsandstructureofdataforeffectiveXMLkeywordsearch[C]//Proceedingsofthe21stAustralasianconferenceondatabase.Brisbane,Australia:[s.n.],2010:133-140. [8] 李新葉,苑津莎.一種快速的XML語義檢索算法[J].電子學報,2007,35(11):2220-2225. [9] 李新葉.基于XML文檔結構語義的信息檢索方法與應用研究[D].保定:華北電力大學,2008. [10]LiY,YuC,JagadishHV.Schema-freeXQuery[C]//ProceedingsofVLDBconference.Toronton,Canada:[s.n.],2004:72-83. [11]CohenS,KanzaY,SagivY.GeneratingrelationsfromXMLdocuments[C]//Proceedingsof9thinternationalconferenceondatabasetheory.Siena,Italy:[s.n.],2003. [12]CohenS,MamouJ,KanzaY,etal.XSEarch:asemanticsearchengineforXML[C]//Proceedingsofthe29thVLDBconference.Berlin,Germany:[s.n.],2003. [13]CohenS,KanzaY,SagivY.InterconnectionsemanticsforkeywordsearchinXML[C]//CIKM’05.Bremen,Germany:[s.n.],2005:389-396. [14]ChenH,LiuN,LiuBL,etal.ResearchonXMLdatastructural-integrityinXMLsignature[J].AppliedMechanics&Materials,2014,496-500:1844-1848. [15]LiuBL,LuJ,YipJ.XMLdataintegritybasedonconcatenatedhashfunction[J].InternationalJournalofComputerScience&InformationSecurity,2009,1(1):31-40. Research on Context-referential Integrity in Fine-grained XML Digital Signature CHEN Hua,YANG Wei,LIU Bao-long (School of Computer Science and Engineering,Xi’an Technological University,Xi’an 710021,China) For the lack of protection of context-sensitive information of signature element,context-referential integrity of signature element is proposed in this paper.It builds a rule to get the context-sensitive elements of signature element and designs an acquisition algorithm of context-sensitive elements and a verification scheme of context-referential integrity.The results show that based on the rule and algorithm,the context-sensitive elements of signature element can be screened out automatically,thereby protecting the integrity of the context-sensitive elements and strengthening the protection of original semantics of signature element.Context-referential integrity verification scheme lays a theoretical foundation for the effective detection of XML rewriting attacks. signature element;original semantics;context-sensitive element;context-referential integrity;semantic relation 2015-09-08 2015-12-11 時間:2016-05-25 教育部留學歸國人員科研啟動金資助項目(2013693);面向重大裝備和能源化工的制造業信息化綜合應用示范項目(2012BAF12B04);陜西省教育專項科研計劃項目(15KJ1350) 陳 樺(1962-),男,教授,博士,研究方向為XML數據安全技術。 http://www.cnki.net/kcms/detail/61.1450.TP.20160525.1706.022.html TP309.2 A 1673-629X(2016)07-0100-04 10.3969/j.issn.1673-629X.2016.07.0214 上下文參考完整性的驗證




5 結束語