国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于統(tǒng)計(jì)分析優(yōu)化的高性能XACML策略評(píng)估引擎

2014-01-06 01:46牛德華馬建峰馬卓李辰楠王蕾
通信學(xué)報(bào) 2014年8期
關(guān)鍵詞:調(diào)用引擎規(guī)則

牛德華,馬建峰,馬卓,李辰楠,王蕾

(西安電子科技大學(xué) 計(jì)算機(jī)學(xué)院,陜西 西安 710071)

1 引言

可擴(kuò)展的訪問控制標(biāo)記語(yǔ)言(XACML)[1]是在2003年 2月由 OASIS(organization for the advancement of structured information standards)組織制定的用于決定用戶訪問請(qǐng)求的通用訪問控制策略描述語(yǔ)言。與其他訪問控制策略描述語(yǔ)言相比,XACML具有通用性、可擴(kuò)展性和功能強(qiáng)大的特點(diǎn),已成為許多大型企業(yè)應(yīng)用和商業(yè)化產(chǎn)品實(shí)現(xiàn)安全授權(quán)功能的實(shí)際標(biāo)準(zhǔn)。XACML策略由一組保證網(wǎng)絡(luò)資源不被非法使用的規(guī)則組成,當(dāng)用戶申請(qǐng)?jiān)L問資源時(shí),訪問控制模塊通過評(píng)估訪問控制策略對(duì)用戶進(jìn)行授權(quán)。云計(jì)算、社交網(wǎng)絡(luò)、Web service等業(yè)務(wù)需要指定大量的XACML策略對(duì)資源進(jìn)行細(xì)粒度訪問控制。但隨著系統(tǒng)在線用戶和資源數(shù)量的不斷增加(如截止到2012年12月底,新浪微博的用戶數(shù)量已超過5億,平均每天活躍用戶達(dá)到4 620萬(wàn)),訪問控制策略包含的規(guī)則數(shù)越來越多,結(jié)構(gòu)越來越復(fù)雜,策略評(píng)估效率已成為制約系統(tǒng)可用性的關(guān)鍵瓶頸,亟需一種高效的策略評(píng)估引擎對(duì)海量用戶的請(qǐng)求及時(shí)做出正確授權(quán)。

然而,現(xiàn)有開源商業(yè)XACML引擎仍然不能解決上述評(píng)估效率問題。Sun公司的XACML 評(píng)估引擎[2]采用遍歷匹配方式,在當(dāng)前具有大規(guī)模XACML策略的分布式環(huán)境中,策略評(píng)估效率很低。XACMLLight[3]專注于評(píng)估引擎的遠(yuǎn)程服務(wù)調(diào)用,并沒有對(duì)策略匹配過程進(jìn)行優(yōu)化。AXESCON XACML[4]提供了策略載入和策略緩存功能,但其仍然按照XACML嵌套結(jié)構(gòu)逐層匹配,沒有對(duì)匹配邏輯優(yōu)化。Enterprise XACML[5]提供了策略索引功能,在一定程度上縮減了策略檢索范圍,但其索引結(jié)構(gòu)沒有考慮策略中規(guī)則目標(biāo)的匹配優(yōu)化問題。

近年來,XACML策略評(píng)估引擎的效率問題也引起了學(xué)術(shù)界的廣泛關(guān)注[6~14]。Liu等人[7,8]把字符串XACML策略轉(zhuǎn)化為數(shù)值化的XACML策略,把字符串比較變?yōu)閿?shù)值比較,從而提供策略評(píng)估效率,但是沒有考慮對(duì)策略進(jìn)行精簡(jiǎn)操作,冗余策略仍然存在。文獻(xiàn)[9]提出使用統(tǒng)計(jì)分析方法對(duì)策略和規(guī)則進(jìn)行重排序,將頻繁調(diào)用的策略和規(guī)則放到最前面,在一定程度上提高了評(píng)估效率,但依然是遍歷匹配。文獻(xiàn)[10]提出的多層次優(yōu)化技術(shù)明顯提高了策略評(píng)估效率,但該系統(tǒng)不能保證緩存內(nèi)容一定是調(diào)用最頻繁的,其策略匹配仍然是字符串比較,策略評(píng)估效率有待提高。

針對(duì)上述問題,本文提出基于統(tǒng)計(jì)分析優(yōu)化的高性能 XACML策略評(píng)估引擎 HPEngine。首先利用基于統(tǒng)計(jì)分析的策略優(yōu)化機(jī)制動(dòng)態(tài)精化策略,并將精化后的XACML策略由文本形式轉(zhuǎn)化為數(shù)值形式;然后利用統(tǒng)計(jì)分析機(jī)制為頻繁調(diào)用的屬性、策略以及請(qǐng)求結(jié)果對(duì)建立緩存,達(dá)到既縮減策略規(guī)模又優(yōu)化匹配方式的目的。

2 預(yù)備知識(shí)

XACML是一種基于屬性訪問控制模型的策略描述語(yǔ)言,由PolicySet、Policy、Target、Rule和合并算法組成,采用樹狀層次嵌套結(jié)構(gòu)定義訪問權(quán)限,如圖1所示。

