999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Web services的XML引擎安全模型研究

2008-12-31 00:00:00周明天
計算機應用研究 2008年7期

摘 要: Web services提供軟件接口,實現Internet上服務的調用。它以XML為基礎,使用了基于XML語言的協議來描述要執行的操作或要與另一個Web服務交換的數據。SOAP是Web services的傳輸層協議,所有的SOAP消息均使用XML編碼。XML engine是建立在Web service上的一種技術。在整個Web服務應用中,XML處于消息層的位置,而XML engine則針對Web服務應用中的XML進行操作,所以稱做消息層網關。在XML engine平臺上,通過動態共享對象(DSO)機制,將加密、解密、簽名、驗證、過濾等模塊動態加載到Apache服務器上,實現對XML信息的消息層過濾,保證了Web services的安全。此技術可以應用于在一切基于XML的數據過濾,并不限于對SOAP包的過濾。

關鍵詞:網絡服務;可擴展標記語言;XML引擎;過濾

中圖分類號:TP309 文獻標志碼:A

文章編號:1001-3695(2008)07-2161-03

Research of XML engine security model on Web services

ZHANG Yan,ZHOU Mingtian,SHE Kun

(College of Computer Science, University of Electronic Science Technology of China, Chengdu 610054,China)

Abstract:Web services provide interface access to the software. And the interface realizes the calls of services on the Internet.Web services are based on XML.They make use of XMLbased protocols to describe operations to be performed and data to exchange with one another regardless of location and operating systems.SOAP is a transfer protocol of Web services whose messages have universally adopted XML as the mechanism for encoding data.XML is located at message layer in the whole Web services application. XML engine deals with XML data in the Web services, therefore it is named the message layer gateway.On the XML Engine platform, with the help of DSO mechanism, it can dynamically load the encryption,decryption,digital signature,validation,and filtrtion modules into the Apache server.XML Engine can filter the XML data to make sure the safety of Web services. Meanwhile, it is not only applied to SOAP package,but also to any situation relating to XML filtration.

Key words:Web services;XML(extensible markup languange);XML engine;filter

隨著Internet的普及,網絡應用尤其是電子商務和電子政務開始成為重要的網上活動。Web services即Web服務是目前被電子政務、電子商務、企業級分布式應用所廣泛采用的技術之一。 XML是保證數據可移植性的一種有效可行的技術,它可以實現跨平臺的數據交換,因此被廣泛應用于數據交換,并成為Web service 的基礎。Web services主要利用HTTP和SOAP協議使商業數據在Web傳輸。SOAP在編碼上采用XML進行描述, 如果SOAP包數據在傳輸中缺乏安全措施保護,很容易被竊取,特別是對于安全要求很高的數據,這個問題就更嚴重,如網上購物系統中的用戶賬號、密碼等敏感信息。在網絡傳播的數據中,XML數據量越來越大,由此可知XML應用的范圍很廣。隨著基于XML應用的增多,對XML安全相關的產品需求日益明顯。

基于XML的安全網關平臺——作為XML中間件平臺產品,技術含量高,具有國內領先水平,屬于高附加值產品,它的出現填補了國內相關領域的空白。該領域國外的DataPower公司做得比較成功。

新一代的企業IT架構SOA(面向服務架構)也把XML列為不可缺少的基礎技術,因此, 基于XML的安全網關平臺具有廣闊的市場前景。本文介紹了基于XML的安全網關平臺的整體架構以及設計思想,并介紹了XML的關鍵過濾算法——XMLXPathFilter。

1 Web services與XML引擎

1.1 Web services概述

Web services是一種構建應用程序的普通模型,能在所有支持Internet的操作系統上實施。其主要包括三大部分,即SOAP、WSDL和UDDI。這三部分又分別代表了Web services的三大層次,即傳輸層、描述層和發現層。其中,傳輸層列出了在物理線路上的信息交換標準;描述層用于描述單個或多個服務;發現層用于找到服務。每個層次都有其相應的規范。傳輸層的基本協議是SOAP(simple object access protocol,簡單對象訪問協議),它已包含了傳輸的信息內容和相關操作;描述層是基于WSDL的,其用于定義傳輸層中的各個組件;發現層中使用UDDI來對服務進行注冊和查找。Web services主要利用HTTP和SOAP協議使商業數據在Web傳輸,SOAP通過HTTP調用商業對象執行遠程功能調用,Web用戶能夠使用SOAP和HTTP通過Web調用的方法來調用遠程對象,如圖1所示。

