林嘉揚++劉東++劉紅霞
摘 要:為提高面向服務架構在現代大型信息系統應用的安全性,該文從面向服務架構的設計思路、XML的設計目標入手,對XML簽名和XML加密的缺陷進行了分析。
關鍵詞:面向服務架構(SOA) 安全 擴展標記語言(XML)
中圖分類號:TP319 文獻標識碼:A 文章編號:1674-098X(2014)04(a)-0034-01
SOA作為一個全新的網絡架構和系統組織方法,和其它所有的新興技術一樣,在提供便利的同時也面臨許多挑戰,最大的挑戰表現在安全領域。一是由于架構具有刻意的分散性即無中心,數據會實時向各方傳輸,因此需要受到全時域、全空域的保護。二是為了提供隨遇接入的服務,SOA提出單點登錄(Single Sign On,SS0)的概念,這種理想化的設計對基于信息基礎網絡的訪問控制提出了極高的要求。三是在SOA架構中,所有安全功能都需要通過底層的XML語言來實現,XML并不是一個具備控制與鑒別能力的語言,這就給上層的應用安全帶來諸多問題。因此,深入分析SOA安全問題產生的原因,找到解決脆弱性的辦法,是我們必須解決的關鍵問題。
1 設計思路分析
當今公眾軟件系統存在的基本問題是許多現行的安全協議當初并非是出于整體安全和互操作而設計的。這些協議根據需要產生,并隨著時間不斷演變。SOA最早也起源于因特網,目前代表著互操作性的頂峰,在這一架構中網絡資源均作為分離的、松散耦合的、中立的服務供用戶調用。這些服務對于沒有基礎平臺或應用工具的網絡用戶都是可以獲得的。由于這些服務具有獨立的、標準化的特性,因此在系統各組件之間、甚至是受私有證書保護的產品之間,都具有很強的互操作性。即便服務的功能與實現發生了顯著變化,但是只要它與用戶之間的服務合約不變,用戶就不會感受到這種變化。從某種意義上來說,SOA可以被看作是由黑匣子組成的網絡,其中的服務能夠為外部應用提供定義良好的接口。
2 安全問題分析
SOA所面臨的安全問題與應用其他任何信息系統時所遇到的安全問題是相似的,即如何確保機密性、完整性和可用性。SOA的體系結構從本質上說是一系列由元數據和基于XML的標準數據協議生成的應用程序,因此SOA安全問題的核心就是XML安全。
2.1 XML的設計目標
XML是一種非常冗長的語言,每個數據項都要求有起始標記和結束標記,這樣往往造成大量的無效信息。在大型數據結構中,當文件包含許多數據項時,大部分信息都是標記而并非數據,這意味著較高的帶寬開銷。在XML的應用中,需要使用被稱為“分析器”的軟件組件來解析帶有XML標記的數據。XML文檔包含的數據越多,攜帶的標記就越多,編譯文件所需的處理能力和時間也就越多。
萬維網聯盟(World Wide Web Consortium,W3C)將XML設計為可以衍生出不同專用標記語言或數據描述語言的通用框架。簡單來講,XML是描述數據的一種方式,無需考慮格式,而且與應用無關。隨著網絡服務技術的提升和XML應用的推廣,考慮到日益突出的安全問題,結構化信息標準促進組織開始推出XML簽名和XML加密兩個用來提供XML文件加密的標準。XML簽名是用來將文件的部分或全部進行數字簽名,以實現數據的完整性和發送人身份的可認證,防止發送抵賴;XML加密是將文件的部分或全部進行加密,以提供數據的加密性,確保文件內容在發送過程中不向未授權者開放。
2.2 XML安全缺陷
XML的最大優勢在于其靈活性和應用無關性,但是從安全角度來看也是一個明顯的薄弱環節,下面分別分析XML簽名和XML加密的缺陷。
XML簽名只對XML標記了的數據進行處理,而XML解析器的數據格式可以自由改變,即簽名的對象不唯一,使得不同的格式數據在哈希算法中產生不同的值。如果兩個解析器對同樣的信息進行不同的格式化,很有可能給其它用戶以篡改的機會和方法,從而導致XML簽名認證失敗。針對這一問題,一個推薦的解決方法是產生哈希數之前,在簽名的生成與驗證中增加一個特別步驟。這一步驟根據具體要求對數據進行重新格式化,以保證同一信息的兩個不同格式化方法產生相同結果。但是這一額外步驟增加了信息發送者和接收者的開銷,更為嚴重的是,將使簽名的來源變成源數據的格式化版本而非提交給簽名機制的源數據本身。一個具備足夠訪問權限的攻擊者可以通過這一額外的標準化步驟,在生成簽名值之前輸入或更換數據。
XML加密由于XML的靈活性而遭受相似的攻擊。具體來說,XML并不要求數據塊在一個文件中按照指定的順序排列。加密的XML數據不能保證以一種有序的方式來支持數據單點訪問進程。如果解密所需的密鑰在加密數據負荷后出現,整個負荷需要緩沖直至文件全部傳輸完畢。在這種情況下,緩沖信息所需的內存可能會超過可用內存,或者信息的處理時間變得過長。這些問題恰恰有可能引起拒絕服務攻擊。此外,加密數據必須在被XML封裝之前以文本的形式編碼,這使信息容量大約增加了30%,進而帶來加密通信帶寬需求增大,XML變得異常繁瑣等突出問題。
參考文獻
[1] [DoD-8320.2-G] DoD CIO, Guidance for Implementing Net-Centric Data Sharing, 2006.
[2] [NSAWSVA] NSA, Web Services Vulnerability Assessment, 2004.
[3] Laura Lee,Rod Fleischer. Service Oriented Architecture (SOA)– Security Challenges And Mitigation Strategies. IEEE,2007.
[4] Laura Lee ,Rod Fleischer. Service Oriented Architecture (SOA)– Security Challenges And Mitigation Strategies.IEEE,2007.endprint