定義 1 策略集(PolicySet)。PolicySet是XACML策略的根元素,可用元組表示PS=(id,t,P,PC)。其中,id為策略集編號(hào),t為策略集的Target元素,P={p1,…,pn}由一系列 Policy構(gòu)成,PC是Policy的合并算法(combine algorithm)。

圖1 XACML策略示例

定義2 策略(Policy)。Policy用來保護(hù)資源,可用元組表示P=(id,t,R,RC)。其中,id為策略編號(hào),t為策略的 Target元素,R={r1,…,rn}由一系列 rule構(gòu)成,RC是Rule的合并算法。

定義 3 規(guī)則(Rule)。Rule是最小單位的策略原語(yǔ),可用元組表示R=(id,t,e,c)。其中,id為規(guī)則編號(hào),t為規(guī)則的 Target元素,e是 effect元素e∈{Permit,Deny},c是對(duì)請(qǐng)求的限制條件。

定義4 目標(biāo)(Target)。目標(biāo)元素由主體屬性集(Sub.t)、資源屬性集(Res.t)、動(dòng)作屬性集(Ac.t)和環(huán)境屬性集(En.t)構(gòu)成,表示在滿足環(huán)境屬性約束的條件下,允許或拒絕主體屬性所有者對(duì)資源屬性指定的資源執(zhí)行動(dòng)作屬性指定的具體操作。由于環(huán)境屬性與具體應(yīng)用相關(guān),所以下文不再考慮環(huán)境屬性。

定義5 合并算法。當(dāng)Policy中的多條Rule或PolicySet中的多條 Policy都匹配訪問請(qǐng)求時(shí),XACML利用規(guī)則/策略的合并算法計(jì)算最終的評(píng)估結(jié)果。合并算法包括肯定優(yōu)先(permit-override)、否定優(yōu)先(deny-override)、首次適用(first-applicable)和唯一適用(only-one-applicable)。

定義6 訪問請(qǐng)求(access request)。用戶的訪問請(qǐng)求用元組表示為req=(s,o,a)。其中,s是訪問請(qǐng)求者,o為要訪問的資源,a是對(duì)資源執(zhí)行的操作。

3 HPEngine引擎平臺(tái)

本節(jié)詳細(xì)闡述 HPEngine評(píng)估引擎。先給出HPEngine引擎平臺(tái)的體系結(jié)構(gòu)和功能部件組成;然后介紹 HPEngine評(píng)估引擎采用的關(guān)鍵優(yōu)化技術(shù):基于統(tǒng)計(jì)分析的策略優(yōu)化和基于統(tǒng)計(jì)分析的多級(jí)緩存機(jī)制;最后說明 HPEngine評(píng)估引擎對(duì)用戶訪問請(qǐng)求的完整評(píng)估過程。

3.1 HPEngine引擎平臺(tái)體系架構(gòu)

根據(jù)XACML標(biāo)準(zhǔn)的訪問控制架構(gòu)可知,一個(gè)完整的訪問控制系統(tǒng)通常包括策略執(zhí)行點(diǎn)、策略決策點(diǎn)、策略信息點(diǎn)、策略管理點(diǎn)等功能部件。因此,HPEngine引擎不但實(shí)現(xiàn)了策略評(píng)估相關(guān)的核心功能,而且提供了完整的訪問授權(quán)支撐平臺(tái)。如圖 2所示,其主要由審計(jì)服務(wù)(AS, audit service) 、策略管理服務(wù)(PMS, policy managerment service)、策略決策服務(wù)(PDS, policy decision service)、策略持久化服務(wù)(PPS, policy persistence service)和屬性斷言服務(wù)(AAS, attribute assertion service)功能部件組成。

AS記錄系統(tǒng)的請(qǐng)求、響應(yīng)、策略集及屬性調(diào)用信息,為統(tǒng)計(jì)分析提供最準(zhǔn)確的原始數(shù)據(jù),保證緩存內(nèi)容均為評(píng)估引擎頻繁調(diào)用的,以提高策略的決策速度。

PMS提供一個(gè)集中式的圖形化策略管理平臺(tái),其主要包括策略的基本操作和基于統(tǒng)計(jì)分析的策略優(yōu)化。策略基本操作包括創(chuàng)建、修改、刪除和更新策略?;诮y(tǒng)計(jì)分析的策略優(yōu)化包括去除冗余規(guī)則、調(diào)整規(guī)則順序和策略數(shù)值化,用來實(shí)現(xiàn)策略匹配的前期優(yōu)化。

PDS是HPEngine引擎的關(guān)鍵部件,統(tǒng)計(jì)分析機(jī)制、基于統(tǒng)計(jì)分析的多級(jí)緩存機(jī)制和策略緩存中的兩級(jí)策略索引都包含在該模塊內(nèi)。上下文處理器將原始的用戶訪問請(qǐng)求解析為XACML請(qǐng)求發(fā)送給評(píng)估引擎,并將返回的判斷結(jié)果封裝為XACML響應(yīng);評(píng)估引擎利用多級(jí)緩存對(duì)當(dāng)前請(qǐng)求進(jìn)行策略匹配和訪問決策;統(tǒng)計(jì)分析對(duì)審計(jì)服務(wù)的日志信息進(jìn)行分析,實(shí)時(shí)、動(dòng)態(tài)地更新緩存內(nèi)容,調(diào)整規(guī)則順序,保證多級(jí)緩存機(jī)制中存儲(chǔ)的內(nèi)容都是頻繁使用的。