SOAP是一種在分散、分布式環境中進行信息交換的協議,它定義了一種在客戶與服務器之間傳輸信息的機制。在編碼上采用XML進行描述。對于普通的Web services應用,用戶通過瀏覽器直接與Web服務端連接,雙方通過SOAP請求和應答來發送和接收SOAP包,以實現信息的傳遞和交換。如果這些數據缺乏安全措施保護,很容易被竊取;特別是對于安全要求很高的數據,這個問題就更嚴重,如網上購物系統中的用戶賬號、密碼等敏感信息。為了保證Web服務數據的安全傳輸,在客戶端與服務端之間加入XML engine。

1.2 XML engine概述

XML engine以Apache服務器為平臺,動態實現對接收到的XML或SOAP數據包的安全操作,如加密和簽名、信息過濾等,對于非XML格式的數據包則能夠自動轉發或者丟棄。 XML engine平臺能透明地加入到基于Web services典型應用的網絡中,實現特定的功能,而應用及軟件環境只作極小的變化甚至幾乎不用作任何改動。

由于位于SOAP客戶端和服務端的XML engine處理不同,將XML engine也分為XML engine client(EC)和XML engine server(ES),分別與SOAP客戶端和服務端部署在一起,如圖2所示。

XML engine部署和使用的大體流程是:

a)用戶根據已有的XML engine組件情況(如加密、簽名、過濾等)和安全策略,形成安全管理配置。

b)安全管理配置文件被存放在ES中,通過使用配置管理員簽名來保護配置文件的完整性。

c)在每一個session開始時,EC下載對應ES的配置文件,并檢查其簽名,確定安全管理配置文件的完整性,得到安全管理配置。

d)SOAP client發出的XML消息被EC截獲,EC分析該XML消息,并根據安全管理配置進行處理(例如對指定標簽加密、簽名,對指定內容進行過濾),形成新的經過安全處理的XML消息。

e)EC將經過安全處理的XML消息通過公共信道發往ES,如果這時的數據已經根據用戶需求進行加密操作,就可以保證消息的機密性。

f)ES收到EC發來的XML消息,對其中的內容進行逆變換(例如對加密部分解密,對簽名部分進行驗證),如果這時驗證簽名的結果正確,則能夠確定用戶所發的消息是完整的。

g)ES將已經經過還原處理的XML消息(在有的情況下,這時的消息并不完全等同于SOAP client所發出的原始消息,如經過過濾的消息)發往SOAP server。

h)SOAP server按照其原有方式處理SOAP中所包含的應用請求,形成結果消息,發往ES。

i)ES這時執行d)中EC所進行的操作(如加密、簽名、過濾等),對結果消息進行安全處理,并通過公共信道發往EC。

j)EC收到ES發來的結果消息后,執行f)中ES的操作(如解密、驗證等)。如果EC驗證通過,則可保證消息確實是希望的ES發出的。還原結果返回給用戶端的SOAP client,這樣,SOAP client所看到的結果消息與XML engine未部署時相同(在有的安全組件存在時,可能會有不同,比如過濾組件存在時,可能對結果消息進行了過濾)。

在XML engine的設計中,注重了對原有應用的保護:在部署時應用只作很小的修改即可,用戶只需安裝XML engine,并配置安全管理組件。SOAP client發出的SOAP請求是通過代理的形式發往EC的,在瀏覽器作為SOAP client的情況下,配置瀏覽器代理是非常容易的。XML engine服務器具有方便、可配置功能,用戶可以通過BS(瀏覽器)定置過濾的內容、處理方式、加密元素或簽名文檔等,在配置操作時將有用戶身份識別和認證。確保授權合法的管理員才能操作。這也是外界能夠對服務器直接操作的惟一途徑,服務器提供豐富的外部接口。

需要說明的是,EC和ES并不是一一對應的關系,每一個EC都可能與多個ES連接;同樣,每一個ES都可能接收多個EC的連接,這和瀏覽器與Web服務器的關系是相似的。

2 XML engine總體架構

2.1 XML engine總體結構

系統設計中大量采用了設計模式的思想,系統整體架構在設計上考慮到系統性能的穩定性、使用的持久性,以及以后擴展的便捷性、伸縮性、管理的安全性、復用性、可維護性。在參考J2EE中的持久性框架設計模式的基礎上,充分考慮了層設計模式,改進性能和伸縮性設計模式,管理安全的設計模式、復用性、可維護性設計模式的優點,提出了具有持久穩定性、擴展性的系統架構V2C。在此架構中主要包括以下幾個大的層次:

