韓寶棟
(海軍駐廣州四二七廠軍事代表室 廣州 510715)
?
SOA平臺下Web服務的安全認證協議綜述*
韓寶棟
(海軍駐廣州四二七廠軍事代表室 廣州 510715)
Web服務的安全作為近年來一個重要研究領域得到了越來越多的重視。論文分析了SOA平臺下Web服務的安全性問題,并對解決這些安全問題的Web服務安全規范做了系統的總結。著重描述WS-Security規范以及衍生的其他規范,并對實現跨域單點登陸的SAML規范以及描述安全策略的XACML進行一定的分析和比較。
Web服務; WS-Security; 安全聲明標記語言; 可擴展的訪問控制標記語言
Class Number TP393
近年來隨著面向服務的體系結構SOA(Service Oriented Architecture)的興起,作為實現SOA的Web服務技術也得到越來越多的青睞。SOA是通過不同功能模塊(服務)之間的接口和協議將這些功能模塊(服務)聯系起來的一個體系結構。這些功能模塊獨立于不同的硬件平臺和操作系統中,通過SOA使得這些服務可以以一種通用和統一的方式實現聯系和交互。
Web服務在企業應用領域得到迅速的發展,通過基于XML的服務描述語言WSDL描述的Web服務變得更加動態和靈活。然而Web服務的動態,松耦合的特性則是影響Web服務安全的絆腳石。Web服務的動態性使得服務的發布者不了解這個服務將會在何種系統環境中被使用,同時服務的消息安全也無法得到保障。而且企業之間的應用讓Web服務不僅僅局限在小型的局域網內,復雜的互聯網對Web服務的安全有著更高的要求。由于如今的Web服務是端到端的傳輸,傳統的基于SSL的點對點傳輸協議Https早已經不能保證Web服務在大的網絡環境下的安全,同時僅僅在傳輸層保障安全的Https也無法保證消息在接收端不被攻擊和竊取,因此新的傳輸協議迫在眉睫。
Microsoft、IBM等公司聯合參與成立的標準化組織OASIS,致力于研究Web服務的安全傳輸和身份認證,于2004年制定了WS-Security規范來保障Web服務在新的網絡背景下的安全,同時制定了XML Encryption、XML Digital Signature、SAML以及XACML標準確保基于SOAP的Web服務的消息可以安全地傳輸。本文綜述Web服務中的相應規范以及近年來基于這些規范和標準研究出的技術,綜合比較并給出了相應的分析。
學術界從各個側面對Web服務安全中的核心問題進行了深入的探討,從理論和實際應用中提出了一系列新穎的方法和改進策略。
2.1 基于WS-Security規范的認證
為了規范地解決Web服務的安全問題,OASIS在2004年提出了WS-Security規范的1.0版本,并與2006年提出了WS-Security的改進版。文獻[4]詳細分析了WS-Security規范,通過對利用WS-Security規范的SOAP消息的具體分析,得出WS-Security規范的具體安全認證機理:在SOAP消息中,使用XML Signature技術保障消息的完整性,通過XML Encryption
保障消息的機密性以及利用安全令牌(X.509證書或Kerberos票據)解決SOAP消息的身份認證基于SAML規范的認證。通過該文獻的分析可以得出WS-Security規范下SOAP消息的框架,如圖1所示。

圖1 WS-Security規范下SOAP消息框架圖
WS-Security解決了Web服務在安全方面的三大問題:消息完整性,消息機密性以及身份認證,從而實現SIAO消息的安全傳輸,利用WS-Security規范,可以提供更多的安全模型。在文獻[5]中作者使用WS-Security規范開發了一個Web服務的安全系統,并且研究發現出WS-Security規范可能需要注意的問題,指出系統可能會受到消息的重傳攻擊:一個獲取正確SOAP消息的攻擊者不斷向服務器發送這個SOAP消息,導致服務不斷被調用。雖然可以用時間戳技術解決提出了一個更安全的解決方案:一個簡化的挑戰響應模型,如圖2所示。