圖2 HPEngine引擎架構(gòu)

PPS實(shí)現(xiàn)策略持久化存儲(chǔ),支持多種策略存儲(chǔ)方式及策略庫(kù)的動(dòng)態(tài)添加和注銷;并對(duì)PDS提供策略檢索服務(wù)。

AAS提供屬性斷言存儲(chǔ)和發(fā)布服務(wù),為 PDS的策略匹配提供屬性檢索功能。屬性請(qǐng)求處理器響應(yīng)來自PDS的屬性檢索請(qǐng)求,并將查找到的屬性以SAML斷言格式返回。

3.2 統(tǒng)計(jì)分析

統(tǒng)計(jì)模塊定期分析審計(jì)服務(wù)記錄的系統(tǒng)運(yùn)行日志,并根據(jù)分析結(jié)果更新緩存內(nèi)容以及調(diào)整策略中規(guī)則的排列順序。

統(tǒng)計(jì)分析模塊主要記錄在一定時(shí)間內(nèi)策略、規(guī)則的調(diào)用頻率,屬性的調(diào)用頻率,訪問請(qǐng)求的訪問頻率;單位均為次/周。以圖1 XACML策略示例為例,策略統(tǒng)計(jì)表的格式如表1和表2所示,其他統(tǒng)計(jì)格類似。

表1 策略統(tǒng)計(jì)分析

表2 規(guī)則統(tǒng)計(jì)分析

3.3 基于統(tǒng)計(jì)分析的策略優(yōu)化機(jī)制

由XACML策略評(píng)估引擎的匹配方式可知,策略的規(guī)則數(shù)目和規(guī)則順序決定了匹配運(yùn)算規(guī)模和評(píng)估效率。數(shù)以千計(jì)的策略中可能存在部分對(duì)訪問請(qǐng)求不產(chǎn)生實(shí)際決策影響的規(guī)則,策略規(guī)則的排列順序也與引擎的實(shí)際運(yùn)算量直接相關(guān)。此外,評(píng)估引擎采用的策略匹配算法也影響評(píng)估引擎的效率?;诮y(tǒng)計(jì)分析的策略優(yōu)化機(jī)制,從以上3個(gè)方面借助統(tǒng)計(jì)分析得到的信息對(duì)策略庫(kù)進(jìn)行優(yōu)化,達(dá)到提高評(píng)估引擎效率的目的。

3.3.1 去除冗余規(guī)則

本節(jié)采用文獻(xiàn)[11]提出的狀態(tài)覆蓋法去除策略中的冗余規(guī)則。

若規(guī)則Ri限定主體Sub在環(huán)境En下可對(duì)資源Res進(jìn)行訪問操作Ac,則屬性狀態(tài)向量(Sub,Res,Ac,En)滿足規(guī)則狀態(tài)Statei,記為Statei╞(Sub,Res,Ac,En)effect。若

成立,則稱Statej覆蓋Statei,記為Statei?Statej。

定義 7 冗余規(guī)則。如果Ri和Rj存在Statei?Statej,那么在特定的合并算法下,Ri可能被Rj覆蓋對(duì)決策結(jié)果不產(chǎn)生任何影響,稱此類規(guī)則為冗余規(guī)則。

根據(jù)策略合并算法和規(guī)則合并算法判斷策略間是否存在冗余規(guī)則,根據(jù)規(guī)則合并算法判斷策略內(nèi)部是否存在冗余規(guī)則。具體冗余規(guī)則判定定理如下。

定理 1[11]permit-override 算法:Ri·effect為任意類型成立;若Resi?Resj不成立,則Ri是冗余規(guī)則;否則Ri不是冗余規(guī)則。

定理 2[11]deny-override 算法:若Ri·effect為任意類型,成立,則Ri是冗余規(guī)則。

定理 3[11]規(guī)則Ri在策略中的位置順序記為seq(Ri)。在 first-applicable算法下:seq(Ri)?seq(Rj),均成立。1) 若Rj·effect=deny,則Ri是冗余規(guī)則;2) 若Rj·effect=permit和Resi?Resj不成立,則Ri是冗余規(guī)則。

利用上述定理對(duì)圖1 XACML策略示例進(jìn)行冗余分析,可刪除冗余規(guī)則R2、R5、R6、R7。分析過程及結(jié)果如表3所示。

3.3.2 動(dòng)態(tài)重排序策略

文獻(xiàn)[10]重排序了策略規(guī)則,但其將所有permit類型規(guī)則放到deny類型規(guī)則的前面,當(dāng)deny類型的規(guī)則經(jīng)常調(diào)用,而permit類型的規(guī)則很少調(diào)用時(shí),系統(tǒng)性能很低;此外,文獻(xiàn)[10]沒有對(duì)permit類型和 deny類型的規(guī)則按調(diào)用頻率由高到低的順序進(jìn)行內(nèi)部排序,引擎匹配運(yùn)算量仍然很大。本文根據(jù)統(tǒng)計(jì)分析得到的策略和規(guī)則的調(diào)用頻率按由高到低的順序重排序去除冗余后的策略和規(guī)則,讓調(diào)用最頻繁的策略和規(guī)則排在最前面,從而減少引擎的匹配運(yùn)算量。