a)連接支持connection agent。客戶端和服務端通過SOAP請求和應答來發送和接收SOAP包,以實現信息的傳遞和交換。筆者主要用connection agent來處理SOAP協議的連接請求。Connection agent按與外部應用的關系分為應用連接(連接應用的客戶端和服務器端)和安全連接(連接XML engine)兩種;按連接方向分為監聽請求和發送請求兩種,前者主要負責監聽遠端的連接請求;后者負責向遠端發送連接請求。

Connection agent處理SOAP協議的連接請求過程如下:

a)監聽客戶端的HTTP連接請求。若有連接請求,則接收連接請求,并發送客戶端連接請求到XML決策器進行請求確認,確認成功,則執行連接請求入隊操作, 采用先來先服務(FCFS)算法,實現連接的順序處理;線程池從隊列中取請求,主要把不同的SOAP請求分配給不同的線程處理,以提高效率。

b)XML格式驅動。它承擔著對XML文檔處理的第一道處理工序,解析XML文檔(即SOAP報文),并提取XML文檔中的數據,組織成樹狀結構;且提供DOM接口,將結果保留在內存中,以便后面的安全模塊進行處理。所有的安全模塊執行完后,基礎平臺再次使用XML格式驅動,重組處理過后的XML文檔,并通過連接發送出去。

c)XML安全功能驅動。

該驅動器向策略倉庫下發中心發送命令請求。當命令請求通過后,通過決策器下發命令字,使策略中心生成現有的Web services應用環境需要的過濾策略,生成后按時間和事件分類存儲在策略倉庫中。連接器connector和安全功能驅動器自動檢測,查看數據倉庫中的策略配置文件需要對數據進行哪些安全檢測(如是否需要進行訪問控制、是否需要PKI基礎設施認證授權、是否需要IPSec安全隧道傳輸、是否是非法入侵或惡意攻擊);同時查看此安全模塊是否已被安裝,若沒有,則安全功能驅動模塊負責安裝驅動。功能驅動器自動把配置文件下載并部署到連接器connector連接的安全功能模塊中,安全功能驅動檢查已經裝入的安全模塊;逐一調用這些模塊,并將已經解析的XML文檔傳給這些模塊,然后發送命令重新啟動安全模塊。

在需要流程控制的模塊時,由流程控制負責模塊中安全功能的使用;不需要流程控制時,安全功能驅動直接調用相應的安全模塊。

d)硬件支持層。服務器提供豐富的接口,比如針對硬件加密機的接口,在加密和簽名操作時調用相關的硬件進行運算,大大提高服務器的數據處理能力。接口還包括對系統功能的可擴展性,只要封裝成特定的模塊,就可以動態插入服務器中。還有硬件加速器accelerator的接口,它采用了改進性能設計模式。作為網絡硬件或通信加速設備,它能以線速(或接近于線速)處理大容量XML通信。如果采用應用服務器軟件來處理這類通信,一般將消耗近80%的服務器處理資源,可見采用硬件加速器的重要性。

2.2 XML engine安全過濾模塊

XML加/解密和簽名/驗證模塊處理過程如下:

a)XML Sec初始化。對加密簽名運算所需要的算法、內存分配、數據結構及全局變量等進行初始化。

b)構造XML加密或簽名模板。按照W3C中相關規范,在原有的XML文檔內容中嵌入相應的加密或簽名元素節點,例如對于簽名是以〈Signature〉為元素名稱以及特定的名字空間為父元素的一系列元素節點的集合,其內容包括指明所使用的密鑰類型、所采用的規范性算法、摘要算法,還包括簽名的密文以及用戶證書(可選)等。在進行具體運算前,首先構造這樣一個不包括摘要值和簽名密文的模板,提供給下一步進行操作。

c)加/解密和簽名驗證運算。這一步將按照上一步所產生的和模板中的指定算法進行具體運算,并將運算結果寫入到模板中相應的位置。

d)內容過濾。本模塊實現基本的內容過濾功能,提供基于標簽名和文本關鍵字過濾的能力。

3 XML engine過濾算法

過濾模塊主要提供以下兩種過濾:

a)基于標簽名的過濾。主要用于對應用功能方面的控制。比如在網上購物應用中,如果不希望用戶訪問諸如軍隊的內容,可以通過設置過濾weapon標簽來控制是否允許武器內容的通過。

