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