羅 鈞 趙傳智 汪 飛
(光電技術(shù)及系統(tǒng)教育部重點(diǎn)實(shí)驗(yàn)室(重慶大學(xué)) 重慶 400030)(luojun@cqu.edu.cn)
基于RBAC模型的權(quán)限高效管理方法
羅鈞趙傳智汪飛
(光電技術(shù)及系統(tǒng)教育部重點(diǎn)實(shí)驗(yàn)室(重慶大學(xué))重慶400030)(luojun@cqu.edu.cn)
摘要針對(duì)現(xiàn)有基于角色的訪問(wèn)控制模型(role-based access control,RBAC)服務(wù)請(qǐng)求中缺乏關(guān)鍵權(quán)限管理辦法及其算法的指數(shù)級(jí)復(fù)雜度,設(shè)計(jì)了一種高效的管理方法.該方法是在簡(jiǎn)化的系統(tǒng)模型(simplify system model, SSM)上通過(guò)建立基于權(quán)限的訪問(wèn)控制列表(privilege-based access control list, PBACL)來(lái)管理關(guān)鍵權(quán)限;通過(guò)自定義的角色關(guān)系結(jié)構(gòu)體將系統(tǒng)角色橫向和縱向劃分.該方法針對(duì)不同的外部服務(wù)請(qǐng)求,通過(guò)自定義的角色加法(role plus, RP)可以簡(jiǎn)單快速地查找出最佳角色集,其復(fù)雜度僅為多項(xiàng)式級(jí);能夠解決關(guān)鍵權(quán)限被賦予多個(gè)用戶從而導(dǎo)致的安全沖突問(wèn)題;支持系統(tǒng)模型在“不穩(wěn)定型”系統(tǒng)中的快速重構(gòu).該方法同樣適用于多域環(huán)境下的訪問(wèn)控制,能夠有效地避免多域環(huán)境下關(guān)鍵權(quán)限多分配的問(wèn)題,能夠快速檢測(cè)出由于域間映射帶來(lái)安全沖突問(wèn)題例如:循環(huán)繼承沖突和角色互斥約束沖突等.
關(guān)鍵詞角色模型;訪問(wèn)控制;角色管理;關(guān)鍵權(quán)限;安全沖突
近年來(lái),隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,信息系統(tǒng)的規(guī)模得到不斷壯大,采用更加高效和安全的訪問(wèn)控制技術(shù)變得越來(lái)越重要.同時(shí),Web服務(wù)技術(shù)以及近年來(lái)越來(lái)越受關(guān)注的物聯(lián)網(wǎng)(Internet of things, IoT)技術(shù)與云技術(shù)在信息處理與交流的過(guò)程中,常常會(huì)遇到域間操作,如何實(shí)現(xiàn)更安全的跨域訪問(wèn)控制是一個(gè)極為重要的問(wèn)題[1-3].基于角色的訪問(wèn)控制(role-base access control, RBAC)克服了傳統(tǒng)訪問(wèn)控制技術(shù)中存在的不足,不僅易于管理而且在一定程度提高了安全性和可靠性,得到了廣泛的關(guān)注與應(yīng)用[4],特別是在擁有大量用戶單元的系統(tǒng)中,RBAC能夠更好地解決安全訪問(wèn)控制的問(wèn)題[5].
在角色訪問(wèn)控制模型中,用戶提出權(quán)限分配請(qǐng)求時(shí),系統(tǒng)如何才能安全、高效地分配給用戶恰當(dāng)?shù)臋?quán)限集是急待解決的問(wèn)題.近年來(lái),人們嘗試能夠根據(jù)系統(tǒng)運(yùn)行環(huán)境的變化來(lái)快速調(diào)整訪問(wèn)控制策略,同時(shí)保持訪問(wèn)控制機(jī)制不變[6-8].Ye等人[9]在角色訪問(wèn)控制模型中,采用密碼技術(shù)對(duì)服務(wù)請(qǐng)求進(jìn)行驗(yàn)證并授權(quán),此方法雖然安全性較高,但是不能快速響應(yīng)外部的服務(wù)請(qǐng)求.He等人[10]提出唯一可映射集(unique mapping set, UMS)的概念來(lái)求取滿足外部服務(wù)請(qǐng)求的最合適可映射角色集,但它并沒有關(guān)注關(guān)鍵權(quán)限的保護(hù)問(wèn)題,在面對(duì)角色變化或者服務(wù)權(quán)限改變時(shí),特別是含有大量服務(wù)項(xiàng)的系統(tǒng)中,UMS面臨著全部重新計(jì)算的復(fù)雜性,所以UMS方法的應(yīng)用具有很大的局限性.
針對(duì)以上問(wèn)題,本文提出在簡(jiǎn)化的系統(tǒng)模型(simplify system model, SSM)上建立基于權(quán)限的訪問(wèn)控制列表(privilege-based access control list,PBACL),制定角色關(guān)系結(jié)構(gòu)體以及自定義角色加法規(guī)則,在保護(hù)關(guān)鍵角色的同時(shí),快速計(jì)算出滿足外部請(qǐng)求的最佳角色集的方案.針對(duì)外部服務(wù)請(qǐng)求先查找PBACL,判斷對(duì)應(yīng)權(quán)限是否為關(guān)鍵權(quán)限,對(duì)于擁有關(guān)鍵權(quán)限的角色進(jìn)行用戶數(shù)量的限制,對(duì)于非關(guān)鍵權(quán)限通過(guò)定義的規(guī)則,可以快速計(jì)算出滿足請(qǐng)求權(quán)限的最佳角色集.
1基本概念
為了便于描述,本節(jié)對(duì)一些基本概念及約定進(jìn)行形式化定義和說(shuō)明.
定義1. 權(quán)限集.權(quán)限集是表示角色或用戶有權(quán)訪問(wèn)的服務(wù)集合,本文中用符號(hào)PS表示.
例如在圖1(a)的簡(jiǎn)單角色層次模型中,角色r1的權(quán)限集可以表示為PS(r1)={s2,s3},即擁有角色r1的用戶可以訪問(wèn)系統(tǒng)服務(wù)s2,s3.
定義2. 關(guān)鍵權(quán)限.即某些對(duì)整個(gè)系統(tǒng)具有重要作用,如果被多個(gè)角色占有可能會(huì)導(dǎo)致系統(tǒng)運(yùn)行混亂甚至整個(gè)系統(tǒng)崩潰的權(quán)限.例如打印機(jī)的使用權(quán)限同時(shí)被多個(gè)電腦進(jìn)程占有會(huì)導(dǎo)致打印出來(lái)的內(nèi)容混亂.
定義3. 權(quán)限根角色.權(quán)限根角色是表示擁有某個(gè)權(quán)限且包含額外權(quán)限最少的角色,由符號(hào)PR表示.例如圖1(a)中PR(s2)=r2,PR(s3)=r3,而不能夠用PR(s2)=r1,因?yàn)閞1和r2相比還多包含額外權(quán)限s3.
Fig. 1 Role model.圖1 角色層次
定義4. 角色加法(role plus, RP).本文用符號(hào)⊕表示.角色加法是以角色的繼承關(guān)系為基礎(chǔ),滿足相同角色相加保持不變,即rx⊕rx=rx;任何角色rx與0相加還是角色rx,即rx⊕0=rx.角色rx與角色集RS相加,rx應(yīng)優(yōu)先與RS中同層相鄰角色相加,自下而上求出最佳角色集;若某一個(gè)角色rx不含額外權(quán)限,則其子角色之和為rx,如圖1(a)簡(jiǎn)單角色層次1,有r2⊕r3=r1;若rx對(duì)應(yīng)額外服務(wù)sx,則其子角色之和為求并的關(guān)系,如圖1(b)簡(jiǎn)單角色層次2,有r2⊕r3={r2,r3}.
Fig. 2 Simple role model after SSM.圖2 SSM簡(jiǎn)化角色層次
定義5. SSM.文獻(xiàn)[10]提出對(duì)于求得的角色集,若有角色含有額外服務(wù)項(xiàng),可以增加臨時(shí)角色來(lái)直接繼承每一個(gè)額外的服務(wù)項(xiàng),如圖2所示.s3,s4,s5是角色r3擁有的服務(wù)權(quán)限,而s4是它的子角色r4唯一擁有的權(quán)限,權(quán)限s3和s5沒有映射到單獨(dú)的角色,可以說(shuō)權(quán)限s3和s5是角色r3的額外權(quán)限,則增加角色r5和r6來(lái)獨(dú)立管理權(quán)限s3和s5.而本文提出在系統(tǒng)初始化時(shí)對(duì)整個(gè)系統(tǒng)角色模型預(yù)先進(jìn)行上述處理,即通過(guò)增加權(quán)限根角色來(lái)管理每一項(xiàng)服務(wù)權(quán)限,完成對(duì)系統(tǒng)RBAC模型的簡(jiǎn)化即SSM化.
定義6. PBACL.本文使用符號(hào)P[n][q]來(lái)表示PBACL,其中n是用來(lái)標(biāo)記區(qū)分系統(tǒng)服務(wù),q表示系統(tǒng)服務(wù)的名稱、權(quán)限標(biāo)志、用戶和對(duì)應(yīng)根角色.PBACL創(chuàng)建規(guī)則如下:
1)P[n][0]為服務(wù)項(xiàng),表示用戶權(quán)限;
2)P[n][1]為權(quán)限標(biāo)志項(xiàng),表示系統(tǒng)權(quán)限是否為關(guān)鍵權(quán)限標(biāo)志位,0為非關(guān)鍵權(quán)限,1為關(guān)鍵權(quán)限但未被占用,2為關(guān)鍵權(quán)限且被第3列中登記的用戶占用;
3)P[n][2]為用戶項(xiàng),表示占用關(guān)鍵權(quán)限的用戶名或ID;
4)P[n][3]為對(duì)應(yīng)角色項(xiàng),表示系統(tǒng)服務(wù)權(quán)限對(duì)應(yīng)的根角色.
定義7. 角色關(guān)系結(jié)構(gòu)體.角色關(guān)系結(jié)構(gòu)體表示角色親屬關(guān)系的一種結(jié)構(gòu)體(不包含其子角色).具體定義為
structRn{intLong;
intRole;
structRn*Br[];
structRn*Parent;}
其中,Long表示Rn兄弟角色個(gè)數(shù),Role表示哪一個(gè)角色的角色關(guān)系結(jié)構(gòu)體,*Br[]為角色Rn兄弟角色結(jié)構(gòu)體組成的指針數(shù)組,*Parent指向角色Rn父角色.注意最上層角色的父角色為NULL.
由于角色rn所擁有的結(jié)構(gòu)體structRrn中包含其父角色Parent,如果父角色不是最上層角色,那么父角色所擁有的角色關(guān)系結(jié)構(gòu)體中還有它自己的父角色,這樣就可以由角色關(guān)系結(jié)構(gòu)體形成一個(gè)Parent鏈表,可以用這個(gè)鏈表將所有角色縱向劃分.Br數(shù)組表示角色的兄弟關(guān)系,可以用這個(gè)數(shù)組將所有角色橫向劃分.
2PBACL的建立
由于混合角色層次可在幾何時(shí)間內(nèi)分解為幾個(gè)只包含I層次關(guān)系的子角色層[11],因此為了便于說(shuō)明PBACL在服務(wù)請(qǐng)求的過(guò)程中的重要作用,設(shè)定本文中的角色層次只包含I層次關(guān)系,并在此基礎(chǔ)上對(duì)應(yīng)求角色集的求解規(guī)則進(jìn)行說(shuō)明.
圖3為SSM化后的一簡(jiǎn)單的示例系統(tǒng)模型.
Fig. 3 Role model in a simple system.圖3 系統(tǒng)中角色層次
在圖3的基礎(chǔ)上根據(jù)創(chuàng)建PBACL規(guī)則建立基于權(quán)限的訪問(wèn)控制列表1,并假設(shè)服務(wù)s4為被用戶U1占用的關(guān)鍵服務(wù)項(xiàng),則將s4對(duì)應(yīng)行的第2列P[3][1]標(biāo)記位置為2,第3列P[3][2]標(biāo)明為用戶U1.
Table 1 PBACL Correspond to the System of Fig. 4
3最佳角色集的求解
本節(jié)將闡述最佳角色集的求解過(guò)程以及對(duì)不穩(wěn)定系統(tǒng)的快速重構(gòu).
3.1外部服務(wù)請(qǐng)求
當(dāng)用戶向系統(tǒng)請(qǐng)求服務(wù)授權(quán)時(shí)(以SRQ={s1,s2,…,sn}表示),系統(tǒng)應(yīng)該分配給用戶最為合適的角色集.而最為合適的角色集應(yīng)包含2個(gè)含義:1)角色集能夠滿足外部服務(wù)請(qǐng)求并且包含的額外權(quán)限最少;2)角色集最小,這樣才能減少角色的映射關(guān)系以及安全沖突的可能性.
假設(shè)某一時(shí)刻,用戶U向系統(tǒng)發(fā)出服務(wù)授權(quán)請(qǐng)求SRQ={s1,s2,s3,s6},則系統(tǒng)將在PBACL中查詢相關(guān)信息,根據(jù)自定義的角色加法,系統(tǒng)能夠在保證關(guān)鍵權(quán)限得到保護(hù)的同時(shí),快速算出滿足要求的最佳角色集.
3.2求解最佳角色集的算法
求解最佳角色集SUM的算法流程如算法1,并假設(shè)系統(tǒng)服務(wù)請(qǐng)求為SRQ={s1,s2,…,sn}.
算法1. 求解滿足服務(wù)請(qǐng)求的最佳角色集.
ComputeRS(I){*I為系統(tǒng)模型角色層次*
① 初始化:P[n][q]←0,SUM←?;
② 按定義5將角色層次SSM化;
③ 根據(jù)SSM化后系統(tǒng)模型填寫PBACL和構(gòu)建角色關(guān)系結(jié)構(gòu)體;
④forifrom1ton′
⑤switchP[i-1][1]
⑥case0:gotoT2;
⑦case1:gotoT1;
⑧case2:returnERROR;
⑨endswitch
⑩ T1:將U的ID賦值給P[i][2];*U為請(qǐng)求授權(quán)的用戶*
算法1的基本思想是:先對(duì)整個(gè)系統(tǒng)角色模型進(jìn)行SSM處理,然后填寫PBACL表格,建立系統(tǒng)服務(wù)與角色之間的聯(lián)系,確立哪些權(quán)限是系統(tǒng)關(guān)鍵服務(wù)權(quán)限以及關(guān)鍵權(quán)限授權(quán)情況,并且構(gòu)建角色關(guān)系結(jié)構(gòu)體,確定角色與角色之間的關(guān)系.對(duì)于用戶服務(wù)授權(quán)請(qǐng)求,將先對(duì)每一項(xiàng)所請(qǐng)求服務(wù)的標(biāo)志位進(jìn)行判斷,若為0則將其對(duì)應(yīng)的根角色通過(guò)角色加法添加到SUM(具體過(guò)程見算法2);若為1則表示該項(xiàng)服務(wù)為系統(tǒng)關(guān)鍵服務(wù),將用戶ID進(jìn)行注明后,繼續(xù)標(biāo)志位為0的步驟;若為2,則表示該項(xiàng)服務(wù)為系統(tǒng)關(guān)鍵服務(wù)且已經(jīng)被占用,所以不能對(duì)用戶U授權(quán),返回錯(cuò)誤信息.
以圖3模型為例,假設(shè)系統(tǒng)服務(wù)授權(quán)請(qǐng)求SRQ={s1,s2,s3,s6},查詢PBACL的過(guò)程中(以表1為例)發(fā)現(xiàn),所請(qǐng)求的服務(wù)項(xiàng)s2為系統(tǒng)關(guān)鍵服務(wù)項(xiàng),則有:PR=r4⊕r10⊕r11⊕r14={r2,r14},并將P[1][1]賦值為2,將請(qǐng)求服務(wù)授權(quán)的用戶ID賦值給P[1][2].
對(duì)于如何由角色加法得到最佳角色集本文提出的算法流程如算法2.
算法2. 由角色加法得到最佳角色集.
SUM←PR(si)+SUM:
①SUM(i)←RPR(si).Role;
②flag←1;*有新角色加入SUM,flag置1*
③ (struct)Rn←(struct)R(RP(si));
④ ifflag=1
⑤flag←0;
⑥ formfromRn.Longto 0
⑦ forjfromi-1 to 0
⑧ ifSUM(j)=(Rn.Br[m-1])->Role
⑨ 標(biāo)記該項(xiàng)為SUM(i)兄弟角色項(xiàng);
算法2的基本思想是:首先將PR(si)賦值給SUM(i),然后SUM(i)和SUM已有的其他角色項(xiàng)依次相加,如果可以相加合并為SUM(i)父角色,SUM(i)的位置放置其父角色,其他被合并的角色位置置0.注意如果SUM(i)有多個(gè)兄弟角色,要找出它所有的兄弟角色才能夠得到其父角色,在沒有全部找到之前不能夠?qū)⒁颜业降慕巧恢弥?.例如r1,r2,r3,r4,r5和PR(si)=r6相加,如果r1,r5,r6相加得到角色r7,只有在全部找到角色r1和r5之后SUM才能變?yōu)?,r2,r3,r4,0,r7.
如果相加合并成功,用相加后的父角色即新的SUM(i)依次和SUM其他角色相加,重復(fù)上述過(guò)程,直到SUM(i)到SUM最后一項(xiàng)都沒有找到其兄弟角色或者沒有找到所有的兄弟角色為止.例如圖3中求PR=r4⊕r10⊕r11,r10和r4不可合并第1次加法結(jié)束,此時(shí)SUM=r4⊕r10;將新角色r11加入SUM,根據(jù)角色繼承關(guān)系r11和r10可合并得到父角色r5,可以得到SUM=r4⊕0⊕r5;SUM新加入角色r5,再根據(jù)角色繼承關(guān)系可以知道r5和r4可合并得到角色r2,此時(shí)得到SUM=0⊕0⊕r2;r2再進(jìn)行查找,查找到最后一項(xiàng)都沒有可合并的項(xiàng),而且此時(shí)再無(wú)新角色加入SUM,加法結(jié)束.由于每加入一個(gè)PR(si)到SUM都將運(yùn)行算法2,所以SUM從加入第1個(gè)角色起就是所有已加入的PR(si)的最佳角色集.
因?yàn)樵谙嗉拥倪^(guò)程中如果遇到其兄弟角色(Rn.Br[m-1])->Role則該次查找終止,并且在進(jìn)行本次角色加法過(guò)程中SUM的長(zhǎng)度不會(huì)改變,所以算法最復(fù)雜的情況是SUM中所有角色都相加合并成功,此時(shí)算法2所進(jìn)行的查詢比較次數(shù)最多,為i+(i-1)+(i-2)+…+1,角色加法的復(fù)雜度為O(i2);算法最好的情況就是PR(si)不能能夠和已有的任意角色相加合并,其復(fù)雜度僅為O(i).
3.3系統(tǒng)快速重構(gòu)
對(duì)于“不穩(wěn)定型”系統(tǒng),角色間繼承關(guān)系的變化、角色和系統(tǒng)服務(wù)權(quán)限的增加與消除,現(xiàn)在很少有研究人員研究,如果從新執(zhí)行一次算法,這對(duì)系統(tǒng)的消耗是極大的.而本文所提出方法只需根據(jù)系統(tǒng)結(jié)構(gòu)的變化,對(duì)應(yīng)增加與刪除PBACL和角色關(guān)系結(jié)構(gòu)體信息即可.例如在系統(tǒng)中刪除某個(gè)系統(tǒng)權(quán)限si可以用算法3進(jìn)行系統(tǒng)快速重構(gòu).
算法3. 系統(tǒng)刪除權(quán)限si的快速重構(gòu).
① forifrom 1 ton′
② ifP[i-1][0]=si
③P[i-1][0]←P[n′-1][0];
④P[i-1][1]←P[n′-1][1];
⑤P[i-1][2]←P[n′-1][2];
⑥P[i-1][3]←P[n′-1][3];
⑦n′←n′-1;
⑧ gotoT1;
⑨ end if
⑩ end for
PR(si)
算法3可以分為2個(gè)步驟:
1) 刪除PBACL.先是在PBACL列表中找到服務(wù)項(xiàng),然后用最后一項(xiàng)服務(wù)項(xiàng)覆蓋該項(xiàng),最后將項(xiàng)數(shù)減1,如果該項(xiàng)為最后一項(xiàng)因?yàn)轫?xiàng)數(shù)減1而刪除該服務(wù)項(xiàng).復(fù)雜度最多為O(n′).
2) 刪除角色關(guān)系結(jié)構(gòu)體.先找到系統(tǒng)權(quán)限si所對(duì)應(yīng)的根角色PR(si),再找到它所擁有的結(jié)構(gòu)體(struct)RPR(si),根據(jù)結(jié)構(gòu)體中Br數(shù)組找到其兄弟角色所擁有的結(jié)構(gòu)體(struct)RPR(si).Br [m],刪除所有兄弟角色結(jié)構(gòu)體中的PR(si)項(xiàng),然后刪除(struct)RPR(si),這樣就可以實(shí)現(xiàn)系統(tǒng)快速重構(gòu).本算法復(fù)雜度主要集中在對(duì)兄弟角色結(jié)構(gòu)體中的PR(si)項(xiàng)進(jìn)行查找,因?yàn)橛行略黾觤個(gè)角色,所以系統(tǒng)總的角色數(shù)為(m+n),所以復(fù)雜度最多為O((m+n)2).考慮到一般系統(tǒng)中角色數(shù)n大于權(quán)限數(shù)n′,綜上所述,復(fù)雜度為O(n2).
4算法分析
本節(jié)將從求解效果、復(fù)雜度、安全性等方面對(duì)各算法進(jìn)行詳細(xì)的比較,來(lái)驗(yàn)證說(shuō)明本文所提算法具有更加優(yōu)異的性能.
4.1相關(guān)研究分析
He等人[10]提出根據(jù)局部域角色層次計(jì)算UMS的算法,其中UMS中的每個(gè)元素是一組唯一的最小角色集,在求解效果方面該模型如果非最底層角色rx不包含額外服務(wù),則UMS中角色集存在冗余項(xiàng);在復(fù)雜度方面是將處于同一層次的角色集的冪集加入到 UMS中,該算法最好情況是角色層次只包含一個(gè)子角色,算法的時(shí)間和空間復(fù)雜度都為O(n2),最壞情況是角色層次中除根角色外,其他角色都是根角色的直接子角色,算法的時(shí)間和空間復(fù)雜度都為O(2n-1).Du等人[12]提出唯一活動(dòng)集(uniquely activable set, UAS)算法,采用權(quán)限繼承和激活關(guān)系的混雜角色層次查找算法,在求解效果方面該方法有可能將包含請(qǐng)求權(quán)限的角色集排除掉,從而得出外部請(qǐng)求無(wú)法滿足的錯(cuò)誤結(jié)論;在復(fù)雜度方面該算法最好情況是混合層次結(jié)構(gòu)中不包含激活關(guān)系,算法的復(fù)雜度為O(n2),最壞情況是混合層次結(jié)構(gòu)中不包含繼承關(guān)系,算法的復(fù)雜度為O(2n).Li等人[13]提出最小唯一集(minimal unique set, MUS)算法,先求出角色層次所對(duì)應(yīng)的冪集,然后將密集中包含角色繼承關(guān)系的元素去除,在求解效果方面該模型中當(dāng)有外部權(quán)限請(qǐng)求時(shí),在所得角色集的集合中進(jìn)行查找,無(wú)法避免包含額外權(quán)限;在復(fù)雜度方面該算法顯然該算法的復(fù)雜度最少為O(2n).以上3種算法均未考慮系統(tǒng)關(guān)鍵角色的保護(hù)問(wèn)題,所以當(dāng)角色或服務(wù)調(diào)整時(shí)將全部重新計(jì)算角色集查找源,不具有安全性與高效性.Fan等人[14]提出使用角色移交來(lái)對(duì)關(guān)鍵角色進(jìn)行保護(hù),但角色移交本身就存在風(fēng)險(xiǎn)性.
4.2本算法分析
在本角色系統(tǒng)中,根據(jù)系統(tǒng)信息建立的PBACL,加上每一個(gè)角色自己的角色關(guān)系結(jié)構(gòu)體,經(jīng)過(guò)算法2的角色加法規(guī)則,使得通過(guò)權(quán)限來(lái)確定角色、角色繼承關(guān)系來(lái)得到最佳角色集是完全可行的.通過(guò)對(duì)系統(tǒng)角色模型的SSM化,使得角色與角色、角色與權(quán)限之間的關(guān)系變得十分簡(jiǎn)單,直接管理權(quán)限的角色總是在角色模型的最外層,從而讓角色集的簡(jiǎn)化(角色加法)更加高效,不會(huì)存在額外權(quán)限等情況.所以當(dāng)有外部服務(wù)授權(quán)請(qǐng)求時(shí),系統(tǒng)能夠高效得到滿足需求的更加安全的最佳角色集.
本文空間復(fù)雜度可分為2部分:1)PBACL的創(chuàng)建;2)角色關(guān)系結(jié)構(gòu)體(struct)Rn的創(chuàng)建.其中創(chuàng)建PBACL是根據(jù)系統(tǒng)服務(wù)的個(gè)數(shù)來(lái)得到一個(gè)二維數(shù)組P[n′-1][q](q最大為3),所以SSM化前后其空間復(fù)雜度為都是O(n′).角色關(guān)系結(jié)構(gòu)體(struct)Rn所占空間大小起主導(dǎo)作用的是兄弟角色數(shù)組Rn.Br[]的大小.在SSM化之前,最壞的情況是除了根角色外,其他角色都是根角色的子角色,導(dǎo)致每個(gè)非根角色都有(n-2)個(gè)兄弟角色,此時(shí)的空間復(fù)雜度為O(n2);最好的情況是每個(gè)角色都只有0個(gè)、1個(gè)或者2個(gè)子角色,此時(shí)每個(gè)角色的兄弟角色最多為1,所以空間復(fù)雜度為O(n).SSM時(shí),當(dāng)在原有的系統(tǒng)中增加1個(gè)角色,最壞情況是新增角色是所有角色的兄弟角色,這將占用空間增大2n,最好情況是新增角色和其他角色都不是兄弟角色或者和其他某一個(gè)是,這將占用空間2;再增加1個(gè)新角色將又會(huì)在前面的基礎(chǔ)上增加2~2(n+1),直到新增加完所有m個(gè)角色為止,這時(shí)所新增加的空間為2m~2n+2(n+1)+…+2(n+m).考慮到一般系統(tǒng)中角色數(shù)n是大于權(quán)限數(shù)n′的,所以新增加的空間復(fù)雜度為O(n)~O(n2).綜上所述,本文空間復(fù)雜度為O(n)~O(n2).
本文時(shí)間復(fù)雜度也可分為2部分:1)填寫PBACL;2)實(shí)現(xiàn)算法1中的for循環(huán).其中填寫PBACL就是填寫一個(gè)二維數(shù)組P[n′-1][q] (q最大為3),其時(shí)間復(fù)雜度僅和權(quán)限數(shù)n′有關(guān),為O(n′).實(shí)現(xiàn)for循環(huán)的時(shí)間復(fù)雜度主要集中在算法1中的角色加法.角色加法由算法2可知其復(fù)雜度只和權(quán)限請(qǐng)求數(shù)相關(guān),為O(n′)~O((n′)2),所以本文算法的時(shí)間復(fù)雜度為O(n2)~O(n3).
顯而易見的是,相比于其他算法的指數(shù)級(jí)空間復(fù)雜度,本文所提算法復(fù)雜度僅為多項(xiàng)式級(jí),具有明顯優(yōu)勢(shì).
對(duì)于“不穩(wěn)定型”系統(tǒng),角色間的關(guān)系變化、角色或者權(quán)限的增加與消除,UMS[10],UAS[12],MUS[13]都沒有做相應(yīng)的處理,而本文提出了快速重構(gòu)算法.
表2為本方案與參考文獻(xiàn)中關(guān)于求解最佳角色集計(jì)算方案的性能比較.
Table 2 Comparison of Various Algorithms in Performance
5算法在云計(jì)算環(huán)境中的運(yùn)用
典型的云環(huán)境下,最終用戶的數(shù)據(jù)訪問(wèn)權(quán)限一般由數(shù)據(jù)擁有者指派,具體表現(xiàn)為2種形式:1)數(shù)據(jù)擁有者直接對(duì)用戶指派資源的操作權(quán)限;2)通過(guò)角色將權(quán)限指派給用戶.其中基于角色的授權(quán)是數(shù)據(jù)擁有者對(duì)訪問(wèn)者權(quán)限控制最為普遍的方式.
在云計(jì)算環(huán)境尤其是公有云環(huán)境中,有著海量的資源權(quán)限、角色和用戶.因?yàn)閿?shù)據(jù)擁有者擁有許多資源權(quán)限,而這些權(quán)限在云環(huán)境中授權(quán)給不同的角色,使得數(shù)據(jù)擁有者可以將許多種不同的角色組合指派給數(shù)據(jù)訪問(wèn)者.云計(jì)算環(huán)境中擁有海量的用戶及資源,在實(shí)際授權(quán)過(guò)程中將會(huì)消耗大量的計(jì)算和存儲(chǔ)資源去維持其角色與用戶間的指派關(guān)系.有必要用一種基于權(quán)限集的角色查找算法,使得在云環(huán)境中可以根據(jù)用戶的實(shí)際需求,選擇出針對(duì)該用戶會(huì)話中所訪問(wèn)資源權(quán)限的最優(yōu)集合指派給用戶,以達(dá)到安全高效的目的.
本文在云計(jì)算環(huán)境訪問(wèn)控制系統(tǒng)上對(duì)本文算法進(jìn)行實(shí)驗(yàn),并與UMS,UAS,MUS進(jìn)行對(duì)比,對(duì)比結(jié)果如表3所示.
表3給出了當(dāng)用戶請(qǐng)求一定權(quán)限數(shù)時(shí)系統(tǒng)中角色指派完成時(shí)間.實(shí)驗(yàn)結(jié)果表明本文算法在處理權(quán)限請(qǐng)求數(shù)量一定時(shí),角色指派的效率優(yōu)于UMS,UAS,MUS算法.
Table 3Relationship of the Number of Privilege Request with the Time to Complete the Role Assignment
表3 權(quán)限請(qǐng)求數(shù)與角色指派完成時(shí)間
6多域環(huán)境下的訪問(wèn)控制
對(duì)于多域間的沖突消解與檢測(cè),科研人員已經(jīng)做了大量的工作.He等人[10]提出了改變域間角色映射方式的方法來(lái)消除職責(zé)分離(separation of duty, SoD)沖突與循環(huán)繼承沖突.Chae等人[15]通過(guò)對(duì)角色的特征描述來(lái)解決多域環(huán)境下的訪問(wèn)控制問(wèn)題.本文采用的為系統(tǒng)SSM化后創(chuàng)建PBACL和角色關(guān)系結(jié)構(gòu)體來(lái)對(duì)各個(gè)域的服務(wù)進(jìn)行管理,能夠很有效地避免多域環(huán)境下關(guān)鍵權(quán)限多分配問(wèn)題,能夠快速檢測(cè)出由于域間映射帶來(lái)安全沖突問(wèn)題,例如循環(huán)繼承沖突和角色互斥約束沖突等.
6.1多域環(huán)境下的關(guān)鍵權(quán)限控制
在多域的情況下,假設(shè)服務(wù)si為系統(tǒng)關(guān)鍵服務(wù)項(xiàng),有多個(gè)用戶想通過(guò)D2域這個(gè)跳板來(lái)控制D1域的關(guān)鍵服務(wù),由于所有服務(wù)項(xiàng)的特性都已經(jīng)記錄在了PBACL中,無(wú)論是從那一域來(lái)的授權(quán)請(qǐng)求,都必須走算法1,即關(guān)鍵權(quán)限不會(huì)授權(quán)給多用戶.如圖4所示在多域情況下對(duì)關(guān)鍵權(quán)限s2的控制.
Fig. 4 The control of key privilege.圖4 關(guān)鍵權(quán)限控制
Table 4 PBACL Correspond to the System of Fig. 4
6.2多域環(huán)境下循環(huán)繼承沖突的檢測(cè)
循環(huán)繼承沖突是指某個(gè)域的角色擁有了比它更高級(jí)的角色而導(dǎo)致的沖突.如圖5所示,D1域的角色r3通過(guò)D2域的角色rb映射而擁有了其父角色r1的權(quán)限.算法4就是用SSM化后建立的角色關(guān)系結(jié)構(gòu)體來(lái)檢測(cè)這種安全沖突.
Fig. 5 Cyclic inheritance conflict.圖5 循環(huán)繼承沖突
算法4. 域間循環(huán)繼承沖突的檢測(cè).
① for eachrD1∈D1域do
③ 在D2域中找到rD1的映射角色rD2;
⑧ return發(fā)現(xiàn)循環(huán)繼承沖突;
⑨ end if
圖6為算法4中所用到的角色關(guān)系圖.
Fig. 6 Role relationship of the algorithm 4.圖6 算法4角色關(guān)系圖
6.3多域環(huán)境下角色互斥沖突的檢測(cè)
角色互斥沖突即是用戶不能夠同時(shí)擁有互斥角色集中任意2個(gè)角色的權(quán)限.角色互斥是實(shí)現(xiàn)跨域訪問(wèn)職責(zé)分離的重要手段.
Fig. 7 Role conflict.圖7 角色互斥沖突
如圖7所示,在D1域中角色r4和角色r5具有角色互斥約束關(guān)系,顯然用戶不能同時(shí)擁有兩者.假如用戶U擁有角色r3,顯然它擁有角色r5的權(quán)限,他可能在一次域間會(huì)話中通過(guò)D2域角色rc的映射而擁有角色r4的權(quán)限,則違背了角色互斥原則.為了檢測(cè)這個(gè)沖突,本文提出了算法5.
算法5. 域間角色互斥沖突的檢測(cè).
① whilerD1!=NULL
③ whilerD2!=NULL
⑦ return發(fā)現(xiàn)角色互斥沖突;
⑧ end if
⑩ end while
圖8為算法5所用到的角色關(guān)系圖.
Fig. 8 Role relationship of algorithm 5.圖8 算法5角色關(guān)系圖
7結(jié)語(yǔ)
對(duì)于RBAC模型下權(quán)限快速有效地授權(quán)給用戶的同時(shí)如何保證關(guān)鍵權(quán)限的唯一授權(quán)性,本文提出了對(duì)系統(tǒng)RBAC模型SSM化后建立PBACL控制表,制定角色關(guān)系結(jié)構(gòu)體的方案.通過(guò)將傳統(tǒng)系統(tǒng)RBAC模型進(jìn)行以權(quán)限為基礎(chǔ)的簡(jiǎn)化處理(SSM),能夠更好地管控系統(tǒng)服務(wù)權(quán)限,并以此為基礎(chǔ)建立系統(tǒng)權(quán)限管理表,通過(guò)自定義的角色關(guān)系結(jié)構(gòu)體和角色加法能夠快速有效地響應(yīng)用戶的權(quán)限分配請(qǐng)求,給予最合適的角色集,與此同時(shí)可以保證關(guān)鍵權(quán)限不被多個(gè)用戶占用.該模型同樣可以實(shí)現(xiàn)“不穩(wěn)定”系統(tǒng)的快速重構(gòu),適用于多域環(huán)境下的訪問(wèn)控制,能夠很有效地避免多域環(huán)境下關(guān)鍵角色多分配的問(wèn)題,能夠快速檢測(cè)出由于域間映射帶來(lái)安全沖突問(wèn)題,例如循環(huán)繼承沖突和角色互斥沖突等.該模型經(jīng)過(guò)復(fù)雜度分析并在云計(jì)算環(huán)境訪問(wèn)控制系統(tǒng)下進(jìn)行實(shí)驗(yàn),結(jié)果表明系統(tǒng)消耗小、效率高,能夠?yàn)楝F(xiàn)有的Web服務(wù)技術(shù)、物聯(lián)網(wǎng)、云計(jì)算等新興技術(shù)安全的實(shí)現(xiàn)跨域訪問(wèn)提供理論與實(shí)踐基礎(chǔ).
參考文獻(xiàn)
[1]Antonios G, Ioannis M, Vincent C. Security policy verification for multi-domains in cloud systems[J]. International Journal of Information Security, 2014, 13 (2): 97-111
[2]Su Mang, Li Fenghua, Shi Guozhen. Action-based multi-level access coltrol model[J]. Journal of Computer Research and Development, 2014, 51(7): 1604-1613 (in Chinese)(蘇铓, 李鳳華, 史國(guó)振. 基于行為的多級(jí)訪問(wèn)控制模型[J]. 計(jì)算機(jī)研究與發(fā)展, 2014, 51(7): 1604-1613)
[3]Bartoletti M, Degano P, Ferrari G, et a1. Semanticsbased design for secure Web services[J]. IEEE Trans on Software Engineering, 2008, 34(1): 33-49
[4]Lu Jianfeng, Han Jiamin, Chen Wei, et al. Safety and availability checking for user authorization queries in RBAC[J]. International Journal of Computational Intelligence Systems, 2012, 5(5): 860-867
[5]Wang Wenhui, Han Jing, Song Meina, et al. The design of a trust and role based sccess control model in cloud computing[C]Proc of the 6th Int Conf on Pervasive Computing and Applications. Piscataway, NJ: IEEE, 2011: 330-334
[6]Moon S S, Heung S J, Yong W J. Constructing RBAC based security model in u-healthcare service platform[JOL]. The Scientific World Journal, 2015[2015-01-27]. http:dx.doi.org10.11552015937914
[7]Sadhana J, Shamik S, Jaideep V, et al. Security analysis of temporal RBAC under an administrative model[J]. Computers & Security, 2014, 46(4): 154-172
[8]Michael G, Jorge L. Authorization and obligation policies in dynamic systems[C]Proc of the 24th Int Conf on Logic Programming. Berlin: Springer, 2008: 22-36
[9]Ye Xinfeng, Gao Mingyu. Access control with hidden policies and credentials for service computing[C]Proc of the 9th IEEE Int Conf on Service Computing. Piscataway, NJ: IEEE, 2012: 242-249
[10]He Zhengqiu, Wu Lifa, Li Huabo, et al. Request-driven access control for service composition[J]. Journal of Southeast University: Natural Science, 2011, 41(3): 443- 448 (in Chinese)(賀正求, 吳禮發(fā), 李華波, 等. 請(qǐng)求驅(qū)動(dòng)的服務(wù)組合訪問(wèn)控制[J].東南大學(xué)學(xué)報(bào): 自然科學(xué)版, 2011, 41(3): 443-448)
[11]Menzel M, Wolter C, Meinel C. Access control for cross-organizational Web service composition[C]Proc of the Int Conf on Computer Science and Information Technology. Piscataway, NJ: IEEE, 2007: 701-711
[12]Du S, Joshi J B D. Supporting authorization query and inter-domain role mapping in presence of hybrid role hierarchy[C]Proc of the 11th ACM Symp on Access Control, Models and Technologies. New York: ACM, 2006: 228-236
[13]Li Ruixuan, Tang Zhuo, Lu Zhengding. Request-driven role mapping framework for secure interoperation in multi-domain environments [J]. International Journal of Computer Systems Science and Engineering, 2008, 23(3): 193-206
[14]Fan Xiaokang, He Lianyue, Wang Xiaochuan, et al. A role man-agement method based on RBAC model[J]. Journal of Computer Research and Development, 2012, 49(SuppⅡ): 211-215 (in Chinese)(范小康, 何連躍, 王曉川, 等. 一種基于RBAC模型的角色管理方法[J]. 計(jì)算機(jī)研究與發(fā)展, 2012, 49(增刊Ⅱ): 211-215)
[15]Chae H, Jung J, Lee J H, et al. An efficient access control based on role attributes in service oriented environments[C]Proc of the 6th Int Conf on Ubiquitons Information Management and Communication. New York: ACM, 2012: 73-79
Luo Jun, born in 1963. Professor and PhD supervisor in Chongqing University. His main research interests include intelligent instrument system, information acquisition and information processing and development.
Zhao Chuanzhi, born in 1991. Master candidate. His main research interests include information security and embedded development.
Wang Fei, born in 1989. Master. His main research interests include information security and embedded development.
An Efficient Privilege Manage Method Based on RBAC
Luo Jun, Zhao Chuanzhi, and Wang Fei
(KeyLaboratoryofOptoelectronicsTechnologyandSystem(ChongqingUniversity),MinistryofEducation,Chongqing400030)
AbstractAccording to the exponential complexity and exile management measures of the most role-based access control model and algorithm when some services are requested, an efficient privilege manage method is put forward. After simplify system model (SSM) sets up, this paper proposes the privilege-based access control list (PBACL) and role plus(RP) aiming at managing the service authority effectively and more safely, then set up the structure of role relationship which divides the roles into transverse and longitudinal aiming at fast finding out the relationship of the roles. In view of different service request, the system can manage key privilege and correlated role by using PBACL; seek out the most appropriate roles set that satisfy the external service request by the user-defined RP algorithm, whose complexity is polynomial; resolve the conflict effectively because the key privilege is assigned to multiple users; support privilege fast reconstructed in the unstable systems. The scheme also adapts to access control in multi-domain. It can effectively avoid the problem that the key privilege is distributed to more than one user in multi-domain, and can also fast check out the security conflicts brought out by the roles mapped to other domains such as the cyclic inheritance conflict, the separation of duty, and so on.
Key wordsrole model; access control; role management; key privilege; security conflict
收稿日期:2014-11-22;修回日期:2015-11-10
基金項(xiàng)目:重慶市經(jīng)濟(jì)和信息化委員會(huì)科技攻關(guān)計(jì)劃項(xiàng)目(10-cxy-02)
中圖法分類號(hào)TP393
This work was supported by the Science and Technology Project of Chongqing Municipal Commission of Economy and Information Technology (10-cxy-02).