b)基于文本關鍵字過濾。主要用于對內容方面的控制。例如,如果不希望出現法輪功的字眼,可以通過設置,過濾該關鍵字。當過濾功能找到目標,處理的方式有多種選擇,目前提供兩種處理方式:(a)替換。對目標數據進行替換,說明已經被過濾。被替換的內容是整個標簽的內容。(b)刪除。刪除目標數據。

其所采用的XMLXPathFilter算法具體如下:

本算法基于XPath表達式和NFA的狀態轉換。XPath 是一種用于尋址XML 文檔內容的語言。通過使用XPath 表達式,可以很容易地標志出XML 文檔中的節點。在本文的研究中,NFA的執行與傳統意義上的NFA不同的是:首先,傳統意義的NFA的目的是在當前狀態,對于一個輸入,找出一個接收狀態即可。本文中必須通過NFA找出與輸入文檔匹配的所有XPath表達式,所以NFA執行過程中必須找出當前狀態對于當前輸入可能轉換的所有狀態。其次,當XML文檔輸入過濾系統時,將解析器產生的XML文檔標記作為NFA的驅動事件。當最后元素產生時,NFA須回退至與最后元素相應的開始元素觸發前的狀態。為此,筆者采用一個NFA運行跟蹤棧(runtime stack)來跟蹤以上NFA的活動。對于一個NFA狀態和每個輸入,可能觸發多個NFA狀態,所以runtime stack必須可以跟蹤多個激活的NFA路徑。具體如下:

當文檔輸入過濾系統時,NFA即進入初始狀態(initial state ),同時,將初始狀態輸入runtime stack。

定義1 NFA代表XPath 查詢的有限自動機;S 為運行時棧結構runtime stack;DT(DOM tree) 為已被索引了的XML文檔;R為輸入的XML文檔中與XPath查詢匹配的結果集合。

輸入:XPath 查詢表達式。

輸出:與輸入的XML 文檔匹配的XPath 查詢集合R。

NFA狀態轉換基本形式如圖4所示。

a)將NFA 的開始狀態節點進棧S;R=;

b)從XML 文檔中解析出一個標記tag;

c)while tag 不是文檔的結束標記do;

d)if tag 是開始標記;

e)從DT 中讀取輸入;

f)A={ai ∣ai 為S 棧頂的狀態節點};

g)B={bj ∣ai∈A,bj≠ai,且從節點ai 有一條標記為tag或‘*’的邊指向狀態節點bj};

h)for 每個bj,其中從bj 有一條標記為ε的邊指向狀態節點cj 且bj∈B;

i)T={tag′∣狀態節點dk,dk≠cj,且從cj 有一條標記為tag′的邊指向dk};

j)if T∩Child(tag)≠|| T∩Desc(tag)≠;

k)B←cj;

l)A′={ai∣ai∈A,且從節點ai 有一條標記為‘*’的邊指向自己};m)for A′中的每個ai;

n)T={tag′∣狀態節點dk,dk≠ai,且從ai 有一條標記為tag′的邊指向dk};

o)if T∩Desc(tag)≠;

p)B←ai;

q)將狀態節點集B 進棧S;

r)for B 中的每個狀態節點bj;

s)if bj是可接收狀態;

t)R←狀態節點bj 對應的XPath 查詢;

u)else tag 是結束標記;

v)將S 棧頂的狀態節點集出棧;即返回到前一狀態節點集;

w)從XML 文檔中解析出下一個標記tag;

x)返回R。

4 結束語

基于XML安全的綜合網關實質是一個中間件平臺的雛形,它利用了XML服務引擎原理,解決了現有的Web service應用存在的XML入侵、XML攻擊等問題,綜合考慮了XML信息在傳輸過程中加/解密 、數字簽名、驗證、內容過濾、訪問控制等安全需求;同時支持多個異構應用程序之間的交互,提供線速的XML文檔解析、硬件級可信安全認證,提供Web 服務安全性、消息級安全性、細粒度服務控制。在國內外首次提出了具有線性級處理速度(60 MBps)的XML安全網關。將表格定制、不同業務格式轉換、XML快速解析、內容過濾、身份認證、文檔訪問控制等基礎模塊組織在一起,構建良好的可升級、易集成的軟總線架構;提供可插拔的擴展模塊機制,使各種模塊可以方便地加入和卸出系統,并將XML的處理流水線化與硬件加速器相結合,解決面向服務和面向安全的高負荷問題;同時產品的研發在設計模式上綜合J2EE安全設計模式中的持久性框架、改進性能和伸縮性框架、管理安全設計框架等優點,提出了新型的基于Web service應用的V2C架構,使系統在安全性、穩定性、擴展性、高效性方面都得到了強有力的保障。