表3 規(guī)則冗余分析過程及結(jié)果

規(guī)則1 合并算法是first-applicable時(shí),根據(jù)算法邏輯不能調(diào)整策略和規(guī)則的排列順序。PolicySet的合并算法是 first-applicable時(shí),不可調(diào)整策略間的排列順序;Policy的合并算法是 first-applicable時(shí),不可調(diào)整策略內(nèi)規(guī)則間的排列順序。

規(guī)則 2 其他合并算法,利用統(tǒng)計(jì)分析結(jié)果重排序去除冗余規(guī)則后的策略文件中策略和規(guī)則的位置。

規(guī)則 3 不同策略按策略調(diào)用頻率由高到低排序,同一策略中不同規(guī)則按規(guī)則調(diào)用頻率由高到低排序。

利用上述規(guī)則和表1統(tǒng)計(jì)分析的結(jié)果,對(duì)去除冗余后的圖 1所示的 XACML策略示例進(jìn)行動(dòng)態(tài)重排序。排序結(jié)果如圖3所示。由于PolicySet合并算法為first-applicable,所以策略間不能調(diào)整順序;對(duì)于策略1,由于規(guī)則3的調(diào)用頻率高于規(guī)則1,所以二者調(diào)整順序。

3.3.3 精化策略數(shù)值化

文本的XACML策略文件中每個(gè)屬性的制約因素都用ASCII字符串表示,策略評(píng)估引擎為用戶訪問請(qǐng)求進(jìn)行決策時(shí),需要使用低效的字符串匹配算法,不適合用戶訪問非常頻繁的分布式系統(tǒng)(如云計(jì)算、社交網(wǎng)絡(luò)等)。文獻(xiàn)[7]雖然采用了策略數(shù)值化機(jī)制,但不是對(duì)精化后的策略數(shù)值化,冗余規(guī)則仍然存在,數(shù)值化運(yùn)算量大。本文對(duì)去除冗余規(guī)則和動(dòng)態(tài)重排序規(guī)則處理后的精化策略進(jìn)行數(shù)值化,減少了數(shù)值化的運(yùn)算量。

本文分別為主體、資源、操作屬性建立屬性值索引表,為XACML策略中出現(xiàn)的每個(gè)屬性都映射一個(gè)唯一的整數(shù),將文本的XACML策略轉(zhuǎn)化為數(shù)值的XACML策略,使評(píng)估引擎使用高效的整數(shù)比較,而不是低效的字符串匹配算法。

圖3所示XACML策略示例索引如表4所示,數(shù)值化得到的策略文件如圖4所示。

圖3 動(dòng)態(tài)重排序后XACML策略示例

表4 屬性值索引

圖4 數(shù)值化后XACML策略示例

3.4 基于統(tǒng)計(jì)分析的多級(jí)緩存機(jī)制

策略評(píng)估引擎完成一次請(qǐng)求決策既要從 AAS服務(wù)檢索屬性信息,又要從PPS服務(wù)中檢索策略信息,然后集成處理;因此,信息檢索是造成系統(tǒng)延遲的一個(gè)重要原因。有效的緩存機(jī)制可以減少系統(tǒng)功能部件間的頻繁交互,從而降低檢索操作的代價(jià)。文獻(xiàn)[10]采用了多級(jí)緩存機(jī)制,但該系統(tǒng)不能保證緩存內(nèi)容一定是調(diào)用最頻繁的。

本節(jié)介紹的HPEngine引擎采用基于統(tǒng)計(jì)分析的多級(jí)緩存機(jī)制將調(diào)用最頻繁的信息存儲(chǔ)在緩存中?;诮y(tǒng)計(jì)分析的多級(jí)緩存機(jī)制包括:請(qǐng)求結(jié)果對(duì)緩存、屬性緩存以及策略緩存;策略緩存中采用的兩級(jí)策略索引技術(shù)進(jìn)一步提高了XACML策略匹配效率。

3.4.1 請(qǐng)求結(jié)果對(duì)緩存

