摘 要:通過(guò)分析傳統(tǒng)訪問(wèn)控制模型及其實(shí)現(xiàn)機(jī)制的優(yōu)缺點(diǎn),提出了一種基于AC證書(shū)的XACML訪問(wèn)控制模型及其實(shí)現(xiàn)方法,并對(duì)模型的安全性進(jìn)行了分析。
關(guān)鍵詞:訪問(wèn)控制; AC; XACML; 安全性
中圖法分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1001-3695(2006)10-0133-04
Design and Implementation of XACML Access Control Model Based on AC
TANG Chenghua1,2, HU Changzhen1,2
(1.Information Security Antagonism Research Center, Beijing University of Technology, Beijing 100081, China; 2.College of Mechanical Engineering, Beijing University of Technology, Beijing 100081, China)
Abstract:By analyzing the features of traditional access control models and relative implementation mechanism, puts forward an XACML access control model based on AC and its realizing methods. The security of this model is also analyzed.
Key words:Access Control; AC; XACML; Security
ISO在網(wǎng)絡(luò)安全標(biāo)準(zhǔn)(ISO 74982)中提出了設(shè)計(jì)安全信息系統(tǒng)基礎(chǔ)架構(gòu)時(shí)應(yīng)該包含五類(lèi)安全服務(wù)(身份認(rèn)證服務(wù)、訪問(wèn)控制、數(shù)據(jù)完整性、數(shù)據(jù)保密性和不可抵賴(lài)性),訪問(wèn)控制已成為信息安全領(lǐng)域中的一個(gè)基礎(chǔ)性的核心問(wèn)題。所謂訪問(wèn)控制,就是通過(guò)某種途徑顯示準(zhǔn)許或限制主體的訪問(wèn)能力及范圍,從而限制對(duì)目標(biāo)資源的訪問(wèn),防止非法用戶的侵入或合法用戶的不慎操作所造成的破壞。傳統(tǒng)的應(yīng)用系統(tǒng)通常是使用用戶名、口令和用戶或所屬組別對(duì)應(yīng)的級(jí)別或權(quán)限來(lái)實(shí)現(xiàn)對(duì)用戶的訪問(wèn)控制,這些系統(tǒng)都是針對(duì)所保護(hù)的資源獨(dú)立進(jìn)行訪問(wèn)控制的管理。由于不同系統(tǒng)的設(shè)計(jì)和實(shí)施策略不同,其結(jié)果會(huì)出現(xiàn)多種不同的訪問(wèn)控制策略,從而帶來(lái)一系列問(wèn)題:權(quán)限管理混亂、系統(tǒng)漏洞隱患、權(quán)限管理依賴(lài)于應(yīng)用、資源所有者沒(méi)有權(quán)限、開(kāi)發(fā)費(fèi)用高和管理負(fù)擔(dān)重等。
1 傳統(tǒng)訪問(wèn)控制模型及實(shí)現(xiàn)機(jī)制的分析
從20世紀(jì)70年代開(kāi)始,訪問(wèn)控制技術(shù)的研究取得了較大的成果。1973年Bell和LaPadula提出了BLP多級(jí)安全模型;1976年Harrison等人提出了HRU模型;Jones等人提出了TakeGrant模型;Biba在1977提出了另一種側(cè)重于信息完整性的Biba多級(jí)安全模型,后來(lái)美國(guó)國(guó)防部在可信計(jì)算機(jī)系統(tǒng)評(píng)估準(zhǔn)則(Trusted Computer System Evaluation Criteria,TCSEC)[1]中描述了著名的自主訪問(wèn)控制模型(DAC)和強(qiáng)制訪問(wèn)控制模型(MAC);Ferraiolo和Kuhn在1992年提出了基于角色的訪問(wèn)控制模型(RBAC);近年來(lái)又出現(xiàn)了基于工作流或任務(wù)的訪問(wèn)控制模型[2]。
通過(guò)研究可以發(fā)現(xiàn),RBAC及其以前的模型是從系統(tǒng)本身的角度進(jìn)行描述,沒(méi)有考慮主體操作時(shí)的環(huán)境因素的影響;權(quán)限由管理員管理,但管理員不一定是資源所有者,而且權(quán)限沒(méi)有時(shí)效性;在分布式環(huán)境中難以統(tǒng)一控制,自身數(shù)據(jù)存儲(chǔ)的安全性也得不到保障。而基于工作流或任務(wù)的訪問(wèn)控制模型雖然考慮了操作環(huán)境的變化,權(quán)限具有時(shí)效性,但過(guò)程比較復(fù)雜,目前處于研究階段,實(shí)現(xiàn)起來(lái)較困難。在訪問(wèn)控制模型實(shí)現(xiàn)機(jī)制上,從數(shù)據(jù)存儲(chǔ)及獲取的角度可以分為以下三種:
(1)基于訪問(wèn)控制列表ACL的方式。將主體與訪問(wèn)權(quán)限按一定關(guān)系存儲(chǔ)在數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)中包含目標(biāo)資源、主體和主體可能隸屬組的信息,這種關(guān)系稱(chēng)之為訪問(wèn)控制列表(ACL),有時(shí)也稱(chēng)為訪問(wèn)控制矩陣(ACM)。上述所有模型均可采用這種方式,如RBAC主要就是采用簡(jiǎn)要表[3]、鎖—鑰矩陣[4]等實(shí)現(xiàn)機(jī)制。該方式理論成熟、易于實(shí)現(xiàn),在小型的應(yīng)用中能有效地解決問(wèn)題。但是隨著系統(tǒng)規(guī)模的擴(kuò)大,用戶數(shù)目的劇增和數(shù)據(jù)表的急劇增長(zhǎng),對(duì)于一個(gè)大型或分布式的應(yīng)用系統(tǒng)來(lái)說(shuō),此時(shí)如果嚴(yán)格依賴(lài)于ACL中主體及對(duì)應(yīng)權(quán)限的列舉,必然要保證各處ACL的一致性和定期更新,同時(shí)必須要額外考慮數(shù)據(jù)存儲(chǔ)和傳輸?shù)陌踩?,這些將成為系統(tǒng)的瓶頸。
(2)基于公鑰證書(shū)PKC的方式。隨著身份認(rèn)證技術(shù)的發(fā)展,在身份認(rèn)證服務(wù)的基礎(chǔ)上來(lái)完成訪問(wèn)控制是近年來(lái)研究的熱點(diǎn)。這種通過(guò)第三方的可交換的信息將授權(quán)和訪問(wèn)控制操作與具體的應(yīng)用分隔開(kāi)來(lái),集中處理,并有數(shù)字簽名的特征,因此又具有極大的安全性。在研究初期,人們考慮利用PKI公鑰證書(shū)PKC(Public Key Certificate)的擴(kuò)展項(xiàng)的功能將用戶的權(quán)限信息存儲(chǔ)在PKC的擴(kuò)展項(xiàng)中,在身份認(rèn)證的同時(shí)即完成了權(quán)限的認(rèn)證,認(rèn)證過(guò)程簡(jiǎn)單、效率高。但這種方式存在重大缺陷:ITUT在X.509中定義PKC的簽發(fā)者一般是CA(Certificate Authority),其通常都是政府機(jī)關(guān)部門(mén),一般是無(wú)法了解具體的用戶、角色、職位等詳細(xì)信息的,因此很難為每一個(gè)PKC中的標(biāo)志設(shè)置權(quán)限,也無(wú)法及時(shí)、準(zhǔn)確、動(dòng)態(tài)地進(jìn)行管理;另外,申請(qǐng)身份證書(shū)的代價(jià)也較高。因此,這種方式并沒(méi)有真正的可實(shí)施性。
(3)基于屬性證書(shū)AC的方式。屬性證書(shū)AC(Attribute Certificate)是由PMI(Privilege Management Infrastructure,特權(quán)管理基礎(chǔ)設(shè)施)[5]的屬性權(quán)威部門(mén)AA(Attribute Authority)簽發(fā)的包含某持有者的屬性集(如角色、訪問(wèn)權(quán)限、組成員等)和相關(guān)信息的數(shù)據(jù)結(jié)構(gòu)。ITUT在2000年頒布的X.509(v4)是第一份標(biāo)準(zhǔn)的PMI證書(shū)格式的版本,定義了PMI的授權(quán)模型和框架結(jié)構(gòu),它建立在PKI提供的可信任身份認(rèn)證服務(wù)的基礎(chǔ)上。在PMI標(biāo)準(zhǔn)化之前,人們考慮在PKC的擴(kuò)展項(xiàng)中用指針指向AC的數(shù)據(jù)結(jié)構(gòu)的方式[6],此時(shí)授權(quán)信息仍然與PKC緊密結(jié)合,同樣具有上一節(jié)所描述的缺陷。文獻(xiàn)[7]闡述了這種缺陷,并建議將授權(quán)信息與PKC分離放在AC中,而AC與PKC的關(guān)聯(lián)通過(guò)唯一的標(biāo)志來(lái)完成。PMI提供了一種有效的體系結(jié)構(gòu)來(lái)管理用戶的屬性,能支持DAC,MAC,RBAC等各種不同的訪問(wèn)控制機(jī)制,采用角色說(shuō)明屬性證書(shū)(Role Specification AC)和角色分配屬性證書(shū)(Role Assignment AC)來(lái)管理用戶的權(quán)限,這兩種證書(shū)能滿足如基于RBAC的細(xì)粒度的訪問(wèn)控制。在角色說(shuō)明屬性證書(shū)中,屬性證書(shū)持有者是角色,其權(quán)限屬性是角色承認(rèn)的權(quán)限;而在角色分配屬性證書(shū)中,屬性證書(shū)的持有者是用戶,其權(quán)限屬性是賦予用戶的角色。X.509也允許將角色和權(quán)限作為屬性插到角色說(shuō)明屬性證書(shū)中,從而支持較復(fù)雜的分級(jí)RBAC。通過(guò)屬性證書(shū)的方式將授權(quán)和訪問(wèn)控制與具體的應(yīng)用分隔開(kāi)來(lái),由AA完成兩種屬性證書(shū)的簽發(fā)、受理和管理,可以安全地分布式存放,但其中對(duì)角色說(shuō)明屬性證書(shū)的操作比較復(fù)雜耗時(shí)。
通過(guò)以上分析傳統(tǒng)訪問(wèn)控制模型及其實(shí)現(xiàn)機(jī)制的優(yōu)缺點(diǎn),結(jié)合我們開(kāi)發(fā)的一個(gè)多級(jí)網(wǎng)絡(luò)安全綜合監(jiān)控系統(tǒng)的多層次、多任務(wù)、多資源、多用戶、環(huán)境復(fù)雜的特點(diǎn),提出了一種基于AC的XACML(eXtensible Access Control Markup Language,可擴(kuò)展訪問(wèn)控制標(biāo)記語(yǔ)言)訪問(wèn)控制模型。該模型利用了角色說(shuō)明屬性證書(shū)的集中管理、防竄改的特性,并充分考慮XACML的訪問(wèn)控制策略語(yǔ)言的可擴(kuò)展、可簽名、可加密、與應(yīng)用無(wú)關(guān)的優(yōu)點(diǎn),能為多層次、大型復(fù)雜的網(wǎng)絡(luò)應(yīng)用系統(tǒng)提供統(tǒng)一有效的、與具體應(yīng)用系統(tǒng)開(kāi)發(fā)和管理無(wú)關(guān)的、高安全強(qiáng)度、靈活、易擴(kuò)展的授權(quán)和訪問(wèn)控制平臺(tái)。
2 AC角色說(shuō)明屬性證書(shū)的格式及管理
AC角色說(shuō)明屬性證書(shū)是AC證書(shū)的一種,其格式如下:
AttributeCertificate::=SEQUENCE{
acinfo AttributeCertificateInfo, //證書(shū)基本信息
signatureAlgorithm AlgorithmIdentifier, //簽名算法
signatureValue BIT STRING //簽名值
}
AttributeCertificateInfo::=SEQUENCE{
version AttCertVersionversion is v2, //版本號(hào)
holder Holder, //AC持有者標(biāo)識(shí)符
issuer AttCertIssuer, //AC簽發(fā)者標(biāo)識(shí)符
signature AlgorithmIdentifier, //對(duì)AC的簽名算法標(biāo)識(shí)符
serialNumber CertificateSerialNumber, //AC序列號(hào)
attrCertValidityPeriod AttCertValidityPeriod, //AC有效期
attributes SEQUENCE of Attribute, //屬性值序列
issuerUniqueID UniqueIdentifier OPTIONAL,
//證書(shū)簽發(fā)者標(biāo)識(shí)符(可選)
extensions Extensions OPTIONAL, //AC擴(kuò)展項(xiàng)(可選)
}
AttCertVersion::= INTEGER { v2(1) }
…//其他定義
PKC是將一個(gè)標(biāo)志和公鑰綁定,而AC是將一個(gè)標(biāo)志和角色、權(quán)限或?qū)傩越壎ǎㄍㄟ^(guò)數(shù)字簽名)。在這里,Holder域作為AC證書(shū)持有者的標(biāo)識(shí)符,必須能唯一確定一個(gè)用戶。因此,在建立AC時(shí),可以直接取值為用戶PKC里的標(biāo)志。每一個(gè)AC證書(shū)持有者的權(quán)限、角色等信息正是通過(guò)attributes屬性值來(lái)表達(dá)。為AC證書(shū)持有者規(guī)定所分配的角色信息的AC證書(shū)即為角色分配屬性證書(shū)。一個(gè)AC角色分配屬性證書(shū)的內(nèi)容如下:
Version:V2
Holder.cn=Tang,ou=RD,o=BIT,c=CN
Issuer:ou=AA,o=BIT,c=CN
Signature:
Serial#:3864557723
Valid from:5/2/2005 8:00am
Valid until:5/2/2006 8:00am
Attributes:Access Identity,Group,manager
Extensions:Authority Key Identifier,CRLDP
與PKC一樣,AC可以被分發(fā)、存儲(chǔ)或緩存在非安全的分布式環(huán)境中,不可以被偽造和竄改。
PMI提供了對(duì)屬性證書(shū)的管理模型,用來(lái)實(shí)現(xiàn)對(duì)主體屬性證書(shū)的創(chuàng)建、存儲(chǔ)、分發(fā)、查詢、驗(yàn)證和取消。它主要由以下實(shí)體組成:屬性權(quán)威(Attribute Authority,AA)、屬性證書(shū)(Attribute Certificate,AC)、驗(yàn)證者(Attribute Certificate Verifier,ACV)和Client客戶端,如圖1所示。
AA負(fù)責(zé)對(duì)AC的簽發(fā)、受理和管理,而ACV檢驗(yàn)AC是否有效,進(jìn)而確定是否授予訪問(wèn)權(quán)限。當(dāng)Client要進(jìn)行訪問(wèn)時(shí),首先進(jìn)行ACV檢驗(yàn)。Client與ACV之間的AC交換方式有兩種,即推和拉。如果用推,Client首先在數(shù)據(jù)庫(kù)中檢索到自己的AC,然后推給ACV并發(fā)出訪問(wèn)請(qǐng)求;如果用拉,Client首先向ACV發(fā)出訪問(wèn)請(qǐng)求,ACV根據(jù)請(qǐng)求,在數(shù)據(jù)庫(kù)中查找Client對(duì)應(yīng)的AC。在ACV獲得AC之后,將檢驗(yàn)AC的簽名是否有效,此時(shí)如果發(fā)現(xiàn)AC的Holder域是由用戶的PKC標(biāo)志身份的,則進(jìn)一步去檢驗(yàn)PCK的有效性。如果AC有效,并且該訪問(wèn)請(qǐng)求由AC的屬性內(nèi)容允許,那么Client的訪問(wèn)請(qǐng)求也就通過(guò)了ACV檢驗(yàn)。
3 XACML訪問(wèn)控制策略
屬性證書(shū)自身只是描述持有者屬性的一種靜態(tài)數(shù)據(jù)結(jié)構(gòu),必須通過(guò)相應(yīng)的系統(tǒng)安全策略來(lái)實(shí)現(xiàn)對(duì)系統(tǒng)的訪問(wèn)控制。X.509標(biāo)準(zhǔn)并沒(méi)有標(biāo)準(zhǔn)化任何類(lèi)型的授權(quán)或訪問(wèn)控制策略,這些都留給了應(yīng)用系統(tǒng)。PERMIS[8]已經(jīng)發(fā)布了這種基于屬性證書(shū)的策略標(biāo)準(zhǔn)(數(shù)據(jù)類(lèi)型定義DTD),該標(biāo)準(zhǔn)用來(lái)描述X.509 PMI RBAC策略。文獻(xiàn)[9]從DTD定義的七個(gè)組成部分出發(fā),用XML語(yǔ)言描述了RBAC的策略。
XACML是一種基于XML的適用于描述分布式系統(tǒng)訪問(wèn)控制的語(yǔ)言,它既是一種訪問(wèn)控制策略語(yǔ)言,也是一種請(qǐng)求(Request)/響應(yīng)(Response)描述語(yǔ)言。自從OASIS在2003年發(fā)布XACML v1.0標(biāo)準(zhǔn)后,得到了大量商業(yè)公司的支持,2005年2月1日OASIS將XACML v2.0[10]及其所有相關(guān)文檔發(fā)布為標(biāo)準(zhǔn)規(guī)范集。
XACML具備可移植、可擴(kuò)展、支持參數(shù)化的策略描述和多樣化的策略組合,是一種可傳遞策略信息的交換格式,具有同時(shí)能被人和計(jì)算機(jī)識(shí)別的特點(diǎn),也有其他策略描述語(yǔ)言同樣的要素:訪問(wèn)目標(biāo)、主體、操作以及規(guī)則等。這些控制元素都是用統(tǒng)一的方法來(lái)描述,支持對(duì)環(huán)境資源屬性的考慮,支持對(duì)策略規(guī)則的條件約束和沖突檢測(cè)。XACML的應(yīng)用能夠?qū)υL問(wèn)請(qǐng)求進(jìn)行決策,同時(shí)也彌補(bǔ)了系統(tǒng)的安全性問(wèn)題,并且我們制定的訪問(wèn)控制模型不限于簡(jiǎn)單的對(duì)訪問(wèn)請(qǐng)求的允許或拒絕,主體在最終獲得對(duì)目標(biāo)資源的訪問(wèn)權(quán)限之前,必須同意執(zhí)行某些責(zé)任(Obligations)。以下描述了XACML的請(qǐng)求、策略和響應(yīng):
(1)一個(gè)XACML請(qǐng)求包括了一個(gè)由主體(Subject)、行為(Action)和資源(Resource)組成的目標(biāo)(Target)元素,表達(dá)了“Who,Wants to do,What”的意義。XACML請(qǐng)求的Target元素被用于提取相應(yīng)的策略或規(guī)則,從而對(duì)請(qǐng)求進(jìn)行決策。XACML請(qǐng)求格式如下:
(2)一個(gè)典型的XACML訪問(wèn)控制策略包括了目標(biāo)(Target)、規(guī)則(Rule)和責(zé)任(Obligations)。其中目標(biāo)元素可視為數(shù)據(jù)庫(kù)中的主鍵,當(dāng)接收到訪問(wèn)請(qǐng)求時(shí),先要檢索與XACML請(qǐng)求中目標(biāo)相匹配目標(biāo)的策略;規(guī)則包括了目標(biāo)(Target)、執(zhí)行條件(Condition)和結(jié)果(Effect);責(zé)任是對(duì)訪問(wèn)請(qǐng)求進(jìn)行決策之后,訪問(wèn)者必須要執(zhí)行的一些責(zé)任性的動(dòng)作。典型的XACML策略如下:
(3)XACML響應(yīng)封裝了由PDP返回給PEP的授權(quán)決策,它包括對(duì)所請(qǐng)求資源的授權(quán)決策結(jié)果元素Result。如果該元素包括責(zé)任Obligation元素,則PEP必須可以評(píng)測(cè)并執(zhí)行所有這些內(nèi)容;否則,PEP必須拒絕對(duì)所請(qǐng)求資源的訪問(wèn)。
典型的XACML響應(yīng)格式如下:
4 基于AC的XACML訪問(wèn)控制模型
基于AC屬性證書(shū)的XACML訪問(wèn)控制模型如圖2所示。
4.1 模型分析
基于AC的XACML訪問(wèn)控制模型參考了IETF策略框架工作組和DMTF分布式管理任務(wù)組提出的策略管理結(jié)構(gòu)[11]。流程如下:策略執(zhí)行點(diǎn)(PEP)接收經(jīng)過(guò)身份認(rèn)證后的訪問(wèn)請(qǐng)求信息,經(jīng)XACML上下文處理器被送到策略判決點(diǎn)(PDP);PDP獲得相關(guān)的屬性信息后,按照相應(yīng)的XACML策略對(duì)訪問(wèn)請(qǐng)求進(jìn)行判決并返回;最后由PEP按照判決結(jié)果進(jìn)行操作。
(1)認(rèn)證層。該層對(duì)訪問(wèn)者身份進(jìn)行認(rèn)證,訪問(wèn)請(qǐng)求在到達(dá)PEP之前,必須要先通過(guò)身份認(rèn)證中心對(duì)PKC的認(rèn)證,通過(guò)后才能向訪問(wèn)者繼續(xù)提供服務(wù)。
(2)實(shí)施層。該層是在傳遞訪問(wèn)請(qǐng)求信息后,負(fù)責(zé)對(duì)訪問(wèn)請(qǐng)求的判決結(jié)果進(jìn)行實(shí)施,其核心是PEP。PEP應(yīng)該是系統(tǒng)結(jié)構(gòu)中唯一暴露給具體應(yīng)用的部分,它接收的訪問(wèn)請(qǐng)求信息格式可以是具體應(yīng)用提供的格式,不需要進(jìn)行轉(zhuǎn)換,因此減輕了應(yīng)用系統(tǒng)開(kāi)發(fā)的負(fù)擔(dān)。在得到訪問(wèn)請(qǐng)求的判決結(jié)果(Permit或Deny)后,PEP必須執(zhí)行與判決結(jié)果相關(guān)聯(lián)的責(zé)任。如果PEP無(wú)法理解責(zé)任中的任意一項(xiàng),就必須拒絕訪問(wèn),即使PDP已決定允許訪問(wèn)。另外,如果某項(xiàng)責(zé)任沒(méi)有被實(shí)現(xiàn),則PEP也必須拒絕訪問(wèn),直到所有的責(zé)任都得到滿足。
(3)判決層。該層是訪問(wèn)控制模型的核心,包括XACML上下文處理器、策略信息收集點(diǎn)PIP和策略判決點(diǎn)PDP,其作用是根據(jù)策略、資源和屬性等信息對(duì)訪問(wèn)請(qǐng)求進(jìn)行判決。
XACML上下文處理器是為了適應(yīng)不同的應(yīng)用環(huán)境而設(shè)計(jì),用于將XACML核心語(yǔ)言與應(yīng)用程序環(huán)境及其他內(nèi)容隔離。XACML上下文提供了PEP與PDP之間信息交換的模式,無(wú)論應(yīng)用程序的表示法或環(huán)境是XACML,SAML,.NET,J2SE,CORBA等,都能夠?qū)⑺鼈冝D(zhuǎn)換為XACML的上下文,或者說(shuō),在消息到達(dá)PDP之前很可能要進(jìn)行一次格式轉(zhuǎn)換,如可以通過(guò)XSLT[12]轉(zhuǎn)換將SAML消息轉(zhuǎn)換為XACML消息。這樣,由于XACML上下文處理器的存在,消除了策略創(chuàng)建人對(duì)特定應(yīng)用環(huán)境的顧慮,允許在企業(yè)內(nèi)使用不同格式,同時(shí)也使PDP專(zhuān)注于對(duì)XACML請(qǐng)求和屬性信息的解析和判決,而與具體的應(yīng)用完全脫離開(kāi)來(lái),極大地提高了靈活性。策略信息收集點(diǎn)PIP的存在也使得XACML能專(zhuān)注于訪問(wèn)請(qǐng)求與判決請(qǐng)求、判決結(jié)果與判決回應(yīng)之間格式的轉(zhuǎn)換。
(4)存儲(chǔ)層。該層是采用LDAP協(xié)議為系統(tǒng)構(gòu)建的后臺(tái)數(shù)據(jù)庫(kù),能夠優(yōu)化對(duì)證書(shū)、XACML策略及資源、環(huán)境等屬性信息的查詢。這里的LDAP數(shù)據(jù)庫(kù)在物理上可以是多個(gè)分布式的存放。
(5)管理層。該層包括CA認(rèn)證權(quán)威對(duì)用戶身份證書(shū)的申請(qǐng)、發(fā)布、撤銷(xiāo)等,AA屬性權(quán)威對(duì)角色分配證書(shū)的管理,XACML策略管理和對(duì)主體、資源、環(huán)境等屬性信息的管理。
4.2 數(shù)據(jù)流分析
模型的數(shù)據(jù)流如圖3所示。
經(jīng)過(guò)身份認(rèn)證后的數(shù)據(jù)流過(guò)程按以下步驟執(zhí)行:
(1)訪問(wèn)請(qǐng)求到達(dá)PEP;
(2)PEP將訪問(wèn)請(qǐng)求原封不動(dòng)地轉(zhuǎn)發(fā)給上下文處理器,該請(qǐng)求中可能包括主體、資源、環(huán)境及行為的屬性;
(3)上下文處理器將收到的訪問(wèn)請(qǐng)求轉(zhuǎn)換為XACML格式的請(qǐng)求,并將之發(fā)給PDP;
(4)PDP收到XACML請(qǐng)求后,向上下文處理器提出更多的主體、資源、環(huán)境及行為請(qǐng)求;
(5)上下文處理器向PIP提出屬性請(qǐng)求;
(6)PIP獲取屬性值,其中包含了AC角色分配屬性證書(shū);
(7)PIP返回屬性值給上下文處理器;
(8)上下文處理器將這些資源和屬性信息以及請(qǐng)求信息做進(jìn)一步處理,并向PDP提出包含必要資源和屬性信息的決策請(qǐng)求;
(9)PDP根據(jù)PAP提供的策略對(duì)該決策請(qǐng)求作出判決,并返回XACML格式的決策結(jié)果;
(10)上下文處理器將決策結(jié)果轉(zhuǎn)換為PEP的格式,并返回給PEP;
(11)PEP實(shí)施決策結(jié)果,履行相應(yīng)的責(zé)任;
(12)根據(jù)訪問(wèn)請(qǐng)求的判決結(jié)果以及責(zé)任的履行情況,決定允許或拒絕用戶訪問(wèn)資源。
4.3 安全性分析
AC證書(shū)是建立在PKC公鑰證書(shū)的基礎(chǔ)上,有數(shù)字簽名的特點(diǎn),可以分布式存放,安全性極高。XACML是定義規(guī)則、策略和策略集的有效方法,有關(guān)XACML的規(guī)則、策略及決策算法,筆者有另文論述。具有PEP,PDP等的XACML模型結(jié)構(gòu)具有影響實(shí)現(xiàn)訪問(wèn)控制決策的重要安全需求:
(1)保密性。保密性意味著只有期望的接收方才能讀取消息的內(nèi)容,而在消息發(fā)送途中截取消息的其他任何人都不能讀取它的內(nèi)容。這里我們一方面考慮傳輸過(guò)程的機(jī)密性,通過(guò)在所使用的傳輸上使用加密實(shí)現(xiàn),如SSL安全套接字技術(shù),這是一種廣泛使用的Internet傳輸加密標(biāo)準(zhǔn),給基于TCP/IP的客戶/服務(wù)器應(yīng)用系統(tǒng)提供了客戶端和服務(wù)器端的鑒別、數(shù)據(jù)完整性和保密性;另一方面對(duì)信息本身的加密,如策略語(yǔ)句中的保密性可以對(duì)關(guān)鍵或敏感的數(shù)據(jù)進(jìn)行隱藏,當(dāng)發(fā)送或存儲(chǔ)策略時(shí),可以使用XML加密技術(shù)選擇性地對(duì)這些部分進(jìn)行加密。這些技術(shù)都已比較成熟。
(2)完整性。完整性是防止信息不被意外或惡意地修改。由于XACML模型中PDP對(duì)策略文檔的處理位于核心,所以這些文檔必須要保證不能在未被察覺(jué)的情況下被修改。一般情況下可以通過(guò)實(shí)現(xiàn)各實(shí)體之間的保密性在系統(tǒng)級(jí)上實(shí)現(xiàn)完整性,但如果是多層次或分布式的系統(tǒng)時(shí)、策略的發(fā)布和獲取時(shí)或者當(dāng)策略本身攜帶有數(shù)據(jù)時(shí),可考慮在策略語(yǔ)句中包含對(duì)策略的數(shù)字簽名。同樣,XML簽名技術(shù)是提供給對(duì)XACML策略進(jìn)行數(shù)字簽名的理想手段。
(3)不可抵賴(lài)性。信息發(fā)送者在發(fā)送完數(shù)據(jù)后,對(duì)所發(fā)送的數(shù)據(jù)不可抵賴(lài)。由于訪問(wèn)者的訪問(wèn)過(guò)程是經(jīng)過(guò)PKC身份認(rèn)證后進(jìn)行的,而且AC證書(shū)中也可包含其身份ID,在進(jìn)行訪問(wèn)控制決策的時(shí)候也要獲得訪問(wèn)主體的各種屬性信息,因此對(duì)于訪問(wèn)者對(duì)資源進(jìn)行操作的請(qǐng)求是無(wú)法抵賴(lài)的。
5 結(jié)束語(yǔ)
本文在分析傳統(tǒng)訪問(wèn)控制模型及實(shí)現(xiàn)機(jī)制基礎(chǔ)上,建立了一種基于AC屬性證書(shū)的XACML訪問(wèn)控制模型,并對(duì)模型進(jìn)行了分析。該模型中利用角色分配屬性證書(shū)完成對(duì)用戶權(quán)限的分配,利用XACML策略對(duì)用戶的訪問(wèn)進(jìn)行控制。通過(guò)分析和應(yīng)用,該模型能夠適應(yīng)多層次、多任務(wù)、多資源的復(fù)雜應(yīng)用系統(tǒng),并具有可擴(kuò)展、可簽名、可加密、高安全強(qiáng)度、與具體應(yīng)用無(wú)關(guān)的特點(diǎn),可以很好地實(shí)現(xiàn)Web環(huán)境下的安全訪問(wèn)控制。
參考文獻(xiàn):
[1]DoD 5200, 28STD, Trusted Computer System Evaluation Criteria[S]. Department of Defence Computer Security Center, 1985.
[2]Deng JiBo, Hong Fan. Taskbased Access Control Model[J]. Journal of Software, 2003,14(1):76-82.
[3]S H von Solms, Isak van der Merwe. The Management of Computer Security Profiles Using a RoleOriented Approach[J]. Computer Security, 1994,13(8):673-680.
[4]Hwang M S, Tzeng W G, Yang W P. A Twokeylockpair Access Method Using Prime Factorization and Time Stamp[J].IEICE Trans., Inf. Syst., 1994,E77-D(9):10421046.
[5]ITUT Recommendation X.509, the Directory: Publickey and Attribute Certificate Frameworks[S].
[6]Joon S Park, Ravi Sandhu, SreeLatha Ghanta. RBAC on the Web by Secure Cookies[EB/OL]. http://www.list.gmu.edu/confrnc/ifip/ifip99cookies.pdf, 2005-03.
[7]An Internet Attribute Certificate Profile for Authorization[S]. RFC 3281, 2002.
[8]D W Chadwick, O Otenko. The PERMIS X.509 Role Based Privilege Management Infrastructure[EB/OL]. http://sec.isi.salford.ac.uk/download/SACMATfinal.pdf, 2002.
[9]D W Chadwick, A Otenko. RBAC Policies in XML for X.509 Based Privilege Management[EB/OL]. http://sec.isi.salford.ac.uk/download/Sec2002Final.pdf, 2002.
[10]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.
[11]R Yavatkar, D Pendarakis, R Guerin. A Framework for Policybased Admission Control[EB/OL]. http://www.rfcarchive.org/getrfc.php?rfc=2753, 2000-01.
[12]W3C.XSL Transformations(XSLT), version 1.0[EB/OL]. http://www.w3.org/TR/xslt, 19991116.
作者簡(jiǎn)介:
唐成華(1974-),男,湖北黃岡人,博士研究生,主要研究方向?yàn)樾畔踩?、信息融合、CIMS技術(shù);胡昌振,男,教授,博導(dǎo),主要研究方向?yàn)樾畔踩?、信息融合等?/p>
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文