誰說SOA不需要安全服務
SOA面臨安全挑戰
當前,面向服務的架構(SOA)是一種很流行的技術,其原理采用松耦合服務模式,通過標準化的接口來聯系各種形式的服務,無論服務置于何地,均能通過一種便捷而統一的方式實現相關功能,這對信息資源的二次利用和服務模式的二次重整具有極大的作用。
在具體技術上,SOA是通過XML/SOAP等幾種系列的標準化技術來實現的。但是圍繞SOA的安全問題一直沒有徹底解決的方法,其原因在于:
第一,不同信任域的信任關系的轉移和認同。業務流程可能由不同廠商的基于異構平臺的多種服務組合而成,每個服務都具有各自獨立的安全域。這些安全域可能由不同企業的不同部門負責管理和維護,這要求必須在SOA架構范圍內建立統一的信任體系,然而這種努力確實難度極大的。
第二,不同應用服務統一、重用和共享的安全性。SOA具備來自異構系統的多樣性,要求建立一個統一的安全基礎設施和標準。但是目前情況是不同的應用系統有不同的認證、授權模式,協調和統一的難度大。
第三,SOA強調設備與設備的交互,而大多數IT安全性都是基于人與設備的交互。傳統的安全防御對象主要是針對人,而SOA更多地強調了設備與設備的交互,即所謂服務的互操作性,如何應對來自合作伙伴或第三方服務交互請求的威脅(大多數情況下,這些請求被人惡意利用和操縱),將是SOA安全防御的一項重要課題。身份驗證和授權在這個環境中變得更加富于挑戰性。在未受保護的SOA中,想要阻止Web服務的未授權使用實際上是不可能的。未授權用戶可以非常輕松地訪問Web服務,而Web服務往往不具備跟蹤誰在使用它們或者誰被允許使用它們的固有毛病。
另外,SOA整套架構在應用層與表示層的隔離上做得不完美,這會導致未來階段,新的代理程序很容易尋找和利用SOA的安全漏洞;僵尸網絡工具準確找到應用中的安全漏洞的概率很大,而且準確性比現在的工具高得多。
新的安全標準
為了應對上述問題,國際OASIS組織制定了一系列技術標準,這些標準包括:
WS-Security:描述如何將XML加密(XML Encryption)和XML簽名(XML Signature)應用于SOAP文檔或信息。
WS-SecurityPolicy:對哪些人被允許訪問某個服務以及訪問方式做出規定,并對認證方式的類型和/或所需要的加密等級做出限制。他是Web服務策略(WS-Policy)的子集,以更為通用的方式對服務的能力和限制進行描述。
WS-SecureConversation:按照WS-Security標準,實施WS-SecurityPolicy中所描述的策略的方法。此標準于2007年3月通過審批,Actional公司、BEA Systems、思科公司、CA公司、Layer7 Networks、Oracle、Reactivity公司、RSA等其他廠商也都表示支持此標準。
WS-Trust:應用WS-Security標準傳輸密碼、數字證書以及安全性斷言標記語言(SAML)斷言等安全標識。XML密鑰管理規范XKMS和SAML有部分相同之處。
WS-Federation:根據WS-SecurityPolicy中描述的服務規則,應用WS-Trust中提到的被傳輸的安全標識,通過Web服務的認證。相較SAML,他的主要優勢在于,Windows支持這一標準。
安全解決之道
目前解決SOA的安全問題主要包括以下三種方法。
第一,在服務模塊前通過SOAP解析器來解決安全問題。著名的Hugh Taylor, Eric Pulier在《松散耦合的SOA環境中的安全性》一文中提到了這種方法。
第二,整合信任源。不同的信任源有不同的信任基礎,比如通過用戶名+口令、證書、生物識別,需要整合上述信任基礎,統一到一個完整的信任庫中,通過Security Assertion標簽完成信任基礎的定義并明確導向。基于目前的現狀,建議整合到CA平臺上,目前的問題是CA的認證比較復雜,規模和流量對SOA的影響頗大,面向政府的SOA架構可能沒有太多問題,但是對于大型系統(如客票系統)可能就有問題。
第三,使用專用安全產品。主要包括:SOA 安全網關。網關為進入企業的XML流量提供了一個代理,并運用安全策略來確保某種形式的請求與驗證。主要作用是對SOAP進行解析,如果SOAP中涉及encrypt標簽,需指向專門的SOAP加解密設備來完成;SOA安全平臺。主要提供驗證和授權方面的安全支撐;SOA反病毒郵件網關。目前能夠針對SOAP病毒的反病毒郵件網關還比較少,需要增加特定的SOAP協議支持才能對SOAP病毒進行防范。
另外,在具體的SOA安全服務實施過程中,需要注意:第一,分析SOA中對信息安全性要求。包括了信息機密性、完整性和可用性需求,通過制定表格把信息敏感性確定下來;第二,具體描述SOA中的標簽。通過信息的敏感性分別定義不同的SOAP安全標簽,如
【編輯推薦】