請(qǐng)求結(jié)果對(duì)緩存是加速評(píng)估過程最有效的緩存優(yōu)化機(jī)制,即把用戶之前的訪問請(qǐng)求結(jié)果進(jìn)行保存,當(dāng)再次訪問時(shí),不必觸發(fā)屬性檢索、策略檢索及策略匹配等導(dǎo)致系統(tǒng)響應(yīng)延遲的復(fù)雜流程。在訪問請(qǐng)求期內(nèi)用戶可能激活多個(gè)訪問會(huì)話,在同一會(huì)話內(nèi)可訪問多種資源并有不同的決策結(jié)果。因此請(qǐng)求結(jié)果對(duì)緩存應(yīng)按照請(qǐng)求標(biāo)識(shí)?會(huì)話標(biāo)識(shí)、會(huì)話標(biāo)識(shí)?決策結(jié)果兩層映射模式構(gòu)建,如圖5所示。請(qǐng)求標(biāo)識(shí)req由請(qǐng)求者s、資源o、操作a和請(qǐng)求頻率f組成;每個(gè)請(qǐng)求標(biāo)識(shí)對(duì)應(yīng)一個(gè)SessionID列表,保存該請(qǐng)求激活的所有訪問會(huì)話;每個(gè)SessionID對(duì)應(yīng)一個(gè)訪問列表,保存請(qǐng)求在該會(huì)話內(nèi)訪問的具體資源ResID和對(duì)應(yīng)的決策結(jié)果Result。為每個(gè)請(qǐng)求附加一個(gè)訪問頻率f,統(tǒng)計(jì)分析部件會(huì)定期比較該請(qǐng)求f與其他訪問請(qǐng)求f值的大小,保證請(qǐng)求結(jié)果對(duì)緩存內(nèi)容是頻繁訪問的請(qǐng)求及對(duì)應(yīng)決策結(jié)果。

圖5 請(qǐng)求結(jié)果對(duì)緩存結(jié)構(gòu)示意

3.4.2 屬性緩存

屬性信息用來輔助評(píng)估引擎對(duì)請(qǐng)求進(jìn)行決策,但是頻繁的屬性檢索會(huì)導(dǎo)致系統(tǒng)響應(yīng)延遲,影響評(píng)估引擎的效率。為了減少屬性檢索操作,HPEngine引擎提供了如圖 6所示的屬性緩存機(jī)制來提高評(píng)估引擎的效率。屬性緩存同樣采用兩層映射模式,第一層映射由主體標(biāo)識(shí) Identity和屬性標(biāo)識(shí)AttrName列表構(gòu)成,每個(gè)AttrName對(duì)應(yīng)一個(gè)屬性值列表ValueList構(gòu)成第二層映射。類似請(qǐng)求結(jié)果對(duì)緩存,本文為每個(gè)AttrName附加一個(gè)調(diào)用頻率f保證屬性緩存內(nèi)容是頻繁調(diào)用的主體對(duì)應(yīng)的屬性值列表。

圖6 屬性緩存結(jié)構(gòu)

3.4.3 策略緩存

由于缺乏高效策略索引和匹配方式,評(píng)估引擎對(duì)請(qǐng)求決策時(shí)需要遍歷策略文件從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)路徑上的所有 Target,導(dǎo)致每個(gè)訪問請(qǐng)求都要與大量對(duì)決策結(jié)果沒有實(shí)際影響的策略和規(guī)則進(jìn)行匹配運(yùn)算,引擎評(píng)估效率非常低。針對(duì)上述問題HPEngine引擎通過對(duì)策略文件組成結(jié)構(gòu)分析,提出使用兩級(jí)索引技術(shù)實(shí)現(xiàn)策略緩存機(jī)制,提高策略匹配效率。

一個(gè)策略文件由若干策略組成,一個(gè)策略由若干規(guī)則構(gòu)成,而策略文件用來保護(hù)資源信息。因而,本文將資源res標(biāo)識(shí)作為第一級(jí)索引的主鍵,每個(gè)主鍵指向一系列用來保護(hù)該資源的策略列表 policyList;第二級(jí)索引針對(duì)策略內(nèi)多個(gè)規(guī)則的目標(biāo)元素,依次從目標(biāo)元素中提取資源屬性和動(dòng)作屬性,并計(jì)算二者的笛卡爾乘積perSets=(t·res)? (t·ac)作為二級(jí)索引的主鍵,主體屬性列表作為鍵值。通過兩級(jí)策略緩存機(jī)制將層次結(jié)構(gòu)的策略映射為扁平結(jié)構(gòu)。兩級(jí)策略緩存結(jié)構(gòu)如圖 7所示,res標(biāo)識(shí)由資源id和訪問頻率f組成,f的值由統(tǒng)計(jì)部件不斷更新,保證頻繁訪問的資源都存儲(chǔ)在緩存中;perSet∈perSets,subList是perSet對(duì)應(yīng)的主體屬性列表。圖4 XACML策略文件對(duì)應(yīng)的兩級(jí)策略緩存示意如圖8所示。

圖7 兩級(jí)策略緩存結(jié)構(gòu)

圖8 XACML策略文件的兩級(jí)策略緩存

4 技術(shù)比較和性能分析

XACML策略規(guī)模龐大和遍歷式匹配策略的授權(quán)方式是影響XACML策略評(píng)估引擎效率的兩大主要因素,本節(jié)先從這兩大主要因素的角度分析各種評(píng)估引擎技術(shù)原理的差異,然后通過多種類型的仿真實(shí)驗(yàn)驗(yàn)證 HPEngine基于統(tǒng)計(jì)分析的多級(jí)優(yōu)化機(jī)制的有效性及其整體評(píng)估性能優(yōu)勢(shì)。

4.1 策略加載方式及策略匹配模式比較

通過分析各種開源引擎系統(tǒng)的具體實(shí)現(xiàn)可知,評(píng)估引擎評(píng)估效率的差異主要在于策略加載方式和策略匹配方式。

