摘 要:分析了訪問控制新的需求特點(diǎn),在XACML的語言模型和訪問控制模型基礎(chǔ)上,探討了一種統(tǒng)一的、可移植的規(guī)則、策略及決策算法,能滿足對細(xì)粒度網(wǎng)絡(luò)資源的訪問控制要求,并具有可擴(kuò)展性。
關(guān)鍵詞:訪問控制; XML; XACML; 規(guī)則; 策略
中圖法分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1001-3695(2006)10-0082-04
Finegrained Extensible Access Control Policy for Resource
TANG Chenghua1,2, HU Changzhen1,2
(1.Information Security Antagonism Research Center, Beijing University of Technology, Beijing 100081, China; 2.College of Mechatronic Engineering, Beijing University of Technology, Beijing 100081, China)
Abstract:Based on analyzing the new characteristics of the access control requirement, the paper proposed the uniform extensible and transplantable rule, policy and decision, making algorithm to realize the access and control of the finegrained network resources.
Key words:Access Control; XML; XACML(eXtensible Access Control Markup Language); Rule; Policy
計(jì)算機(jī)網(wǎng)絡(luò)中存在著許多不同的資源,如XML[1]文檔、非XML文檔、關(guān)系數(shù)據(jù)庫和應(yīng)用服務(wù)器等。計(jì)算機(jī)網(wǎng)絡(luò)有效地實(shí)現(xiàn)了資源共享,但資源共享與信息安全從來就是一個矛盾體。隨著Internet的迅速發(fā)展,對這些資源進(jìn)行訪問控制成為信息安全領(lǐng)域中的一個重要的基礎(chǔ)性的核心問題。所謂訪問控制,就是通過某種途徑顯式地準(zhǔn)許或限制主體的訪問能力及范圍,從而限制對目標(biāo)資源的訪問,防止非法用戶的侵入或合法用戶的不慎操作所造成的破壞。
1 訪問控制的策略需求
傳統(tǒng)的授權(quán)和訪問控制系統(tǒng)均實(shí)現(xiàn)了各自專用的模型,但通常都遵循這樣的模式:位于特定環(huán)境中的主體向系統(tǒng)發(fā)出訪問請求;系統(tǒng)隨后查詢資料庫獲取必要的信息,按照預(yù)先定義好的訪問規(guī)則對請求進(jìn)行判決,允許或拒絕該請求。在安全性控制已應(yīng)用到關(guān)系數(shù)據(jù)庫、Web服務(wù)器、應(yīng)用程序服務(wù)器及自定義應(yīng)用程序的情況下,每一種系統(tǒng)都有其特有的安全模式用于描述訪問控制的語言,以及用于配置這些控制的特有的用戶界面,因此以各種方式實(shí)現(xiàn)模型的解決方案實(shí)際上也是專用的解決方案。
在這樣的背景下,我們需要用可移植的、統(tǒng)一的方法和更豐富的詞匯來描述這些訪問控制內(nèi)容,并且能提供可擴(kuò)展性、資源擁有者能對訪問進(jìn)行細(xì)粒度的控制,而與具體應(yīng)用無關(guān)的能力。從作用域來看,訪問控制可以分為基于主體的訪問控制和基于目標(biāo)資源的訪問控制。前者表示能對訪問主體的IP地址、機(jī)器名、訪問時間、網(wǎng)絡(luò)環(huán)境等進(jìn)行約束,如限定某個IP地址段的主機(jī)或某個機(jī)器名的主機(jī)在某個時間范圍內(nèi)對目標(biāo)資源的訪問,而后者表示面向目標(biāo)資源的約束,在細(xì)粒度控制的要求下,能對某個目標(biāo)資源的各個部分進(jìn)行不同的訪問控制。
目前已經(jīng)有很多訪問控制策略語言標(biāo)準(zhǔn)或建議。文獻(xiàn)[2]對IBM提出的EPAL 1.2(Enterprise Privacy Authorization Language)和OASIS的標(biāo)準(zhǔn)XACML(eXtensible Access Control Markup Language)進(jìn)行了比較,得出了XACML能更好地表達(dá)私有授權(quán)策略和訪問控制策略。文獻(xiàn)[3]通過一個實(shí)例從11個角度對XACL(XML Access Control Language),F(xiàn)inegrained Access Control,XACML和XrML(eXtensible rights Markup Language)作了比較,結(jié)果XACML是最適合表達(dá)企業(yè)網(wǎng)絡(luò)資源(不僅僅是XML資源)的訪問控制語言,它具有豐富的預(yù)定義處理函數(shù),支持屬性、類型的細(xì)粒度控制。XACML是一種基于XML的適用于描述分布式系統(tǒng)訪問控制的語言,它既是一種訪問控制策略語言,也是一種請求(Request)/響應(yīng)(Response)描述語言。自從OASIS在2003年發(fā)布XACML v1.0標(biāo)準(zhǔn)后,得到了大量商業(yè)公司的支持;2005年2月1日OASIS將XACML v2.0[4]及其所有相關(guān)文檔發(fā)布為標(biāo)準(zhǔn)規(guī)范集。XACML具備可擴(kuò)展性,支持參數(shù)化的策略描述和多樣化的策略組合,具有同時能被人和計(jì)算機(jī)識別的特點(diǎn),支持對環(huán)境資源屬性的考慮,支持對策略規(guī)則的條件約束和沖突檢測和消除。XACML的應(yīng)用能夠?qū)Y源的訪問請求進(jìn)行決策,同時也彌補(bǔ)了系統(tǒng)的安全性問題,提供了可移植、統(tǒng)一的方法來描述訪問控制元素,用標(biāo)準(zhǔn)格式在不同系統(tǒng)間交換安全控制信息,使系統(tǒng)可以交換或共享授權(quán)策略,即在實(shí)際執(zhí)行策略之前將策略翻譯成本地的策略語言,這些都意味著訪問控制策略不必再緊緊鏈接到它們所控制的系統(tǒng)上,但卻可以關(guān)聯(lián)到各種不同的資源,如XML文檔、非XML文檔等。
2 XACML的規(guī)則和策略
XACML的語言模型類圖如圖1所示。XACML的語言模型主要由Rule元素、Policy元素和PolicySet元素三部分組成。其中Rule元素是基礎(chǔ),它由另外三個元素組成:①Target元素說明了規(guī)則所保護(hù)的資源(Resource)、擁有權(quán)限的主體(Subject)、可執(zhí)行的動作(Action)及執(zhí)行時的外部環(huán)境(Environment);②Condition元素是規(guī)則執(zhí)行時的約束條件;③Effect元素的值為Permit或Deny,分別表示允許或禁止規(guī)則中描述的動作。多個規(guī)則可合并在同一個策略Policy之中,RuleCombiningAlgorithm指明這些規(guī)則合并時所采用的算法。同樣,多個策略可合并在同一個策略集PolicySet之中,PolicyCombiningAlgorithm指明這些策略合并時所采用的算法。這樣將不同的規(guī)則或策略合并到單個應(yīng)用于給定操作的策略或策略集中,這意味著不同的策略創(chuàng)建人可以編寫不同的策略作用于相同的資源。Obligation元素是定義在Policy或PolicySet中,作為一種對訪問請求進(jìn)行決策之后訪問者必須要執(zhí)行的一些責(zé)任性的動作。
為了適應(yīng)不同的應(yīng)用環(huán)境,用于將XACML核心語言與應(yīng)用程序環(huán)境及其他內(nèi)容隔離,用統(tǒng)一的方法來描述訪問控制元素,用標(biāo)準(zhǔn)格式在不同系統(tǒng)間交換安全控制信息,XACML提供了上下文處理功能,如圖2所示。
XACML上下文提供了應(yīng)用程序環(huán)境中的訪問請求與請求決策PDP之間的輸入和輸出模式,這意味著無論應(yīng)用程序的表示法或環(huán)境是XACML,SAML,.NET,J2SE,CORBA等,均會將這些表示法或環(huán)境轉(zhuǎn)換為XACML的上下文。也就是說,在消息到達(dá)PDP之前,很可能要進(jìn)行一次格式轉(zhuǎn)換,如可以通過運(yùn)行XSLT[5]轉(zhuǎn)換來將SAML語法轉(zhuǎn)換為XACML“//xacmlContext/Request/Subject/Attribute[@DataType=′identifier:role′]”語法。XACML上下文的主要作用是用于消除策略創(chuàng)建人對特定環(huán)境的顧慮,允許在企業(yè)內(nèi)使用不同格式,提高了策略應(yīng)用的適應(yīng)性。應(yīng)用程序域通常就是PEP。
訪問者的訪問請求首先到達(dá)PEP,這個請求必須包括要訪問的目標(biāo)資源以及要執(zhí)行的操作(讀寫等),由PEP將訪問請求轉(zhuǎn)發(fā)給PDP,PDP在獲取相關(guān)屬性信息后,將訪問請求中的Subject,Action和Resource元素同XACML策略中相應(yīng)元素進(jìn)行比較,選擇相應(yīng)的策略,并根據(jù)策略作出決策,最后返回給PEP。
3 基于主體的訪問控制
XACML能通過對Rule中的條件的定義來完成對訪問主體的IP地址、機(jī)器名、訪問時間、網(wǎng)絡(luò)環(huán)境等進(jìn)行約束,如限制某個IP地址段的主機(jī)或某個機(jī)器名的主機(jī)在某個時間范圍內(nèi)對目標(biāo)資源的訪問。如要限制主體的訪問時間必須是在上午8:30到下午5:00之間,那么Condition可用以下四元組來表達(dá):
<Condition FunctionId="http://research.sun.com/projects/xacml/names/function #timeinrange ">
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:timeoneandonly">
<EnvironmentAttributeDesignator DataType="http://www.w3.org/2001/XML Schema#time"
AttributeId="urn:oasis:names:tc:xacml:1.0:environment:currenttime"/>
</Apply>
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema
#time">08∶30∶00
</AttributeValue>
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#time">17∶00∶00
</AttributeValue>
</Condition>
其中,當(dāng)前時間作為環(huán)境屬性通過EnvironmentAttributeDesignator來獲取,時間范圍判斷通過FunctionId指明用預(yù)定義的timeinrange函數(shù)來完成。XACML包括了對字符(串)、整數(shù)、小數(shù)和日期的算術(shù)操作(加、減、乘、除)、舍入、大于/小于和比較等操作的定義,能滿足構(gòu)造復(fù)雜的規(guī)則條件。條件Condition的評測結(jié)果值可能是True(滿足)、False(不滿足)、NotApplicable(沒找到)或Indeterminate(意外錯誤),這些都直接影響到?jīng)Q策結(jié)果。
4 基于目標(biāo)資源的訪問控制
XML文檔資源是一種樹型的結(jié)構(gòu),因此其元素具有繼承性。為了方便,本文給出一個簡化的安全設(shè)備配置信息的XML文檔資源示例,這是一個網(wǎng)絡(luò)安全綜合監(jiān)控平臺中網(wǎng)絡(luò)安全設(shè)備的配置,含有路由器(Router)和掃描器(Scanner)的簡要信息:
<?xml version="1.0" encoding="UTF8"?>
<DeviceSet>
<Device id="ff808081047ac97b01047ae7baed0036">
<DeviceName>Router</DeviceName>
<HostId>192.168.2.1</HostId>
<DeviceType>3000</DeviceType>
</Device>
<Device id="ff808081047ac97b01047ae7bafc0037">
<DeviceName>NSMPScanner</DeviceName>
<HostId>192.168.1.101</HostId>
<DeviceType>2000</DeviceType>
</Device>
</DeviceSet>
現(xiàn)在假設(shè)我們有這樣的一個安全要求:只有系統(tǒng)管理員在上班時間可對該信息進(jìn)行寫操作,該行為要存入日志文件中,其他時間其他角色都禁止寫操作。由于XML文檔樹型結(jié)構(gòu)的特點(diǎn),我們可以通過查詢語言XPath[6]對XML文檔的某些部分進(jìn)行尋址,從而在數(shù)據(jù)源中識別和處理相關(guān)的節(jié)點(diǎn),如各安全設(shè)備配置信息可用“//DeviceSet/Device”表達(dá),所以可以對同一個文檔有不同的策略規(guī)則。對以上的安全要求有這樣的規(guī)則五元組:
<SystemManager, Write+, //DeviceSet/Device, Condition, Obligations>
<Anyone, Write-, //DeviceSet/Device, Condition, Obligations>
相應(yīng)的Rule內(nèi)容如下所示,其中規(guī)則RuleDeviceSet001允許了系統(tǒng)管理員的角色在工作時間內(nèi)可對安全設(shè)備配置信息進(jìn)行寫操作,而規(guī)則RuleDeviceSet002禁止任務(wù)角色對任何資源進(jìn)行任何操作。
<Rule RuleId="RuleDeviceSet001" Effect="Permit">
<Target>
<Subjects>
<Subject>
<SubjectMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:stringequal">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">SystemManager
</AttributeValue>
<SubjectAttributeDesignator AttributeId="urn:oasis:name:tc:xacml:1.0:example:attribute:group"
DataType="http://www.w3.org/2001/XMLSchema#string"/>
</SubjectMatch>
</Subject>
</Subjects>
<Resources>
<Resource>
<ResourceMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:stringequal">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Device</AttributeValue>
<AttributeSelector RequestContextPath="name(//DeviceSet/Device)"
DataType="http://www.w3.org/2001/XMLSchema#string"/>
</ResourceMatch>
</Resource>
</Resources>
<Actions>
<Action>
<ActionMatch MatchId ="urn:oasis:names:tc:xacml:1.0:function:stringequal">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Write</AttributeValue>
<ActionAttributeDesignator AttributeId="urn:oasis:name:tc:xacml:1.0:action:actionid"
DataType="http://www.w3.org/2001/XMLSchema#string"/>
</ActionMatch>
</Action>
</Actions>
</Target>
<Condition FunctionId="http://research.sun.com/projects/xacml/names/function#timeinrange">
<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:timeoneandonly">
<EnvironmentAttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:environment:currenttime"
DataType="http://www.w3.org/2001/XMLSchema#time"/>
</Apply>
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#time">08∶30∶00</AttributeValue>
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#time">17∶00∶00</AttributeValue>
</Condition>
</Rule>
<Rule RuleId="RuleDeviceSet002"Effect="Deny">
<Target>
<Subjects><AnySubject/></Subjects>
<Resources><AnyResource/></Resources>
<Actions><AnyAction/></Actions>
</Target>
</Rule>
兩條規(guī)則通過一定的規(guī)則合并算法,放在同一條策略PolicyDeviceSet001之中,如下所示。這里規(guī)則合并算法采用的是PermitOverrides,保證了系統(tǒng)管理員的正常操作,拒絕了非法用戶的非法操作。策略PolicyDeviceSet001包含了一組責(zé)任Obligations,其屬性FulfillOn表明了該責(zé)任必須實(shí)現(xiàn)的決策值,也只有匹配授權(quán)決策的Obligations才會被PDP返回給PEP,由PEP來執(zhí)行這個責(zé)任。
<?xml version="1.0"encoding="UTF-8"?>
<Policy xmlns="urn:oasis:names:tc:xacml:1.0:policy"
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xsi:schemaLoxation="urn:oasis:names:tc:xacml:1.0:policy csxacmlschemapolicy-01.xsd"
PolicyId="PolicyDeviceSet-001"
RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rulecombiningalgorithm:permitoverrides">
<Target>
<Subjects><AnySubject/></Subjects>
<Resources><AnyResource/></Resources>
<Actions><AnyAction/></Actions>
</Target>
<Rule RuleId="RuleDeviceSet-001" Effect="Permit"/>
<Rule RuleId="RuleDeviceSet-002" Effect="Deny"/>
<Obligations>
<Obligation ObligationId="urn:oasis:names:tc:xacml:example:obligation:log"FulfillOn="Permit">
<AttributeAssigment AttributeId="urn:oasis:names:tc:xacml:2.0:example:attribute:logfile"
DataType="http://www.w3.org/2001/XMLSchema#string">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">
http://192.168.2.108:8080/nsmpweb/log/userlog.log
</AttributeValue>
</AttributeAssigment>
<AttributeAssigment AttributeId="urn:oasis:names:tc:xacml:2.0:example:attribute:text"
DataType="http://www.w3.org/2001/XMLSchema#string">
<SubjectAttributeDesignator AttributeId="urn:oasis:name:tc:xacml:1.0:example:attribute:group"
DataType="http://www.w3.org/2001/XMLSchema#string"/>
</AttributeAssigment>
<AttributeAssigment AttributeId="urn:oasis:names:tc:xacml:2.0:example:attribute:text"
DataType="http://www.w3.org/2001/XMLSchema#string">
write the DeviceSet of
</AttributeAssigment>
<AttributeAssigment AttributeId="urn:oasis:names:tc:xacml:2.0:example:attribute:Device"
DataType="http://www.w3.org/2001/XMLSchema#string">
<AttributeSelector RequestContextPath="//DeviceSet/Device/text()"
DataType="http://www.w3.org/2001/XMLSchema#string"/>
</AttributeAssigment>
</Obligation>
</Obligations>
</Policy>
5 訪問控制決策算法
為了便于描述,本文引入以下變量定義:
Status∈{OK, MissingAttribute, ProcessingError, SyntaxError},表示狀態(tài)值。
Target∈{Match, NoMatch, Indeterminate},表示目標(biāo)匹配結(jié)果值。
Condition∈{True, False, NotApplicable, Indeterminate},表示條件評測結(jié)果值。
Effect∈{ Permit, Deny},表示規(guī)則Effect值。
RuleValue∈{Effect, NotApplicable, Indeterminate},表示規(guī)則評測結(jié)果值。
Decision∈{Permit, Deny, NotApplicable, Indeterminate },表示對訪問請求的決策值。
Response=(Decision, Status, Obligations),表示PDP返回給PEP的響應(yīng)三元組,其中Obligations是策略或策略集中對應(yīng)的所有Obligation元素,當(dāng)Decision為NotApplicable或Indeterminate時為空值。
PEPDecision∈{Permit,Deny},表示PEP對訪問請求的最終決策值。
5.1 查找匹配請求上下文目標(biāo)的規(guī)則算法
當(dāng)PDP接收到訪問請求之后,它首先查找匹配請求上下文中的目標(biāo)(Target)元素,將查找結(jié)果返回Target值。算法如下:
while(!end of all rule){
if(Target==NoMatch) //沒找到匹配上下文中目標(biāo)元素的規(guī)則
Response=(NotApplicable,OK,null);
else if(Target==Indeterminate) //查詢發(fā)生基本錯誤
Response=(Indeterminate,MissingAttribute/ProcessingError/SyntaxError,null);
else if(Target==Match){ //找到匹配的規(guī)則
if(Condition==False or NotApplicable)
RuleValue=NotApplicable;
else if(Condition==Indeterminate)
RuleValue=Indeterminate;
else if(Condition==True)
RuleValue=Permit/Deny;
call綁定算法;
}
}
5.2 多規(guī)則、多策略的合并綁定算法
規(guī)則本身沒有任何的訪問控制能力,必須把它或與其他規(guī)則一起包含在策略當(dāng)中。每一個規(guī)則均屬于一個策略或一個策略集,或一個隸屬于某個策略集的策略。無論這些單獨(dú)的規(guī)則評測結(jié)果值(RuleValue)是什么,在未將它們綁定到一起之前,我們均無法作出最終的決策。在只存在策略的情況下,我們只考慮策略中的規(guī)則綁定算法(RuleCombiningAlgorithm),如果是在存在策略集的復(fù)雜情況下,我們還應(yīng)考慮策略綁定算法(PolicyCombiningAlgorithm),不過這兩者的作用是基本相同的。所有的綁定算法在執(zhí)行時都將返回一個對訪問請求的決策值(Decision)。
(1)Denyoverrides算法。如果某條規(guī)則的評測結(jié)果(RuleValue)為Deny,則對訪問請求的決策值(Decision)為Deny;如果所有規(guī)則的評測結(jié)果都是Permit,則決策結(jié)果是Permit;如果所有規(guī)則的評測結(jié)果都是NotApplicable,則決策結(jié)果是Deny;如果某些規(guī)則的評測結(jié)果是Permit,某些是NotApplicable,則決策結(jié)果是Permit。
(2)Permitoverrides算法。該算法與前文的規(guī)則相反,此處用Permit進(jìn)行重寫。
(3)Firstapplicable算法。返回所獲得的第一個決策,但如果第一個決策是NotApplicable時,則繼續(xù)查看其他決策。每個Rule都將以Policy中的排列順序來進(jìn)行評測。如果Target與之相匹配,而條件的評測結(jié)果為True,則處理過程將會停止,并對此規(guī)則使用Effect(Permit或Deny),否則繼續(xù)處理下一個規(guī)則。
(4)Onlyoneapplicable算法。如果沒有可應(yīng)用的決策,則返回NotApplicable決策,這樣將使PEP返回一個響應(yīng),并將其狀態(tài)值設(shè)置為OK,將其決策值設(shè)置為NotApplicable,以允許對該資源的訪問;如果評測出多個決策,則返回Indeterminate,這樣將使PEP返回一個響應(yīng),并將狀態(tài)值設(shè)置為ProcessingError,將其決策值設(shè)置為Indeterminate,從而拒絕對該資源的訪問。算法如下:
if(CombiningAlgorithm==Denyoverrides){
if(RuleValue==Deny)
Response=(Deny,OK,Obligations);
else if(RuleValue==permit)
Response=(Permit,OK,Obligations);
else if(RuleValue==NotApplicable)
Response=(Deny, OK, Obligations);
else if((RuleValue==Permit)&&(RuleValue==NotApplicable))
Response=(Permit,OK,Obligations);
}
else if (CombiningAlgorithm==Permitoverrides){
if(RuleValue==Permit)
Response=(Permit,OK,Obligations);
else if(RuleValue==Deny)
Response=(Deny,OK,Obligations);
else if((RuleValue==NotApplicable)
Response=(Permit,OK,Obligations);
else if((RuleValue==Deny)&&(RuleValue==NotApplicable))
Response=(Deny,OK,Obligations);
}
else if(CombiningAlgorithm==Firstapplicable){
while(!end of all rules in policy by order){
if(Condition==True){
Response=(Effect,OK,Obligations);
break;
}
}
}
else if(CombiningAlgorithm==Onlyoneapplicable){
if(找不到可應(yīng)用的決策)
Response=(NotApplicable,OK,null);
else if (有多個決策)
Response=(Indeterminate,ProcessingError,null);
}
5.3 PEP對決策響應(yīng)的執(zhí)行算法
PEP接收到PDP決策后的響應(yīng)Response,該響應(yīng)由三元組(Decision,Status,Obligations)構(gòu)成。通過以上算法可知,當(dāng)其中Decision決策值為Permit或Deny時,Response包含了策略或策略集中相對應(yīng)的所有Obligation元素。PEP要根據(jù)其中的Decision,Status和Obligations的情況決定最終是否允許或拒絕訪問者對資源的訪問。算法如下:
if(Decision==Indeterminate && Status==MissingAttribute/ProcessingError/SyntaxError)
PEPDecision=Deny;
else if(Decision==NotApplicable && Status==OK)
PEPDecision=Permit;
else if(Decision==Permit && Status==OK){
PEP執(zhí)行Obligations中Fulfillon="Permit"的責(zé)任;
if(責(zé)任無法被理解或沒有被執(zhí)行)
PEPDecision=Deny;else
PEPDecision=Permit;
}
else if(Decision==Deny && Status==OK){
PEP執(zhí)行Obligations中FulfillOn="Deny"的責(zé)任;
PEPDecision=Deny;
}
6 結(jié)束語
對網(wǎng)絡(luò)資源進(jìn)行訪問控制已是信息安全領(lǐng)域一個重要的基礎(chǔ)性研究課題。本文分析了訪問控制新的需求和XACML可擴(kuò)展訪問控制標(biāo)記語言的特點(diǎn),在XACML的語言模型和標(biāo)準(zhǔn)訪問控制模型基礎(chǔ)上,給出了一個可移植的、用統(tǒng)一的方法來描述訪問控制元素的訪問規(guī)則和策略實(shí)例以及訪問控制過程的決策算法,能滿足對網(wǎng)絡(luò)資源進(jìn)行細(xì)粒度的訪問控制,具有可擴(kuò)展性,支持參數(shù)化的規(guī)則、策略描述和多樣化的規(guī)則、策略組合。
值得注意的是,本文以一個XML文檔資源作為實(shí)例,但這并不意味著XACML策略只能用于對基于XML的信息的訪問控制,它也可以用于文件系統(tǒng)中的其他內(nèi)容。
參考文獻(xiàn):
[1]W3C. eXtensible Markup Language(XML) 1.0 (3rd edition)[EB/OL]. http://www.w3.org/TR/2004/RECxml20040204, 2004-02-04.
[2] Anne Anderson.A Comparison of EPAL and XACML[EB/OL].http://research.sun.com/projects/xacml/CompareEPALandXACML.html, 2004-0712.
[3]Jan Rihak.Access Control Markup Languages for XML Documents[EB/OL].http://www.infsec.ethz.ch/people/psevinc/AC4XMLReport.pdf, 2004-08.
[4]OASIS. eXtensible Access Control Markup Language(XACML) version 2.0[EB/OL]. http://docs.oasisopen.org/xacml/2.0/access_controlxacml2.0corespecos.pdf, 2005-02-01.
[5]W3C. XSL Transformations(XSLT) version 1.0[EB/OL]. http://www.w3.org/TR/xslt, 19991116.
[6]W3C. XML Path Language(XPath) version 1.0[EB/OL]. http://www.opendl.com/openxml/w3/TR/xpath/xpathgb.html, 2003-08-05.
作者簡介:
唐成華(1974-),男,湖北黃岡人,博士研究生,主要研究方向?yàn)樾畔踩⑿畔⑷诤稀IMS技術(shù);胡昌振,男,教授,博導(dǎo),主要研究方向?yàn)樾畔踩⑿畔⑷诤系取?/p>
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文