摘要:設(shè)計(jì)并實(shí)現(xiàn)了一種基于時(shí)間約束的角色訪問控制系統(tǒng),描述了系統(tǒng)中的時(shí)間約束,分析了在引入時(shí)間后系統(tǒng)中存在的沖突,給出了解決沖突的策略以及各功能模塊的實(shí)現(xiàn)。
關(guān)鍵詞:時(shí)間約束; 訪問控制; 基于角色
中圖分類號(hào):TP302文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2008)01-0195-02
訪問控制技術(shù)是信息安全的重要保障措施之一,已經(jīng)經(jīng)歷了二十多年的發(fā)展。訪問控制技術(shù)的一次重大飛躍是Ravis. Sandhu等人提出的基于角色的訪問控制(RBAC)[1],將角色的概念引入訪問控制,大大簡(jiǎn)化了授權(quán)管理的方法,也大大提高了管理的效率。它支持最小特權(quán)、責(zé)任分離以及數(shù)據(jù)抽象三個(gè)基本的安全原則。RBAC是目前公認(rèn)的解決大型企業(yè)的統(tǒng)一資源訪問控制的有效方法。
雖然RBAC有諸多優(yōu)點(diǎn),對(duì)其研究也已經(jīng)相當(dāng)廣泛和深入,但仍有一些應(yīng)用是現(xiàn)有RBAC模型所不能描述的,如某些應(yīng)用中需要用時(shí)間約束來限制資源的使用,或用時(shí)間約束來控制時(shí)間敏感的活動(dòng)或行為。因此,現(xiàn)有的基于角色的訪問控制系統(tǒng)在保護(hù)系統(tǒng)資源不受非法訪問與使用上仍存在安全隱患。例如基于工作流的管理系統(tǒng),以及一些組織要求某些工作必須在某一特定的時(shí)間段或時(shí)間周期內(nèi)進(jìn)行等帶有時(shí)間特性的訪問控制問題。
本文在RBAC模型的基礎(chǔ)上引入時(shí)間約束,角色在不
同的時(shí)間可以被賦予不同的權(quán)限;用戶也可以在不同的時(shí)間賦予不同的角色,從而獲得不同的權(quán)限,更好地滿足了最小權(quán)限原則。本文設(shè)計(jì)并實(shí)現(xiàn)了一種時(shí)間約束的角色訪問控制系統(tǒng)(TRBAC),既保持了RBAC系統(tǒng)的優(yōu)點(diǎn),又解決了訪問控制中對(duì)時(shí)間約束的需求問題,提高了安全性。
1訪問控制系統(tǒng)總體設(shè)計(jì)
1.1訪問控制系統(tǒng)總體結(jié)構(gòu)圖
如圖1所示,訪問控制系統(tǒng)主要包括訪問請(qǐng)求過濾器、授權(quán)服務(wù)中心、管理工具、時(shí)間事件處理器四部分。
a)訪問請(qǐng)求過濾器的主要功能是截獲經(jīng)過身份認(rèn)證的用戶發(fā)出的訪問請(qǐng)求,從中解析出有用的用戶信息,如用戶角色、所請(qǐng)求的資源、所希望的操作等。
b)授權(quán)服務(wù)中心負(fù)責(zé)訪問控制服務(wù),判斷用戶是否有權(quán)限訪問所請(qǐng)求資源。它是系統(tǒng)的核心部分,主要包括了訪問控制決策器、沖突管理等。
c)管理工具是訪問控制系統(tǒng)的管理模塊,定義企業(yè)的授權(quán)數(shù)據(jù)和安全策略,包括了用戶管理、角色管理、權(quán)限管理、會(huì)話管理以及時(shí)間規(guī)則管理。
d)時(shí)間事件處理器對(duì)時(shí)間進(jìn)行監(jiān)測(cè),允許根據(jù)時(shí)間變化使角色處于許可和禁止?fàn)顟B(tài),負(fù)責(zé)觸發(fā)各種約束條件,與授權(quán)服務(wù)中心配合完成時(shí)間約束的訪問控制。
1.2訪問控制系統(tǒng)中時(shí)間約束的描述
引入時(shí)間約束后首先引起了角色狀態(tài)的變化。角色有三種狀態(tài):禁止態(tài)(disabled)、許可態(tài)(enabled)[3]和激活態(tài)(active)。處于禁止態(tài)的角色不允許被任何用戶激活;處于許可態(tài)的角色可以被用戶激活;用戶激活處于許可態(tài)的角色,角色的狀態(tài)轉(zhuǎn)變?yōu)榧せ顟B(tài)。角色狀態(tài)轉(zhuǎn)換關(guān)系如圖2所示。
在時(shí)間約束的角色訪問控制系統(tǒng)中,時(shí)間約束可應(yīng)用于角色許可或禁止、角色激活、角色權(quán)限分配、用戶角色指派。通過時(shí)間約束限制,角色只允許在規(guī)定的時(shí)間內(nèi)處于許可狀態(tài),或被激活,或分配某些權(quán)限;用戶也只能在規(guī)定的時(shí)間內(nèi)被指派給某角色。
根據(jù)約束的時(shí)間特征,時(shí)間約束可分為以下三類[6]:
a)激活時(shí)間范圍約束。該類約束規(guī)定用戶、角色或權(quán)限只能在規(guī)定時(shí)間范圍內(nèi)激活,如企業(yè)規(guī)定在非工作時(shí)間不允許某些操作發(fā)生,或不允許某些用戶登錄系統(tǒng)。
b)激活時(shí)間長(zhǎng)度約束。該類約束規(guī)定用戶、角色或者訪問許可在一定的時(shí)間范圍內(nèi)激活不超過一個(gè)固定的時(shí)間范圍。用該類約束顯示某些很重要的操作或權(quán)限以防因激活時(shí)間過長(zhǎng)而被盜用。
c)時(shí)間范圍內(nèi)激活時(shí)間長(zhǎng)度約束。該類約束規(guī)定用戶、角色或者訪問許可在一定的時(shí)間范圍內(nèi)的累計(jì)激活時(shí)間不超過一個(gè)規(guī)定的上限。它對(duì)于用戶的限制特別有用,可以限制用戶的平均登錄時(shí)間。
2訪問控制系統(tǒng)實(shí)現(xiàn)
2.1訪問請(qǐng)求過濾器
訪問請(qǐng)求過濾器是訪問控制系統(tǒng)和應(yīng)用系統(tǒng)的接口,用于截獲經(jīng)過身份認(rèn)證的用戶發(fā)出的訪問請(qǐng)求,從中解析出用戶角色、所請(qǐng)求的資源、所希望的操作等信息交給授權(quán)服務(wù)中心進(jìn)行權(quán)限判定,并將決策結(jié)果返回給用戶。
2.2授權(quán)管理
授權(quán)管理是整個(gè)訪問控制系統(tǒng)的基礎(chǔ)部分,為安全管理員提供了方便的授權(quán)管理工具。在用戶管理上,根據(jù)用戶部門建立樹狀用戶組織結(jié)構(gòu),方便了對(duì)用戶的管理。
管理員通過會(huì)話管理控制臺(tái)可以查看用戶的會(huì)話及用戶激活的角色。當(dāng)系統(tǒng)用戶執(zhí)行惡意操作時(shí),管理員可以終止用戶會(huì)話或者凍結(jié)用戶會(huì)話中的相應(yīng)角色,從而阻止網(wǎng)絡(luò)資源被非法訪問,提高了安全性。
會(huì)話session由以下五元組來描述(u, r, rat, sst, tc)。其中:u是用戶;r是角色;rat是角色激活的時(shí)刻,當(dāng)計(jì)算時(shí)間約束的激活長(zhǎng)度時(shí),將從rat中查找信息;sst表示會(huì)話建立的時(shí)間;tc表示與該會(huì)話相關(guān)聯(lián)的用戶和角色的時(shí)間約束。
時(shí)間約束由如下七個(gè)以空格分隔的元素表示:
〈year〉:約束作用的年份;
〈day of month〉:起始日期(1~31);
〈month〉:起始月份(1~12);
〈day of week〉:起始日期(1~7);
〈hour〉:起始小時(shí)(0~23);
〈duration〉:約束持續(xù)的時(shí)間長(zhǎng)度;
〈event duration〉:事件持續(xù)的時(shí)間長(zhǎng)度。
前五個(gè)元素都可以顯式地規(guī)定一個(gè)值(如6)、一個(gè)區(qū)間(如2~6)、一個(gè)列表(如2,4,6)或一個(gè)通配符(如*)。其中〈day of month〉和〈day of week〉這兩個(gè)元素是互斥的,通過設(shè)置標(biāo)志符“?”來表明不想設(shè)置哪個(gè)字段。
例如時(shí)間約束:
TC1=(2006-2013 ?* 1-5 8 8 *),當(dāng)TC1作用與角色許可(TC1,enable r)時(shí),表示2006—2013年每個(gè)月的工作日的工作時(shí)間角色r處于許可態(tài)。
TC2=(2006,2007 15 * ? 9 6 4),當(dāng)TC2作用于角色分配權(quán)限(TC2,assign p to r)時(shí),表示2006、2007兩年每個(gè)月的15號(hào)上午9點(diǎn)到下午3點(diǎn)這四個(gè)小時(shí)的時(shí)間范圍角色r可以獲得權(quán)限p。
2.3沖突管理
管理員在進(jìn)行時(shí)間約束設(shè)置時(shí)以及系統(tǒng)執(zhí)行中可能會(huì)使互斥事件發(fā)生在同一時(shí)刻。例如使disable r和active r for u同時(shí)發(fā)生或active r for u和deassign r to u同時(shí)發(fā)生。因此,使用沖突管理模塊檢測(cè)和解決系統(tǒng)中出現(xiàn)的時(shí)間約束沖突。沖突主要分為三類:
a)同類事件之間的沖突,如角色許可(enable r)與角色禁止(disable r)之間;
b)不同類事件之間的沖突,如角色激活(activate r for u)與角色禁止(disable r)之間;
c)約束之間的沖突,該類約束又可分為兩類:
(a)角色許可與禁止(或給角色賦權(quán)限與收回權(quán)限)約束之間的沖突,如在時(shí)間區(qū)間D內(nèi)角色r處于許可態(tài)和禁止態(tài)的約束同時(shí)發(fā)生。
(b)每個(gè)用戶激活角色(per user role)時(shí)間長(zhǎng)度約束與每個(gè)角色(per role)激活時(shí)間長(zhǎng)度約束之間的沖突,如角色r可被激活的時(shí)間約束為Da,用戶激活角色r的時(shí)間長(zhǎng)度約束為Dua。若Dua>Da,則產(chǎn)生沖突。
系統(tǒng)中采用的解決沖突的策略如下:
a)消極任務(wù)優(yōu)先的原則解決第一、二類沖突,即在優(yōu)先級(jí)相同的情況下消極任務(wù)優(yōu)先處理。
b)如果一、二類沖突同時(shí)發(fā)生了,則首先解決由第一類沖突引起的阻塞。第三類沖突的(a)主要是由一些與潛在的沖突事件相關(guān)聯(lián)的約束表達(dá)式引起的,所以第一類沖突的解決方法也適合于解決第三類沖突的(a)。
c)每個(gè)角色激活時(shí)間長(zhǎng)度約束優(yōu)先于每個(gè)用戶激活角色時(shí)間長(zhǎng)度約束的規(guī)則,與更具體的約束優(yōu)先的規(guī)則相結(jié)合的原則解決第三類沖突的(b)。
2.4訪問決策中心
訪問決策中心是訪問控制系統(tǒng)的核心模塊。它根據(jù)用戶角色指派信息、權(quán)限繼承信息、時(shí)間約束信息以及沖突解決情況,決定是否授予用戶有某個(gè)訪問請(qǐng)求的權(quán)限。訪問控制的決策步驟如下:一個(gè)主體S請(qǐng)求在客體O上執(zhí)行P操作時(shí),由訪問控制決策器根據(jù)各種信息,包括授權(quán)信息、系統(tǒng)狀態(tài)、時(shí)間約束信息、沖突解決等來判斷是否允許S的請(qǐng)求。
算法1授權(quán)決策算法
輸入:訪問請(qǐng)求、時(shí)間約束、系統(tǒng)狀態(tài)、授權(quán)規(guī)則;
輸出:授予/拒絕。
a)查詢授權(quán)庫(kù),是否有與訪問請(qǐng)求匹配的授權(quán)規(guī)則。若有轉(zhuǎn)b);否則拒絕。
b)計(jì)算是否滿足時(shí)間約束條件,滿足轉(zhuǎn)c);否則拒絕。
c)查看用戶角色是否被激活,若已經(jīng)被激活,則返回授予;否則轉(zhuǎn)d)。
d)計(jì)算激活該角色是否會(huì)引起沖突,根據(jù)相應(yīng)的沖突解決策略進(jìn)行沖突消除。若允許激活該角色,則激活角色并返回授予;否則返回拒絕。
2.5時(shí)間事件處理器
時(shí)間事件處理器滿足了系統(tǒng)中存在的與時(shí)間相關(guān)的事件需要自動(dòng)被觸發(fā)執(zhí)行的需要。系統(tǒng)中存在如下三種時(shí)間事件:
a)角色許可事件之間存在時(shí)間依賴關(guān)系,如角色A被禁止10 min之后使角色B也禁止;
b)周期性時(shí)間事件,如每天19點(diǎn)以后使所有角色處于禁止?fàn)顟B(tài);
c)用戶運(yùn)行時(shí)的請(qǐng)求因?yàn)閮?yōu)先級(jí)被推遲執(zhí)行的事件,在推遲一段時(shí)間后要自動(dòng)被觸發(fā)執(zhí)行。
時(shí)間事件處理器的實(shí)現(xiàn)如圖3所示。它主要包括了周期事件處理器、運(yùn)行時(shí)請(qǐng)求處理器、依賴事件處理器、延遲事件處理器和時(shí)間事件觸發(fā)器五個(gè)功能模塊。周期事件處理器和依賴事件處理器根據(jù)用戶登錄時(shí)系統(tǒng)讀取的與該用戶相關(guān)的時(shí)間約束事件、事件優(yōu)先級(jí)和沖突解決情況,需要立即執(zhí)行的進(jìn)入待執(zhí)行事件列表;否則進(jìn)入延遲事件列表。運(yùn)行時(shí)請(qǐng)求處理器是根據(jù)用戶運(yùn)行時(shí)的請(qǐng)求和系統(tǒng)當(dāng)前狀態(tài)以及沖突解決情況來判斷該請(qǐng)求是立即執(zhí)行還是延遲執(zhí)行。待執(zhí)行事件由時(shí)間事件觸發(fā)器觸發(fā)完成。延遲事件處理器負(fù)責(zé)監(jiān)視延遲事件;當(dāng)條件滿足時(shí),喚醒延遲事件。
3結(jié)束語(yǔ)
本文設(shè)計(jì)并實(shí)現(xiàn)了時(shí)間約束下的訪問控制系統(tǒng),更好地滿足了訪問控制最小權(quán)限的原則,可以有效地解決時(shí)間敏感活動(dòng)的訪問控制問題,增強(qiáng)了訪問控制的力度。但是仍然存在許多值得研究的問題。例如系統(tǒng)中存在的沖突類別繁多,應(yīng)進(jìn)一步研究沖突的解決策略;時(shí)間約束的訪問控制系統(tǒng)在工作流系統(tǒng)中的應(yīng)用。
參考文獻(xiàn):
[1]SANDHU R S, COYNE E J, FEINSTEIN H L, et al. Role based access control models[J]. IEEE Computer, 1996,29(2):38-47.
[2]FERRAIOLO D F, SANDHU R, GAVRILA S, et al. Proposed NIST standard for role based access control[J]. ACM Trans on Information and System Security, 2001,4(3):224-274.
[3]BERTINO E,BONATTIE P,F(xiàn)ERRARI E. TRBAC: a temporal role based access control model[J].ACM Trans on Information and System Security, 2001,4(3):191-223.
[4]BERTINO E, FERRARI E, ATLURI V. The specification and enforcement of authorization constraints in workflow management systems [J]. ACM Trans on Information and System Security, 1999,2(1):65 104.
[5]CASTANO S, CASATI F, FUGINI M. Managing workflow authorization constraints through active database technology [J]. Information System Frontiers, 2001,3(3):319-338.
[6]黃建, 卿斯?jié)h, 溫紅子. 帶時(shí)間特性的角色訪問控制[J]. 軟件學(xué)報(bào), 2003,14(11):1944 1954.
“本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文”