策略加載方式包括靜態(tài)加載和動(dòng)態(tài)加載,靜態(tài)加載是在引擎系統(tǒng)初始化時(shí)一次性將所有可用策略加載到內(nèi)存中;動(dòng)態(tài)加載是評(píng)估引擎收到訪問請(qǐng)求后從策略倉(cāng)庫(kù)中檢索適用的策略并加載到內(nèi)存中。動(dòng)態(tài)加載的優(yōu)點(diǎn)是內(nèi)存空間開銷小,缺點(diǎn)是需要額外的系統(tǒng)通信開銷;靜態(tài)加載的缺點(diǎn)是內(nèi)存開銷大,優(yōu)點(diǎn)是匹配速度快。

策略匹配是指請(qǐng)求中包含的實(shí)體信息與策略目標(biāo)匹配或策略內(nèi)的規(guī)則目標(biāo)匹配,并按照指定的合并算法遍歷策略對(duì)象的過程。

緩存機(jī)制各種評(píng)估引擎采用的技術(shù)細(xì)節(jié)比較如表5所示。

4.2 仿真實(shí)驗(yàn)分析

實(shí)驗(yàn)環(huán)境:Inter(R) Core(TM) 3.10 GHz CPU、4 GB DDR3內(nèi)存,操作系統(tǒng)為Windows XP SP3,JAVA JRE1.6。

表5 主流評(píng)估引擎技術(shù)比較

仿真實(shí)驗(yàn)涉及的評(píng)估引擎包括Sun XACML、Enterprise XACML、XEngine和HPEngine。測(cè)試用例使用XACML官方測(cè)試包[15]和文獻(xiàn)[16]使用的真實(shí)應(yīng)用系統(tǒng)的XACML策略,并根據(jù)具體實(shí)驗(yàn)場(chǎng)景進(jìn)行修改和擴(kuò)充。

4.2.1 基于統(tǒng)計(jì)分析的策略優(yōu)化機(jī)制性能分析

為了體現(xiàn)該優(yōu)化機(jī)制的通用性,該實(shí)驗(yàn)分別比較4種評(píng)估引擎對(duì)策略優(yōu)化前后性能的差異。測(cè)試用例包含3組樣本:1)由1 000條原始策略組成,其中有360個(gè)冗余規(guī)則,去除冗余規(guī)則后,根據(jù)規(guī)則調(diào)用頻率需要對(duì)規(guī)則進(jìn)行重排序的策略有 450條;2)由5 000條原始策略組成,其中有2 700個(gè)冗余規(guī)則,去除冗余規(guī)則后,根據(jù)規(guī)則調(diào)用頻率需要對(duì)規(guī)則進(jìn)行重排序的策略有1 500條;3)由10 000條原始策略組成,其中有5 000個(gè)冗余規(guī)則,去除冗余規(guī)則后,根據(jù)規(guī)則調(diào)用頻率需要對(duì)規(guī)則進(jìn)行重排序的策略有3 000條。

上述測(cè)試用例平均每條策略包含3條規(guī)則,根據(jù)策略中包含的屬性信息,分別隨機(jī)生成 500次不同的訪問請(qǐng)求(請(qǐng)求中已包含完整屬性信息),各評(píng)估引擎先使用原始策略評(píng)估訪問請(qǐng)求并計(jì)算完成一次響應(yīng)的平均時(shí)間,然后使用去除冗余規(guī)則和動(dòng)態(tài)重排序機(jī)制精化后的策略對(duì)訪問請(qǐng)求進(jìn)行評(píng)估,并計(jì)算完成一次響應(yīng)的平均時(shí)間;最后使用精化策略數(shù)值化機(jī)制處理后的策略對(duì)數(shù)值化后的訪問請(qǐng)求進(jìn)行評(píng)估,并計(jì)算完成一次響應(yīng)的平均時(shí)間。

由圖 9(a)和圖 9(b)可知,去除冗余規(guī)則和動(dòng)態(tài)重排序策略機(jī)制明顯提高了引擎的效率,這是由于按規(guī)則調(diào)用頻率由高到低的順序重排序去除冗余后的規(guī)則,減少了策略的匹配運(yùn)算量,提高了策略的匹配速度。由圖 9(b)和圖 9(c)可知,精化策略數(shù)值化機(jī)制明顯提高了引擎的效率,這是由于數(shù)值化機(jī)制將文本的XACML策略轉(zhuǎn)化為數(shù)值的XACML策略,使評(píng)估引擎使用高效的整數(shù)比較,而不是低效的字符串匹配算法,提高了策略的匹配速度。

圖9 基于統(tǒng)計(jì)分析的策略優(yōu)化性能比較

綜上所述,基于統(tǒng)計(jì)分析的策略優(yōu)化機(jī)制明顯提高了引擎的效率,各評(píng)估引擎間評(píng)估性能的差異主要是由策略加載方式和匹配方式不同而導(dǎo)致的。

4.2.2 基于統(tǒng)計(jì)分析的多級(jí)緩存機(jī)制性能分析

