張津銘
(煙臺職業(yè)學(xué)院,山東 煙臺 264670)
基于SOAP 的Web 服務(wù)訪問控制的設(shè)計(jì)與實(shí)現(xiàn)*
張津銘
(煙臺職業(yè)學(xué)院,山東 煙臺 264670)
針對Web服務(wù)的訪問控制及安全模型進(jìn)行了深入研究;參考N IST RBAC/Web模型提出了一個基于SOAP擴(kuò)展的Web服務(wù)安全模型;針對該安全模型中的基于角色的Web服務(wù)訪問控制模型進(jìn)行了詳細(xì)的研究和設(shè)計(jì)。
Web服務(wù);訪問控制;簡單對象存取協(xié)定;安全模型
在當(dāng)今的IT領(lǐng)域,Web服務(wù)技術(shù)正在日益受到關(guān)注。Web服務(wù)被普遍認(rèn)為是新一代應(yīng)用程序的集成,是通向新的商業(yè)模式的大門,也是企業(yè)之間相互聯(lián)系的前所未有的重要途徑。調(diào)查顯示,Web服務(wù)安全性已經(jīng)成為多數(shù)企業(yè)的最大關(guān)注點(diǎn),但由于Web服務(wù)安全機(jī)制非常復(fù)雜,這使得多數(shù)企業(yè)對大多數(shù)Web服務(wù)不得不采用較簡單和保守的方式進(jìn)行配置,從而使得Web服務(wù)安全得不到有效保障。
本文主要針對Web服務(wù)的訪問控制,即SOAP的授權(quán)安全機(jī)制進(jìn)行研究,以提供對Web服務(wù)消息級的安全保護(hù)。對Web服務(wù)訪問控制技術(shù)的研究不僅對Web服務(wù)技術(shù)自身發(fā)展具有重大的研究意義,而且對Web服務(wù)的重要應(yīng)用-動態(tài)電子商務(wù)的健康、快速發(fā)展有著很大的應(yīng)用價值。
訪問控制(Access Control)就是通過某種途徑顯式地準(zhǔn)許或限制訪問能力及范圍的一種方法。訪問控制系統(tǒng)一般包括:
(1)主體(Subject):發(fā)出訪問操作、存取要求的主動方,通常指用戶或用戶的某個進(jìn)程;
(2)客體(Object):被調(diào)用的程序或欲存取的數(shù)據(jù)訪問;
(3)安全訪問政策:一套規(guī)則,用以確定一個主體是否對客體擁有訪問能力[1]。
一個安全的網(wǎng)絡(luò)需要可靠的訪問控制服務(wù)作保證,尤其是當(dāng)網(wǎng)絡(luò)規(guī)模比較大、用戶比較多的時候。通過訪問控制服務(wù),可以限制對關(guān)鍵資源的訪問,防止因非法用戶的侵入或者合法用戶的不慎操作所造成的破壞。
Web服務(wù)的訪問控制就是針對用戶對Web服務(wù)空間進(jìn)行操作的控制,Web服務(wù)的訪問控制包括了用戶、服務(wù)空間和操作這3個正交的概念。用戶是Web服務(wù)的調(diào)用者,是訪問控制的主體,服務(wù)空間是所有原始的Web服務(wù)及動態(tài)增加的Web服務(wù),操作是用戶行為的基本單位。用戶、服務(wù)、操作是有限的集合。用戶、服務(wù)空間和操作這3個正交的概念用圖1所表示的坐標(biāo)系來表示,其中U軸、WS軸、OP軸分別表示用戶(主體)、服務(wù)空間及操作集合的元素,坐標(biāo)原點(diǎn)是這3個集合中都不取的空間點(diǎn),可以表示為(0,0,0)??臻g(U, WS,OP)中的點(diǎn)(ui,w si,opi)表示用戶ui對服務(wù)空間中的w si進(jìn)行操作opi。
圖1 (U,WS,OP)空間
Web服務(wù)的訪問控制是指對用戶在服務(wù)空間的操作進(jìn)行授權(quán)。設(shè)以下映像從F:U x WS x OP-> {0,1}是將(U,WS,OP)空間中的點(diǎn)映像到{0,1}的集合。若空間點(diǎn)(ui,w si,opi)映像到“1”,表示用戶ui有對服務(wù)空間點(diǎn)w si進(jìn)行opi操作的授權(quán)。若空間點(diǎn)(ui,w si,opi)映像到“0”,表示用戶ui沒有對服務(wù)空間點(diǎn)w si進(jìn)行opi操作的授權(quán)。因此Web服務(wù)訪問控制可以表示為映像到“l(fā)”的(U,WS,OP)空間的空間點(diǎn)的集合,即在(U,WS,OP)空間取子集D:D={(ui,w si,opi)|ui∈U,w si∈WS,opi∈OP,且F(ui, w si,opi)=1}。其中映像F:U x WS x OP->{0,1}表示體現(xiàn)某一訪問控制策略的授權(quán)規(guī)則。
在Internet上會存在多個管理域,Web服務(wù)的訪問可能要跨過多個管理域,在每個管理域的訪問控制策略是由用戶制定的。由于各個管理域之間的Web服務(wù)訪問需要交互與協(xié)調(diào),所以在Web服務(wù)訪問控制的研究中有以下幾個方面的關(guān)鍵問題。
(1)通用性。Web服務(wù)訪問控制的通用性是指其訪問控制機(jī)制可以實(shí)現(xiàn)多種用戶根據(jù)不同需求自定義的訪問控制策略。在(U,WS,OP)空間中體現(xiàn)訪問控制策略的授權(quán)規(guī)則為在該空間建立子集的方法,即映像F:U x WS x OP->{0,1},從而在(U,WS,OP)空間中訪問控制的通用性可以表述為(U,WS,OP)空間的任意子集D={(ui,w si,opi)|ui∈U,w si∈WS,opi∈OP,且F(ui,w si,opi)=1}都可以用Web服務(wù)訪問控制模型表示。
(2)自主控制。自主控制是指各個管理域都可以由用戶獨(dú)立地制定本管理域的訪問控制策略,即一個管理域中訪問控制策略的制定不受其它管理域訪問控制策略的干涉及Web服務(wù)分布結(jié)構(gòu)的影響。
(3)多個管理域間訪問控制的互操作。Web服務(wù)訪問控制需要提供單一系統(tǒng)映像。在跨管理域的授權(quán)中由于服務(wù)訪問的主體和客體可能屬于訪問控制策略不同的管理域,訪問控制可能會發(fā)生沖突,這就需要一定的協(xié)調(diào)機(jī)制。訪問控制的互操作要滿足兩條原則[2]。自主原則,即在某一管理域中允許的服務(wù)訪問通過互操作也允許;安全原則,即在某一管理域中禁止的服務(wù)訪問通過互操作也禁止。
(4)訪問控制的管理。由于具有多個管理域、多種安全策略、大量的用戶及服務(wù)請求以及異構(gòu)的信息資源,訪問控制又存在多種粒度,同時Web服務(wù)的訪問是開放動態(tài)的,所以應(yīng)該使用一個易于管理的訪問控制機(jī)制,以降低訪問控制管理的復(fù)雜度,同時Web服務(wù)的訪問還應(yīng)該提供訪問控制管理的輔助工具。
綜上所述,Web服務(wù)訪問控制器需要為安全管理員提供輔助智能以簡化安全管理。
本文通過對訪問控制技術(shù)的研究,利用N IST RBAC/Web模型構(gòu)造了一個在Web服務(wù)安全模型下的訪問控制器,提出了基于角色的Web服務(wù)訪問控制模型,并把它應(yīng)用到Web服務(wù)安全模型中,如圖2所示。
本文研究主要內(nèi)容是Web服務(wù)訪問控制技術(shù),即動態(tài)性Web服務(wù)安全調(diào)用,因此圖2中的Web服務(wù)的訪問控制是本文研究的核心內(nèi)容。訪問控制模型不是孤立存在的,它必須建立在整個Web服務(wù)框架之下,所以模型中也設(shè)計(jì)了WSDL生成器、UDD I服務(wù)器等,使得系統(tǒng)模型能運(yùn)行在Web服務(wù)平臺上。
在提出的Web服務(wù)訪問控制的關(guān)鍵問題的基礎(chǔ)上,本文參考N IST的RBAC模型[3],提出一個基于角色的Web服務(wù)訪問控制模型,即WS-RBAC,并把它運(yùn)用到Web服務(wù)安全模型中。WS-RBAC模型以角色表示用戶、服務(wù)空間和操作三者之間的對應(yīng)關(guān)系。角色是(U,WS,OP)空間的子集,并且具有動態(tài)性。動態(tài)性是指與角色關(guān)聯(lián)的用戶、服務(wù)空間和操作可以由安全管理員進(jìn)行修改。在本文中,為簡單起見,主要研究某一個時刻角色具有的靜態(tài)性質(zhì)。
圖2 基于SOAP的Web服務(wù)安全模型
定義1 在WS-RBAC模型中,角色表示用戶、服務(wù)和操作的對應(yīng)關(guān)系。其中:
①U為三維空間中Web服務(wù)訪問的用戶空間。
②WS是三維空間中服務(wù)空間。
③OP是三維空間中的操作空間。
④定義P=WS×OP,其中WS×OP={(w si,opi)|w si∈WS,opi∈OP},權(quán)能(ability)為P的子集合,權(quán)限(permission)為P中的元素。
⑤定義角色Role為(U,WS,OP)空間中滿足下列約束條件的子集合
H:WS×OP->{0,1},G:U->{0,1},則
Role={(ui,w si,opi)|ui∈U,w si∈WS,opi∈OP,且H(w si,opi)=l,G(ui)=l}。
定義1是對N IST的RBAC模型中的角色在WS-RBAC模型中重新定義的。映像從H:WS×OP ->{0,1}表示將權(quán)限映像到{0,l}集合,其中映像到“l(fā)”的權(quán)限表示該角色擁有的權(quán)限;G:U->{0,1}表示將用戶映像到{0,l}的集合,其中映像到“l(fā)”的用戶是該角色關(guān)聯(lián)的用戶??梢?角色是(U,WS,OP)空間中的子集,這個子集需要滿足的條件是對其中的任意用戶,映像從H:WS×OP->{0,1}所確定的權(quán)限集合是相等的,從而構(gòu)造了用戶、服務(wù)和操作的一個對應(yīng)關(guān)系。角色的定義體現(xiàn)出了角色是權(quán)限和用戶之間的數(shù)據(jù)中間層這一RBAC模型的本質(zhì)特征:映像H:WS×OP->{0,1}表示為角色授權(quán),而G:U->{0,1}表示角色與用戶的關(guān)聯(lián)。通過這兩個彼此獨(dú)立的映像分離了對角色進(jìn)行授權(quán)和為用戶分配角色的過程。
定義2 角色的繼承。設(shè)X,Y為角色,
X={(ui,w si,opi)|ui∈U,w si∈WS,opi∈OP,且H1(w si,opi)=l,G1(ui)=l}
Y={(uj,w sj,op j)|uj∈U,w sj∈WS,op j∈OP,且H2(w sj,op j)=l,G2(uj)=l}
若W 2={(w sj,opj)|w sj∈WS,op j∈OP,且H2(w sj,op j)=l}是W 1={(w si,opi)|w si∈WS,opi∈OP,且H1(w si,opi)=l}的子集合,且V 1={ui|ui∈U,且G1(ui)=l}是V 2={uj|uj∈U,且G2 (uj)=l}的子集合,則稱X繼承了Y,表示為X≥Y,特別有:
X>Y,當(dāng)W 1≠W 2或者V 1≠V 2。
X=Y,當(dāng)W 1=W 2且V 1=V 2。
定義2是對N IST的RBAC模型中的繼承在WS-RBAC模型中重新定義的。在角色繼承的定義中,W 1、W 2、V 1、V 2分別為角色X、Y關(guān)聯(lián)的用戶集合和權(quán)限集合,在(U,WS,OP)空間中,V 1、V 2分別為角色X、Y在U軸的投影,W 1、W 2分別為X、Y在WS軸與OP軸構(gòu)成的平面的投影。
角色繼承的性質(zhì):
①傳遞性:即若X≥Y,且Y≥Z,則X≥Z,其中X、Y、Z為角色;
②單向性又稱不可逆性:即若X>Y,則Y≯X,其中X、Y為角色。
繼承是角色具有的重要性質(zhì),通過角色的繼承,基于角色的訪問控制可以按照一個企業(yè)或組織的職務(wù)層次結(jié)構(gòu)制定訪問控制策略,從而訪問控制策略更加直觀。通過角色的繼承,減少了為角色授權(quán)和為用戶分配角色的工作量,從而減少了授權(quán)可能出現(xiàn)的錯誤。
Web服務(wù)訪問控制器是系統(tǒng)安全性的第二道關(guān)口,只有經(jīng)過認(rèn)證之后的安全SOAP消息才能發(fā)送到訪問控制器。訪問控制器將決定該SOAP訪問的權(quán)限,以及返回響應(yīng)的結(jié)果。任何一個SOAP請求在通過訪問控制器的時候?qū)a(chǎn)生三種結(jié)果:被完全拒絕,完全通過,部分通過。當(dāng)SOAP請求最終到達(dá)SOAP服務(wù)器,它將產(chǎn)生SOAP結(jié)果,經(jīng)重新加密和驗(yàn)證后回送給確定的客戶。
在傳統(tǒng)的授權(quán)系統(tǒng)中,任何請求所要訪問的實(shí)體就是一個對象,授權(quán)將決定請求是否有權(quán)訪問這個實(shí)體對象。在Web服務(wù)調(diào)用訪問中,任何一個授權(quán)對象都對應(yīng)著一個RPC調(diào)用,也是SOAP Body的一個節(jié)點(diǎn)。因此訪問控制器就是對該請求的XML元素和屬性進(jìn)行處理。對單個元素和屬性的處理可以用于:
●評價請求的狀態(tài)(例如某個參數(shù)只有擁有一定值時才能被通過)。
●對具體請求加以具體的訪問控制(如某個參數(shù)必須填寫)。
在本文中利用XPath語言來表示授權(quán)對象。XPath是一門由表達(dá)式組成的語言,本質(zhì)上是與具有層次結(jié)構(gòu)的XML數(shù)據(jù)模型相匹配的查詢語言,主要是對XML節(jié)點(diǎn)的定位[4]。它包括可以通過按任何方向?yàn)g覽樹來選擇節(jié)點(diǎn)的位置表達(dá)式以及其它如基本字符串、數(shù)字計(jì)算和布爾代數(shù)的表達(dá)式。位置路徑可以從根節(jié)點(diǎn)開始,也可以從當(dāng)前節(jié)點(diǎn)開始。
利用XPath表達(dá)式對節(jié)點(diǎn)的定位過程分成三步:
●用于確定目標(biāo)節(jié)點(diǎn)和當(dāng)前節(jié)點(diǎn)的相對位置,其結(jié)果是節(jié)點(diǎn)集。
●縮小范圍,確定某個節(jié)點(diǎn)。
●精確定位。
XPath表達(dá)式的簡單例子:
/authors/author[@period="classical"]
這是一個絕對位置路徑,含義是:在根節(jié)點(diǎn)為“autho rs”的XML文檔中,查詢period屬性(attribute)值為classical的autho r元素(element)。本文采用XML的XPath語言來表示授權(quán)對象。
授權(quán)主體是請求被檢測而授權(quán)(拒絕或許可)被授予的實(shí)體。在本文的模型中,主體應(yīng)該有以下特征:
●用戶的標(biāo)志(代表客戶是誰)
●用戶請求的角色(例如管理員)
●用戶所在的管理域
在模型中,采用基于角色的訪問控制,發(fā)出調(diào)用請求的主體通過一個三維向量(user,domain,roleid)來判斷一個特定的來自某個具體的機(jī)器、用戶和能力。
授權(quán)由三維向量(Subject,Object,Sign)組成,其語法表示如下:
●Subject代表請求者,包括身份、組、位置、角色。
●Object是SOAP消息的成分,也是授權(quán)需要引用的信息,采用XPath語言表達(dá)。
●Sign是一個布爾量,+和-,代表通過或者拒絕。
如果授權(quán)的對象是信封,那么授權(quán)的內(nèi)容就是全部。如果授權(quán)的結(jié)果是“-”的,那么請求就是被完全拒絕。當(dāng)然對象也可能是SOAP請求樹的任何一個元素。
一個簡單的查詢服務(wù)樣例:首先假設(shè)金融公司的策略是只向公司的具有Common角色的客戶提供查詢服務(wù),而其它不具備這個角色的客戶都不能使用該服務(wù),因此通過檢查角色Common的授權(quán)信息就可以得到他們的權(quán)限。
Evelope/Body/Quote Info
訪問控制器將要對每個SOAP請求進(jìn)行再次去除。有些SOAP請求要被拒絕,有些SOAP請求要適當(dāng)修改,將那些無權(quán)限的請求去掉。也就是訪問控制器要負(fù)責(zé)對SOAP請求的節(jié)點(diǎn)添加一個許可或拒絕的標(biāo)志。訪問控制策略對SOAP請求樹的同一個節(jié)點(diǎn)可能有多個授權(quán),因此決定有沒有訪問權(quán)限要根據(jù)策略的優(yōu)先級別。
(1)如果該請求有多個激活角色,取它們權(quán)限的并集。因此當(dāng)角色存在沖突的時候,權(quán)限為“+”。
(2)因?yàn)榻巧强梢岳^承的,指定于某個角色的訪問權(quán)限優(yōu)先于它所繼承的權(quán)限。
(3)對某個用戶指定的權(quán)限優(yōu)先于他所激活角色的權(quán)限。
(4)對某個用戶指定的權(quán)限優(yōu)先于他所在組的權(quán)限。
任何一個請求樹根據(jù)以上的策略將在樹的節(jié)點(diǎn)上添加一個標(biāo)志“+”或者“-”,因此在判斷是否有權(quán)限的時候只要看其節(jié)點(diǎn)的值為“+”還是“-”。
本文主要對Web服務(wù)訪問控制技術(shù)問題進(jìn)行了深入研究。參考已有的Web服務(wù)訪問控制模型和N IST RBAC/Web模型,提出了一種基于SOAP擴(kuò)展的Web服務(wù)安全模型。在這個模型中主要設(shè)計(jì)了基于角色Web服務(wù)訪問控制模型。對Web服務(wù)訪問控制從授權(quán)對象、授權(quán)主體、授權(quán)語法和訪問控制等方面做了詳細(xì)的分析與設(shè)計(jì)。
基于SOAP的Web服務(wù)訪問控制的設(shè)計(jì)和實(shí)現(xiàn),解決了Web服務(wù)安全中的Web服務(wù)授權(quán)問題,從而使Web服務(wù)在消息級安全應(yīng)用上得到了更可靠的保障。
[1]李偉琴,楊亞平.基于角色的訪問控制系統(tǒng)[J].電子工程師,2000,26(2):16-21.
[2]James Joshi,A Rif Ghafoor,Walid G A ref,et al.Digital government security infrastructure design challenges[J].IEEE Computer,2001,34(2):66-72.
[3]Elliotte Rusty,Harold,W.scott Means.XML技術(shù)手冊[M].北京:中國電力出版社,2001.
[4]David F Ferraiolo,Ravi Sandhu,Serban Gavrila,et al.Proposed NIST standard for role-based access control[J].ACM Transon Information and System Security,2001,4(3):224-274.
Research for SOAP-Based Access Control of Web Service
ZHANG Jin-ming
(Yantai Vocational College,Yanta i264670,China)
The paper research the access control of web services、security theory and security model tho roughly.Based on the security model for Web services and NIST RBAC/Web model,design the SOAP’s extension-based security model for Web services.In the thesis,research and design the WS-RBAC model mainly.
web services,access control,SOAP,security model
TP393
A
1671-4288(2010)02-0045-05
(責(zé)任編輯:肖恩忠)
2009-12-04
張津銘(1980-),男,山東龍口人,煙臺職業(yè)學(xué)院信息工程系助教。研究方向:軟件工程、網(wǎng)絡(luò)安全。