張達(dá)利
(浙江工商職業(yè)技術(shù)學(xué)院,浙江 寧波 315012)
XML(extensible markup language)可擴展標(biāo)記語言,是一種由一系列法規(guī)組成的定義語言。在數(shù)據(jù)上它有可擴展性、靈活性、可讀性、簡單性,與平臺無關(guān)性等優(yōu)點。這使得XML成為了各種數(shù)據(jù)交換的首選格式。XML以一種開放的,自我描述的文本方式定義數(shù)據(jù)結(jié)構(gòu),在描述數(shù)據(jù)內(nèi)容的同時以優(yōu)秀的樹型方式突出對結(jié)構(gòu)的描述,清晰地體現(xiàn)出數(shù)據(jù)之間關(guān)系的同時還可以使開發(fā)者根據(jù)各自不同的需要定義自己的標(biāo)識。
互聯(lián)網(wǎng)技術(shù)的發(fā)展,大大提高了信息流通的速度和效率,吸引了越來越多的企業(yè)、個人通過網(wǎng)絡(luò)從事其相關(guān)活動,基于網(wǎng)絡(luò)的數(shù)據(jù)交換和業(yè)務(wù)協(xié)作越來越頻繁。XML技術(shù)的發(fā)展使得基于網(wǎng)絡(luò)的數(shù)據(jù)交互越來越方便,但是互聯(lián)網(wǎng)開放性所帶來的信息安全隱患卻是一個日趨嚴(yán)重的問題。作為一個開放的平臺,由于資源的共享性和互操作性,互聯(lián)網(wǎng)也面臨著各種各樣的安全威脅,如信息竊取、惡意欺騙、偽裝、非法修改以及各種擾亂破壞等。保證XML數(shù)據(jù)交換的安全,是當(dāng)今社會需解決的一大重要問題。
安全策略的一致性分析可通過SDL Logic來解決。一致性可從沖突性來理解,SDL可采用給角色相關(guān)的規(guī)則權(quán)限一個優(yōu)先權(quán)序列來解決的。
2.2.1 一致性分析
① SDL規(guī)范概述。SDL是一階邏輯可判定子集。
語言符號:L:SDL 語言
O,F(xiàn),W,P 四種模態(tài),表示強制的(Obligatory),不允許的(Forbidden),放棄的(Waived),允許的(Permitted)。
其公式定義遵循遞歸定義。
關(guān)鍵模式定義:
Op:p is obligatory
Pp=‘O‘p:permitted
Wp=‘Op:waived
Fp=O‘p:forbidden
遵循的定理:
O‘p->Op
Op∧O(p->q)->Oq
② 基于SDL的一致性分析。
基于XACML的策略可以轉(zhuǎn)化成基于SDL的結(jié)構(gòu)從而進行分析。
例如:在大學(xué)授課系統(tǒng)中存在三種角色,一種為Faculty,一種為Dean,還有一種稱為BadUser的角色,兩種學(xué)校資源為課程(course)具體策略如下:
規(guī)則說明:
角色Faculty的權(quán)限:允許讀course;不允許修改任何文件;強制每月更換password。
角色Dean:允許修改course。
角色BadUser:不允許訪問系統(tǒng)。
描述說明:
Faculty可標(biāo)記任何使用次系統(tǒng)的用戶。
Dean可標(biāo)記一種特殊的Faculty,有更高的權(quán)限。
BadUser可標(biāo)記非法用戶,或者某些不按要求更換密碼的Faculty。
SDL形式化,如下:
規(guī)則說明:
R1:坌f,坌A,course(f) ∧ Play(A,F(xiàn)aculty)->P Read(A,f)
R2:坌f, 坌A,course (f) ∧ Play (A,F(xiàn)aculty) ->F modify(A,f)
R3:坌f, 坌A,Password (A,pass) ∧ Old_Password(pass)
∧ Play(A,F(xiàn)aculty)->OChange_Password(A)R4:坌f,坌A,course(f) ∧ Play(A,Dean)->P modify(A,f)
R5:坌f,坌A,Play(A,BadUser)->F Access_System(A)
描述說明:
C1:坌A,Play(A,F(xiàn)aculty)≡堝level,Login(A,level)
C2:坌A,Play (A,Dean)≡Play (A,F(xiàn)aculty)∧Cleared(A,Dean)
C3:坌A,Play(A,BadUser)≡Play(A,F(xiàn)aculty)∧pass,(Password (A,pass) ∧Old_Password (pass)) ∧‘Change_Password(A)
驗證一致性方法:
一般來說,我們希望一個策略P是一致的,即是指在P的規(guī)則內(nèi),不會出現(xiàn)沖突或使某個作用人陷入尷尬的境地。驗證一致性,即是檢測此種可能性的情況。從上可以看出,驗證一致性時候,不僅要考慮策略的規(guī)則說明,還要考慮策略的域約束。
解決沖突:
首先,需要說明的是,沖突不會發(fā)生在一個角色權(quán)限內(nèi),因為這種沖突非常容易檢測。所以假定跟角色關(guān)聯(lián)的規(guī)則集合是不會產(chǎn)生沖突的。當(dāng)用戶扮演幾種角色時才會產(chǎn)生沖突。這種沖突可以通過定義角色序列來合并角色來解決。這個序列顯示了各個角色之間的優(yōu)先權(quán)。假定這序列是完全的。
有限角色集:Role={R1,R2,…,Rn}
O=Ri1>Ri2…>Rik是合并后的角色,那么o>Rik+1也可表示合并Ri1,…Rik,Rik+1獲得的序列,Ri1>Ri2>Rik>Rik+1。
由此完善SDL的表示代數(shù):
公理系統(tǒng):
(A1)OoP∧Oo(P→Q)→OoQ
(A2)Po(P∧Q)→PoP∧PoQ
(A3)OoP→PoP
由此,我們可以通過合并角色來尋找符合給定環(huán)境下用戶的策略規(guī)則。這需要角色序列。由此可引入:
All_Roles(R1,…,Rk):某個作用人所擁有的角色,同時 Ri1>Ri2…>Rik。
(A4)All_Roles(R1…Rk)→(Op<->OR1>..>Rkp)
(A5) All_Roles(R1…Rk) →(Pp<->PR1>..>Rkp)
(A6)Fp→O‘p
2.1.2 邏輯推理
policy目標(biāo)是表達(dá)一種限制訪問需求,可表現(xiàn)為goal,同時可轉(zhuǎn)化為布爾表達(dá)式。可以想象,如果安全策略的條件同時滿足時,會存在潛在的沖突,也就是如果兩個策略同時appplicable時,會產(chǎn)生不相容的動作。
對數(shù)據(jù)或資源的安全需求是不斷變化的。隨著組織或企業(yè)的成長,其安全需要越來越多,安全策略的變化也越來越微妙,這不可避免的加重了安全漏洞測試的負(fù)擔(dān),這就需要更加有效高效的驗證和測試方法。測試的一個方法是靠產(chǎn)生錯誤來推測問題的位置,尤其是敏感信息。組織即便對需求不是很嚴(yán)格,但若某個策略改變,組織也必須對其作出反應(yīng)。想象一下,若某個策略改變,管理者如何才能知道策略某個地方的變化呢?一種解決辦法為組織對其策略改變部分進行強調(diào)顯示,若某個策略由原先的“permit”變?yōu)椤癲eny”,管理者要把這些變化記錄在案,以進行更詳細(xì)的分析,察覺出信息漏洞。
這種方法是基于命題邏輯形成的一種RW代數(shù),它允許根據(jù)任意的條件來定義授權(quán)規(guī)則,所以它可以用于實現(xiàn)更高層次的安全訪問控制機制。它把安全策略描述和目標(biāo)作為輸入,執(zhí)行兩種模式的檢測。一種為評估模式,一種為侵入檢測模式。在評估模式中,算法搜索允許合法用戶達(dá)到其目標(biāo)的讀寫權(quán)限而不管系統(tǒng)的風(fēng)險,而在檢測模式中,使用較弱的策略,反映非法用戶猜測信息的價值。在RW腳本中,根據(jù)安全策略的標(biāo)準(zhǔn),屬性可以定義為是否允許用戶在其讀寫權(quán)限內(nèi)達(dá)到他們的目標(biāo)。而目標(biāo)包括讀寫系統(tǒng)數(shù)據(jù)。下面為RW的介紹。L(P)為RW的所有表達(dá)式,P為變量集合。安全訪問系統(tǒng)就可表示為S.A為作用人,r,w即為反映訪問權(quán)限的映射。狀態(tài)s為P的評估值。比如,作用人a∈A允許讀寫p當(dāng)且僅當(dāng)s滿足r(p,{a})和 w(p,{a})。
EmployeeSystem
Class Bonus;
Predicate
bonus(employee:Agent,bonus:Bonus),
manager(employee:Agent),
advocate(appointer:Agent,appoint:Agent) ;
bonus (a,b){read:(user=a)or (manager (user) and~manager(a)) or (advocate(a,user))
write:manager(user) and~manager(a)}
manager(a){read:true;
write:user=a and manager(a);}
advocate(a1,a2){read:true;
write:user=a1 or (user=a2 and advocate(a1,a2));}
End
Run for 4 Bonus,8 Agent
Check{E a1,a2:Agent,b:Bonus||~manager (a1)-><~manager(a2)>or{bonus(a1,b)}}where
actor={a1,a2}
RW模型檢測算法是基于用戶在實現(xiàn)他們策略時對系統(tǒng)狀態(tài)的了解。因為用戶在實現(xiàn)他們目標(biāo)的過程中,系統(tǒng)的狀態(tài)是在不斷變化的,而他們對系統(tǒng)的了解也是不斷變化的,這樣即可為用戶知識的積累進行建模,來建立一種狀態(tài)轉(zhuǎn)化機制,最終達(dá)到用戶的目標(biāo)。轉(zhuǎn)化關(guān)系包括三種 verwriting-to-ture,overwriting-to-false,sampling。 為了找到這種策略,可以進行上述方法的反過程,即一種后退算法,從目標(biāo)開始,反推到當(dāng)前的狀態(tài)。
此方法提出了一種統(tǒng)一且精確的框架,來描述安全策略。它允許不同策略模型的詳細(xì)分析比較,使用圖形轉(zhuǎn)化來描述策略變化和集成,可稱為圖形轉(zhuǎn)化。
方法思想:圖形轉(zhuǎn)化包括類型圖,圖形規(guī)則和一個轉(zhuǎn)化步驟。首先該方法把安全策略表達(dá)式成安全格,安全格是ac安全策略一種轉(zhuǎn)化形式,它包括人和對象。在安全格中,有安全級別的區(qū)分,低級別的用戶不能訪問高級層上的信息。對于每個安全格,都可以轉(zhuǎn)化成圖形。圖形包括頂點集N 和邊集E,存在映射f:G->G’來把圖形進行轉(zhuǎn)化。邊和頂點的類型表示在類型圖中。圖形規(guī)則由一個單映射L->R來給出,它左右分別對應(yīng)轉(zhuǎn)化映射中兩個圖形必須所包含的對象。圖形的建立過程即設(shè)計不同策略模型的比較,一個策略的框架可由添加或刪除圖形規(guī)則來動態(tài)形成,這就意味著一個策略模型可以通過改變圖形規(guī)則和類型圖來形成另一個策略框架,由此這種轉(zhuǎn)化的程度就可看出不同策略框架的相似度或進行分析比較,圖形的對應(yīng)轉(zhuǎn)化可以發(fā)現(xiàn)模型的差異。
安全策略分析首先要明確一個安全策略它本身存在的目的,即面對一些潛在的安全威脅時提供可行的解決或避免威脅和損害的方法?,F(xiàn)如今網(wǎng)絡(luò)上迥異的系統(tǒng)復(fù)雜的連接,而不同系統(tǒng)分別給共享的資源設(shè)定了他們認(rèn)為可實現(xiàn)自己安全需要的安全策略,正因為如此,在某一個共享的資源上強加了過多安全策略,導(dǎo)致了很多安全隱患的產(chǎn)生,同時共享的有效性也大大降低。而由于XACML的很多特征優(yōu)勢漏洞等,也引致某些問題的產(chǎn)生。采用XML格式的信息作為傳輸格式,大大突破了傳統(tǒng)HTTP包傳輸?shù)陌踩浴O噍^于TLS/SSL通信安全協(xié)議,XML加密方式可以對XML文檔的部分內(nèi)容進行可選擇的加密,對XML文檔的不同部分可進行多重加密,這樣可以滿足不同應(yīng)用服務(wù)對安全提出的要求,課題研究既具有探索性的理論研究價值,也具有較大的應(yīng)用價值和現(xiàn)實意義。
[1]Nan Zhang,M.D.Ryan,andD.Guelev.Evaluating access control policies though model checking[C].In Eighth Information Security Conference(ISC05),2005.
[2]D.Agrawal,J.Giles,K.W.Lee,and J.Lobo.Policy ratification.In proceedings of the 6th Ieee Intenational Workshop on Policies for Distributed Systems and Network,pages223-232,2005.
[3]李曉峰,馮登國,徐霞.基于擴展XACML的策略管理[J]. 通信學(xué)報,2007,(1).
[4]徐曉春,陸松年,楊樹堂等.基于XACML的WEB服務(wù)訪問控制模型[J].計算機工程,2007,(6).