緩存機(jī)制可以減少引擎與其他功能部件的頻繁交互次數(shù),由于篇幅限制,本文只分析請(qǐng)求結(jié)果對(duì)緩存對(duì)評(píng)估性能的影響,屬性和策略緩存類似。

對(duì)相同請(qǐng)求的首次評(píng)估各引擎都需要進(jìn)行屬性檢索、策略檢索和策略匹配操作,但對(duì)于以后的重復(fù)請(qǐng)求,采用了請(qǐng)求結(jié)果緩存類似機(jī)制的引擎評(píng)估效率會(huì)明顯提升。

本實(shí)驗(yàn)使用4.2.1節(jié)精化后的3個(gè)策略樣本作為測(cè)試用例,分別由1 000、3 000、5 000規(guī)則組成,對(duì)應(yīng)3組請(qǐng)求(包含100、300、500個(gè)不同請(qǐng)求),每個(gè)請(qǐng)求發(fā)送 50次,不考慮每個(gè)請(qǐng)求的首次響應(yīng)時(shí)間,計(jì)算各評(píng)估引擎對(duì)每組請(qǐng)求完成一次響應(yīng)的平均時(shí)間。

由圖 10可知,在處理重復(fù)請(qǐng)求時(shí),采用了結(jié)果緩存機(jī)制相關(guān)技術(shù)的 Enterprise XACML和HPEngine引擎的評(píng)估效率顯著提高;而HPEngine引擎由于采用兩級(jí)索引機(jī)制存儲(chǔ)結(jié)果緩存,提高了結(jié)果緩存檢索速度,因而評(píng)估效率優(yōu)于 Enterprise XACML引擎。

圖10 請(qǐng)求結(jié)果對(duì)緩存機(jī)制的性能比較

4.2.3 引擎綜合評(píng)估性能分析

為了驗(yàn)證 HPEngine評(píng)估引擎的可用性,本節(jié)測(cè)試用例樣本1采用文獻(xiàn)[16]使用的實(shí)際應(yīng)用系統(tǒng)中的XACML策略;為了驗(yàn)證該系統(tǒng)在擁有大規(guī)模策略應(yīng)用系統(tǒng)中的評(píng)估性能,本節(jié)對(duì)XACML官方測(cè)試他組進(jìn)行擴(kuò)展,得到兩組合成策略:樣本2和3。其中,樣本2由10 000條規(guī)則構(gòu)成單一策略,并包含2 000條冗余規(guī)則,根據(jù)規(guī)則調(diào)用的頻率需要對(duì)3 000條規(guī)則調(diào)整順序;樣本3由4 000條策略組成,平均每條策略包含3條規(guī)則,整個(gè)樣本有4 000條冗余規(guī)則,根據(jù)規(guī)則調(diào)用的頻率需要對(duì)2 000條規(guī)則調(diào)整順序。

為100個(gè)用戶分別構(gòu)造30個(gè)不同的訪問請(qǐng)求,前10個(gè)請(qǐng)求隨機(jī)發(fā)送15次,中間10個(gè)請(qǐng)求隨機(jī)發(fā)送5次,最后10個(gè)請(qǐng)求隨機(jī)發(fā)送1次;計(jì)算各評(píng)估引擎在不同測(cè)試策略樣本下對(duì)上述訪問請(qǐng)求完成一次響應(yīng)的平均時(shí)間。

由圖11可知,各評(píng)估引擎對(duì)樣本1的評(píng)估速率明顯快于樣本2和樣本3,這主要是由于樣本1使用的策略文件包含的規(guī)則數(shù)比樣本2和樣本3少很多,引擎在策略解析匹配時(shí)花費(fèi)的時(shí)間比較少。

圖11 評(píng)估引擎整體性能比較

由圖11可知,雖然樣本2和樣本3的規(guī)則總體規(guī)模相等,但各種引擎對(duì)多規(guī)則組合樣本的評(píng)估速率普遍快于多策略組合樣本,這主要由于后者的策略結(jié)構(gòu)比前者的策略結(jié)構(gòu)復(fù)雜,引擎在策略解析匹配時(shí)需要更多的處理時(shí)間。

由圖11可以看出,HPEngine引擎無(wú)論對(duì)實(shí)際系統(tǒng)的策略,還是根據(jù)測(cè)試需要合成的策略都能做出正確的授權(quán)決策;其采用的基于統(tǒng)計(jì)分析的多級(jí)優(yōu)化機(jī)制提高了評(píng)估引擎的效率,整體評(píng)估性能明顯優(yōu)于其他同類系統(tǒng)。

5 結(jié)束語(yǔ)

XACML策略規(guī)模龐大和遍歷式匹配策略的授權(quán)方式是導(dǎo)致分布式環(huán)境下 XACML策略評(píng)估引擎效率低的兩大主要因素,本文從這兩大主要因素的角度分析了現(xiàn)有開源引擎系統(tǒng)的具體實(shí)現(xiàn)過程,提出了新的XACML策略評(píng)估引擎HPEngine。該引擎利用基于統(tǒng)計(jì)分析的策略優(yōu)化機(jī)制動(dòng)態(tài)精化策略,并將精化的策略由文本的形式轉(zhuǎn)化為數(shù)值形式,縮減了策略規(guī)模,減少了匹配運(yùn)算量,提高了匹配速度;采用基于統(tǒng)計(jì)分析的多緩存機(jī)制為頻繁調(diào)用的請(qǐng)求結(jié)果對(duì)、屬性和策略信息建立緩存,有效降低了評(píng)估引擎和其他功能部件的通信損耗,提高了匹配速度。仿真結(jié)果表明,HPEngine所采用的基于統(tǒng)計(jì)分析的多級(jí)優(yōu)化機(jī)制提高了策略評(píng)估引擎的評(píng)估效率,整體評(píng)估性能明顯優(yōu)于其他同類系統(tǒng)。