參考文獻:

[1]EASTLAKE D, REAGLE J, SOLO D,et al. XMLsignature syntax and processing[EB /OL].(200202-12).http: //www. w3.org/Signature.

[2]APVRILLE A, GIRIER V. XML security time stamping protocol[C]// Proc of Information Security Solutions Europe Conference. 2002.

[3]AES Home Page. FIPS 197[EB /OL].(2001-02-28).http: // csrc. nist. gov/ encryption / aes/ .

[4] STINSON D R. Cryptography theory and practice[M].2nd ed.practice[S.l]:Press, 2002:156-187.

[5]BOAG S,CHAMBERLIND,FERNANDEZ M F,et al. XQuery 1. 0:an XML query language [EB /OL]. (2003-05-02).http: //www.w3.org/TR/,2002208216 /2005206216.

[6] KUDO M, HADA S. XML document security based on provisional authorization[C]//Proc of the 7th ACM Conference on Computer and Communications Security. New York:ACM Press,2000:87-96.

[7] HONDA K, VASCONCELOS V, YOSHIDA N. Secure information flow as typed process behavior[C]// Proc of the 9th Europan Symposium on Progamming Languages and Systems.London:SpringVerlag ACM Press,2000:80-199.

[8]YOSGIDAN H R.J2EE Web services高級編程[M].崔洪斌,王愛民,譯.北京:清華大學出版社, 2005.

注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”

主站蜘蛛池模板: 真实国产精品vr专区| 无码精品一区二区久久久| 潮喷在线无码白浆| 人妻精品久久无码区| 激情无码字幕综合| 99久久性生片| 国产精品刺激对白在线| 国产精品jizz在线观看软件| 国产一二三区在线| 天天躁夜夜躁狠狠躁躁88| 最新国语自产精品视频在| 亚洲第一色网站| 亚洲天堂网2014| 999国产精品| 国产性生交xxxxx免费| 日本AⅤ精品一区二区三区日| 国产精品自在线天天看片| 国产黄在线观看| 久久国产成人精品国产成人亚洲| a天堂视频| 国产成人永久免费视频| 蜜桃视频一区| 成人夜夜嗨| 国产免费怡红院视频| 老司国产精品视频91| 波多野结衣第一页| 日本道综合一本久久久88| 一本大道无码高清| 日本福利视频网站| 波多野结衣第一页| 美女被操黄色视频网站| 免费一级全黄少妇性色生活片| 国产欧美中文字幕| 国产凹凸视频在线观看| 国产麻豆va精品视频| 国产原创演绎剧情有字幕的| a级毛片一区二区免费视频| 国产在线拍偷自揄观看视频网站| 19国产精品麻豆免费观看| 在线观看亚洲国产| 成人免费午间影院在线观看| 国产乱人伦精品一区二区| 亚洲最新网址| 在线免费a视频| 亚洲精品第一在线观看视频| 狠狠做深爱婷婷综合一区| 国产青榴视频| 欧美亚洲国产精品第一页| 亚洲性影院| 成人伊人色一区二区三区| 国模极品一区二区三区| 婷婷亚洲综合五月天在线| 国产成人一区二区| 免费在线一区| 免费人成视网站在线不卡| 久久视精品| 日本三级欧美三级| 精品少妇人妻av无码久久| 国产高颜值露脸在线观看| 自偷自拍三级全三级视频| 国产精品999在线| 国产成人1024精品| 成人中文在线| 亚洲系列中文字幕一区二区| av一区二区无码在线| www中文字幕在线观看| 国产成人啪视频一区二区三区| 在线国产资源| 国产国拍精品视频免费看| 亚洲成年人网| 国产精品亚洲天堂| 国产成人免费视频精品一区二区| 无遮挡国产高潮视频免费观看 | 亚洲综合极品香蕉久久网| 久久久久无码精品| 亚洲—日韩aV在线| 亚洲国产精品一区二区第一页免| 一级毛片在线播放| 成人免费一区二区三区| 91尤物国产尤物福利在线| 婷婷综合在线观看丁香| 夜夜操国产|