圖2 簡單挑戰-響應模型
文獻[6]中提出了一種保障Web服務環境安全的框架,利用WS-Security規范設計基于角色的權限控制模型,通過網絡化學習的應用軟件來分析系統所要求的Web服務安全環境,最后利用RBAC(Role Based Access Control)模型搭建這個安全系統的框架[7]。文獻[8]針對REST(Representational State Transfer)[9]風格的Web服務,首先分析了傳統Https認證方式的不足,而后提出一種可擴展的基于WS-Security中UsernameToken方式的安全驗證方法。文獻[10]結合WS-Security規范,綜合運用SOAP,DES和RSA技術,給出了一種基于加密技術的Web服務安全模型,實現跨平臺的解決方案。
隨著近年來移動設備的不斷興起,Web服務在移動端的安全也受到了重視。文獻[11]利用WS-Security規范中XML加密和簽名技術并結合無線應用協議WAP中的無限二進制XML規范WBXML和無限會話協議WSP為移動Web服務的消息提供安全解決方案。由于移動Web服務處在發展的階段,技術成熟度有待提高,因此未來移動Web服務的安全問題也一定會有更深一步的討論和研究。
綜合近年來基于WS-Security規范的Web服務安全問題,業界提出了很多安全模型,有些結合了其他的加密算法或框架,但是核心點依然在WS-Security規范中XML加密、簽名和身份認證。它彌補了傳統Web服務認證方式中消息端到端的安全缺陷并達到認證靈活性的特點。然而,這種方式也有一定的缺點,因為改進的消息SOAP頭需要人工添加加密和簽名等信息,導致開發成本提高,而且這種方式要求服務器在每次調用的時候都必須進行驗證,大大增加了服務器的負荷。針對這些問題,基于SAML的單點登錄認證技術應運而生。
2.2 基于SAML規范的認證
安全聲明標記語言(Security Assertion Markup Language,SAML)[12]是由OASIS提出的一種基于XML的安全性標準,用于Internet中不同的安全域中交換身份驗證和授權憑證,現如今SAML已經發展到2.0版本。在使用SAML的系統中,權限信息通過聲明傳遞,系統中有三個部分,分別為主體Subject即用戶,信任方Relying Party即服務提供方(Service Provider,SP),聲明方Asserting Party即身份提供方(Identity Provider,IP),其工作機理如圖3所示。
單點登錄(Signal Sign-on,SSO)技術是SAML最主要的應用模式,在單點登錄模式中,用戶在Web源站點進行了身份認證,該站點即為該用戶生成SAML聲明,表明該用戶通過身份認證,同時將該聲明相關聯的票據分配給用戶,用戶可以調用該站點的Web服務;當該用戶從該站點訪問其目的站點的Web服務時,目的站點通過用戶提供的票據,與原站點進行通信,確定用戶的身份,避免再次身份認證的過程,從而實現了單點登錄。其示意圖如圖4所示。

圖3 SAML工作機理

圖4 SAML單點登錄示意圖
SAML的逐漸成熟使得基于SAML的跨平臺,跨安全域的單點登錄技術不斷使用在不同的Web服務安全模型中。文獻[13]針對跨站點認證的局限,提出了基于SAML的單點登錄方法,Web服務站點在提供服務的同時提供身份信息。這種方法由于Web服務的信任關系由服務提供者和請求者雙方直接建立,不存在第三方的身份提供者,因此存在一定的局限性。文獻[14]提出的方法避免了前者出現的局限性,通過共同信任的第三方建立間接的信任關系,并在第三方服務上實現登錄。文獻[15]提出了一種新的SSO機制,將SAML綁定到信令控制協議(Session Initiation Protocol,SIP)[16]協議中。通過集成SAML的服務(Relying Party)發送SAML請求到發行權威機構(Issuing Authority),發行權威機構返回有關該請求主體的SAML聲明指示它的安全認證信息。
由于SAML在實現單點登錄后并未對用戶進行一定的訪問控制如服務訪問時間和允許的范圍,這樣可能會造成用戶身份票據和訪問令牌的重傳攻擊。文獻[17]針對SAML單點登錄過程存在的用戶安全風險擴散問題,提出了一種以用戶為中心的基于代理簽名的單點登錄協議。在建立安全會話時添加訪問控制機理以限制用戶單點登錄訪問服務的時間和范圍,達到抵抗重傳攻擊的目的。
針對SAML本身存在局限因素,因此在一些系統設計過程中需要與其他相應技術相結合,從而彌補缺陷實現安全的Web服務認證和訪問。
2.3 基于XACML規范的認證
可擴展的訪問控制標記語言(eXtensible Access Control Markup Language,XACML)[18]是由OASIS發布的一種基于XML的開放標準語言,被設計用于描述安全策略以及對Web服務以及企業安全應用信息進行訪問的權限。XACML以其平臺無關性,通用性,可擴展,可移植以及模塊化等特性,被廣泛用于Web服務訪問控制策略的執行。
XACML訪問控制框架中包括策略執行點PEP(Policy Enforcement Point),上下文管理器(Context Handler),策略信息點PIP(Policy Information Point),策略決策點PDP(Policy Decision Point),策略管理點PAP(Policy Administration Point)等功能模塊,其具體執行的基本過程如圖5所示。