[1] Brief Introduction to XACML[EB/OL]. https://www.oasis-open.org/committees/download.php/2713/Brief_Introduction_to_XACML.html.

[2] Sun XACML[EB/OL]. http://sunxacml.sourceforge.net/.

[3] XACMLight[EB/OL]. http://sourceforge.net/projects/xacmllight/.

[4] AXESCON XACML[EB/OL]. http://axescon.com/ax2e/.

[5] Enterprise XACML[EB/OL]. http://code.google.com/p/enterprise-javaxacml/.

[6] BUTLER B, JENNINGS B, FAME D B. XACML policy perfor mance evaluation using a flexible load testing framework[A]. Proceedings of the 17th ACM conference on Computer and communications security(CCS)[C]. New York, USA, 2010.978-980.

[7] LIU A X, CHEN F, HWANG J H. Designing fast and scalable XACML policy evaluation engines[J]. IEEE Transactions on Computers, 2011,60(12):1802-1817.

[8] LIU A X, CHEN F, HWANG J H. XEngine: a fast and scalable XACML policy evaluation engine[A]. Proceedings of the 2008 ACMSIGMETRICS International Conference on Measurement and Modeling of Computer Systems[C]. New York, USA, 2008.265-276.

[9] MAROUF S, SHEHAB M, SQUICCIARINI A. Adaptive reordering and clustering-based framework for efficient XACML policy evaluation[J]. IEEE Transactions on Services Computing, 2011,10(4):300-313.

[10] 王雅哲, 馮登國(guó), 張立武. 基于多層次優(yōu)化技術(shù)的XACML策略評(píng)估引擎[J]. 軟件學(xué)報(bào), 2011,22(2),323-338.WANG Y Z, FENG D G, ZHANG L W. XACML policy evaluation engine based on multi-level optimization technology[J]. Journal of Software, 2011,2,22(2),323-338.

[11] 王雅哲,馮登國(guó). 一種XACML規(guī)則沖突及冗余分析方法[J].計(jì)算機(jī)學(xué)報(bào),2009,32(3): 516-530.WANG Y Z, FENG D G. A conflict and redundancy analysis method for XACML rules[J]. Chinese Journal of Computers, 2009, 32(3):516-530.

[12] STEPIEN B, MATWIN S, FELTY A. An algorithm for compression of XACML access control policy sets by recursive subsumption[A]. 2012 Seventh International Conference on Availability, Reliability and Security[C]. Ottawa, Canada, 2012.161-167.

[13] PHILIP L, MISELDINE S A, KARLSRUHE. Automated xacml policy reconfiguration for evaluation optimization[A]. Proceedings of the Fourth International Workshop on Software Engineering for Secure Systems[C]. New York, USA, 2008.1-8.

[14] TURKMEN F, CRISPO B. Performance evaluation of XACML PDP implementations[A]. Proceedings of the 2008 ACM Workshop on Secure web services[C]. New York, USA, 2008.37-44.

[15] XACML 2.0 conformance tests[EB/OL]. http://www.oasis-open.org/committees/download.php/14846/xacml2.0-ct-v.0.4.zip.

[16] FISLER K, KRISHNAMURTHI S, MEYEROVICH L. Verification and change impact analysis of access-control policies[A]. Proceedings of the 27th International Conference on Software Engineering[C].New York, USA, 2005.196-205.

猜你喜歡
調(diào)用引擎規(guī)則
撐竿跳規(guī)則的制定
數(shù)獨(dú)的規(guī)則和演變
新海珠,新引擎,新活力!
核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
系統(tǒng)虛擬化環(huán)境下客戶機(jī)系統(tǒng)調(diào)用信息捕獲與分析①
讓規(guī)則不規(guī)則
藍(lán)谷: “涉藍(lán)”新引擎
TPP反腐敗規(guī)則對(duì)我國(guó)的啟示
利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
One?。牛睿纾椋睿濉。蹋澹妫糁皇O乱粋€(gè)引擎
泸定县| 义乌市| 治县。| 内乡县| 句容市| 阿坝| 柳河县| 九寨沟县| 治县。| 永宁县| 嘉祥县| 宜兰县| 高淳县| 余江县| 湘潭市| 白河县| 临洮县| 临泽县| 呼玛县| 枝江市| 新建县| 江山市| 五河县| 绥滨县| 军事| 江北区| 慈利县| 池州市| 山西省| 柯坪县| 武城县| 洛南县| 社旗县| 奎屯市| 永定县| 兴安县| 萝北县| 兖州市| 进贤县| 铅山县| 孟津县|