圖5 XACML訪問控制框架執行示意圖
策略執行點PEP接收客戶端向服務器發送的請求,并將該請求轉發給上下文處理器,上下文處理器向策略信息點PIP提出屬性要求,PIP從主體、資源、環境等模塊中獲取屬性信息并返回給上下文處理器,上下文處理器處理這些信息并向策略決策點PDP發出決策請求,PDP根絕策略管理點PAP提供的策略對該請求做出決策,并返回決策結果給上下文處理器,上下文處理器將決策結果返回給PEP,PEP根據結果做出響應用戶請求或拒絕用戶請求的決策。
XACML標準以其嚴格的策略管理保障Web服務的訪問控制,業界基于XACML研究出相應的Web服務訪問控制模型,實現Web服務的安全訪問。文獻[19]通過對XACML特點的分析提供了一種結合XACML的基于屬性的Web服務訪問控制模型(Attribute-Based Access Control,ABAC),區別于傳統的基于用戶身份的授權機制,而采用基于用戶、環境等屬性從而實現動態評估訪問請求,對Web服務的動態性和異構性有著良好的契合。文獻[20]針對Web服務訪問控制的成本較高的缺陷,提出了一種統一的訪問控制模型,綜合了XACML的優點,采用通用的策略描述規范,減少因策略算法的復雜造成實現起來的困難和成本。文獻[21]提出了一種地基于信任的Web服務訪問控制模型CD-WSTBAC,該模型基于XACML和WS-Security規范,綜合運用了身份認證以及訪問控制策略,使得Web服務可以在不同安全域內被請求和調用。
XACML標準提供了統一的策略描述語言,因其豐富的規則和策略執行算法,使得XACML可以在異構平臺上得到充分應用,滿足更復雜的控制安全需求。但是,由于XACML繁瑣的標簽定義和復雜的訪問控制策略算法,使得基于XACML的系統在實現的時候比較困難,成本較高,適用面不夠廣泛。
2.4 基于SAML+XACML規范的認證
由于XACML只涉及認證和授權過程[22],不保障各個實體之間信息交流的安全,同時沒有定義策略執行點和策略決策點之間的通信協議,而SAML正是在不同實體間進行交流的一種標準。將兩者結合起來,策略執行點PEP接收到SAML格式的帶有認證聲明和屬性聲明的請求,并將它發給上下文處理器,上下文處理器將SAML映射成XACML交與策略決策點PDP做出決策。文獻[23]提出了基于SAML和XACML的Web服務訪問控制模型,結合了兩者的優點,利用SAML實現了單點登錄,多次訪問,方便用戶,同時結合XACML完成訪問授權控制。
2.5 其他安全認證
隨著Web服務的不斷發展,OASIS相繼提出了一些新的標準和協議來保障在新的網絡環境下的安全,如WS-Federation,WS-Authorization,WS-Policy,WS-Trust以及WS-Privacy。其中WS-Federation規范定義了一種聯合不同信任領域間的身份,身份驗證和授權的集成模型,解釋了如何將聯合模型應用于活動的請求方如SOAP應用程序。文獻[24]對WS-Federation協議做了具體的分析,并對基于WS-Federation的跨域單點登錄過程進行了詳細的解釋,發現協議存在的問題并提出相應的解決辦法。
比較WS-Federation協議和SAML協議,發現兩者都能實現單點登錄,但兩者之間是存在一定的差別: 1) 兩者在認證方式上不同,前者基于WS-Trust,后者使用X.509證書或者Kerberos票據; 2) WS-Federation得到WS-Policy以及WS-Trust支持,能更好地應對分布式Web服務環境的消息可靠性和安全,而SAML沒有可靠的消息或交易支持。
另外針對Web服務的安全問題,業界也提出了一些基于其他平臺或算法的模型,例如文獻[25]設計了一種基于DCE的可信Web服務度量模型,結合WS-Security規范和動態信用評價DEC提出了新的服務可信度量算法,建立了一個新的Web服務安全框架。文獻[26]在RBAC(基于角色的訪問控制)的基礎上提出了基于使用控制支持動態Web服務訪問控制模型WS-DAUCON,通過在RBAC模型中添加授權,義務和條件模塊實現權限動態管理。
由于Web服務技術的不斷革新和發展,互聯網中Web服務的安全性要求也不斷地提高,正是由于各種規范的提出,安全性得到了相對的保障。然而,未來的發展對網絡的要求不斷提高,因此服務的安全性也需要得到更高的重視。目前很多規范已經提出了相應的改進版本,在面對更加復雜多樣的網絡環境和安全要求的時候,綜合運用多種規范技術實現Web服務的安全傳輸認證則是未來發展的重要方向。
[1] 吳文明,瞿裕忠,等.Web服務及相關技術[J].計算機應用與軟件,2004,21(3):14-15,104.
[2] 盧曉霞,韓堅華.Web服務中基于信任的跨域安全認證模型[J].微型機與應用,2012,31(3):50-52.
[3] 馮超,李梁.基于SOA的Web Services安全技術研究[J].計算機與數字工程,2009,37(5).
[4] 石偉鵬,楊小虎.基于SOAP協議的Web Service安全基礎規范WS-Security[J].計算機應用研究,2003(2).
[5] 王凡,李勇,等.基于WS-Security規范構筑安全的SOAP消息調用[J].計算機應用,2004,24(4).
[6] Feng He, Jia Jinle. Apply the technology of RBAC and WS-Security for secure web services environment in campus[C]//ICMLC,2006.1.1.
[7] Nassr, Nezar Steegmans. A parameterized RBAC access model for WS-BPEL orchestrated composite[C]//ICITST,2011.1.1.
[8] Dunlu Peng, Chen Li. An Extended Username Token-Based Approach for Rest-Style Web Services Environment[C]//CCSIT,2009.
[9] Chen-Da Hou, Dong Li. Sea Http: A Resource-Oriented Protocol to Extend REST Style for Web of Things[J].計算機科學與技術學報(英文版),2014(2).
[10] 全立新.一種基于加密技術的Web服務安全方法[J].制造業自動化,2011(4).
[11] 蘇偉,孫磊,徐開勇.基于XML安全的移動Web Service的高效實現[J].計算機工程,2009,35(3).
[12] Stephen Farrell. Irving Reid: Security Assertion Markup Language(SAML) OASIS Standard, 5 November 2002.
[13] Jafary P, Lobov A, Lastra J L M. Enhancement of Security in the hierarchy model of control and automation by applying single sign-on for google apps[C]//Proceedings of the 6thACM Workshop on Formal Methods in Security Engineering,2008:1-10.
[15] 于繼萬,朱華飛.一種新的SIP SSO機制[J].計算機應用,2004(5).
[16] Rosenberg J, Schulzrinne H. SIP: Session Initiation Protocol. RFC 3261.
[17] 王曦,張斌.基于代理簽名的SAML單點登錄協議[J].計算機工程,2012,38(16).
[18] Godiks, Mosest. OASIS: eXtensible access control markup language(XACML) version 2.02004, committee draft 01[EB/OL].
[19] 沈海波,洪帆.Web服務中結合XACML的基于屬性的訪問控制模型[J].計算機應用,2006,25(12):2765-2767.
[20] 王尚平,馬宏亮,等.基于XACML的服務信任協商方案[J].計算機工程,2008(11).
[21] 馬曉寧,馮志勇.Web服務中基于信任的訪問控制模型[J].計算機工程,2010(3).
[22] 陳英勇,辛明君,吳紹睿.面向Web服務的交互訪問控制[J].計算機工程,2009,35(14).
[23] 陶宇偉,封紅旗.網格服務中基于SAML和XACML的Web服務的安全訪問控制[J].電子技術應用,2011(10).
[24] 沈海波.基于WS-Federation的Web服務跨域單點登錄認證分析[J].計算機應用研究,2006(2).
[25] 李曉麗.基于DCE的可信Web服務度量模型的分析與研究[J].科技通報,2013,29(8).
[26] 上超望,楊宗凱,等.使用控制支持俄動態Web服務訪問控制模型研究[J].計算機應用研究,2009,26(8).
Summary of Security Authenticated Protocol for Web Service on the Platform of SOA
HAN Baodong
(Navy Military Representative Office at No. 427 Factory in Guangzhou, Guangzhou 510715)
As an important research field, the security of web service gets more attention recently. By analyzing the security problems of web service on the SOA, the security specification of web service for those security issues is sumarized in this paper. The content focuses on the WS-Security and some other standards relative to it, additionally describes and compares the SAML protocol for SSO with XACML, which is used for representing the security policy.
Web service, WS-Security, SAML, XACML
2014年12月11日,
2015年1月20日
韓寶棟,男,助理工程師,研究方向:電子信息系統。
TP393
10.3969/j.issn1672-9730.2015.06.027