專利名稱:一種基于信任度的訪問(wèn)控制方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本 發(fā)明涉及一種基于信任度的訪問(wèn)控制方法及其系統(tǒng),該系統(tǒng)擴(kuò)展了傳統(tǒng)角色訪問(wèn)控制模型,屬于計(jì)算機(jī)訪問(wèn)控制領(lǐng)域。
背景技術(shù):
云計(jì)算是ー種將地理上分布的、異構(gòu)的計(jì)算資源、存儲(chǔ)資源、信息資源、知識(shí)資源等資源通過(guò)網(wǎng)絡(luò)互聯(lián)互通,從而實(shí)現(xiàn)資源共享和協(xié)同工作的目的。云計(jì)算的參與實(shí)體具有自主性,實(shí)體之間的協(xié)作具有動(dòng)態(tài)性。因此,云計(jì)算的ー個(gè)關(guān)鍵問(wèn)題就是如何在動(dòng)態(tài)變化環(huán)境下進(jìn)行訪問(wèn)控制,即如何管理和執(zhí)行授權(quán)策略。本文將云計(jì)算中每個(gè)參與實(shí)體及其運(yùn)行環(huán)境稱為ー個(gè)“自治域”。ー種典型的云計(jì)算應(yīng)用場(chǎng)景是兩所大學(xué)H和G各自有一套面向?qū)W校內(nèi)部的課程信息化系統(tǒng),兩所大學(xué)為推動(dòng)學(xué)科建設(shè),決定共享課程信息化系統(tǒng)中的在線課堂資源,即兩所大學(xué)H和G的師生均可在線學(xué)習(xí)對(duì)方的課程。在該場(chǎng)景中,參與實(shí)體H和G及各自的運(yùn)行環(huán)境分為稱為自治域H和自治域G,則上述的云計(jì)算訪問(wèn)控制問(wèn)題就細(xì)化為跨域訪問(wèn)控制問(wèn)題。一般而言,訪問(wèn)控制包括四個(gè)部分,訪問(wèn)主體単元(Subiect Unit, SU),訪問(wèn)控制執(zhí)行單兀(Access Control Execution Unit, ACEU),訪問(wèn)控制判定單兀(Access ControlDecision Unit, ACDU)和目標(biāo)客體單兀(Object Unit,0U),如圖I所不。訪問(wèn)主體單兀SU也稱為發(fā)起端主體単元,是指電腦中系統(tǒng)資源和應(yīng)用資源的使用者,或可執(zhí)行程序等系統(tǒng)實(shí)體的主動(dòng)部分;目標(biāo)客體単元主要指網(wǎng)絡(luò)資源,數(shù)據(jù)庫(kù)資源,Webserver資源,系統(tǒng)文件等屬于系統(tǒng)實(shí)體的被動(dòng)部分;訪問(wèn)控制執(zhí)行單元ACEU負(fù)責(zé)建立訪問(wèn)主體単元SU與目標(biāo)客體単元OU之間的通信橋梁,并在遵從訪問(wèn)控制判定単元ACDU判定結(jié)果的基礎(chǔ)上實(shí)施訪問(wèn)控制操作。目前,常用的訪問(wèn)控制方法主要有自主訪問(wèn)控制(Discretionary AccessControl, DAC)、強(qiáng)制訪問(wèn)控制(Mandatory Access Control, MAC)、屬性訪問(wèn)控制(Attributed-based Access Control, ABAC)和角色訪問(wèn)控制(Role-based AccessControl, RBAC)。DAC是ー種基于主體身份實(shí)施對(duì)客體訪問(wèn)控制的方法,該方法的核心思想是主體能夠自主地的將其對(duì)客體的訪問(wèn)權(quán)限或訪問(wèn)權(quán)限子集授予其它主體。MAC是ー種基于主體安全級(jí)別和客體安全級(jí)別的訪問(wèn)控制方法,其中安全級(jí)別是由安全管理員強(qiáng)制分配的,主體和客體都不能改變安全級(jí)別屬性。主體對(duì)客體的訪問(wèn)控制判定必須遵循如下規(guī)則(I)僅當(dāng)主體的安全級(jí)別大于或等于客體的安全級(jí)別時(shí),該主體具有讀取客體資源的權(quán)限。(2)僅當(dāng)主體的安全級(jí)別等于客體的安全級(jí)別時(shí),該主體對(duì)客體資源才具有寫的權(quán)限。ABAC把實(shí)體(主體、客體和環(huán)境)屬性組概念貫穿于訪問(wèn)控制策略、模型和實(shí)現(xiàn)機(jī)制三個(gè)層次,把與訪問(wèn)控制相關(guān)的時(shí)間、實(shí)體空間位置、實(shí)體行為、訪問(wèn)歷史等信息當(dāng)作主體、客體、權(quán)限和環(huán)境來(lái)統(tǒng)ー建模,通過(guò)定義屬性之間的關(guān)系描述復(fù)雜的授權(quán)和訪問(wèn)控制約束,具有描述能力豐富,可擴(kuò)展性好的特點(diǎn),但屬性定義困難,實(shí)際應(yīng)用價(jià)值不大。RBAC是ー種面向封閉系統(tǒng)環(huán)境的集中式訪問(wèn)控制模型,通過(guò)引入角色的概念實(shí)現(xiàn)了主體和客體的邏輯分離,并將權(quán)限描述為角色對(duì)客體的可訪問(wèn)能力。RBAC通過(guò)為主體關(guān)聯(lián)ー個(gè)或者多個(gè)角色的方式,間接達(dá)到了關(guān)聯(lián)主體及其可訪問(wèn)客體的目的,如圖2所示。綜上所述,相對(duì)于DAC和MAC,RBAC角色及其權(quán)限具有穩(wěn)定性,因此在應(yīng)用于主體具有動(dòng)態(tài)性的信息化系統(tǒng)中,極大的簡(jiǎn)化了權(quán)限管理的復(fù)雜度;相對(duì)于ABAC模型,RBAC模型角色定義清晰,實(shí)現(xiàn)簡(jiǎn)単、應(yīng)用范圍廣。但RBAC模型也存在無(wú)法適用分布式協(xié)同開(kāi)發(fā)環(huán)境的不足。
發(fā)明內(nèi)容
本發(fā)明目的是為了克服現(xiàn)有方案的不足,擴(kuò)展RBAC模型實(shí)現(xiàn),主要針對(duì)傳統(tǒng)RBAC模型如何使云環(huán)境下實(shí)體協(xié)作動(dòng)態(tài)性問(wèn)題,實(shí)現(xiàn)了ー種適應(yīng)于分布式云環(huán)境的基于信任度 的訪問(wèn)控制(Trust and Role based Access Control,TRBAC)方法及其系統(tǒng)。TRBAC 方法通過(guò)采用域間角色映射機(jī)制有效克服了傳統(tǒng)RBAC模型具有環(huán)境封閉性的不足;通過(guò)權(quán)限集合自動(dòng)劃分機(jī)制有效提高了分布式云環(huán)境下權(quán)限管理的自動(dòng)化程度;通過(guò)為權(quán)限添加信任值屬性的方法實(shí)現(xiàn)了細(xì)粒度的訪問(wèn)控制需求。本發(fā)明的技術(shù)方案為一種基于信任度的訪問(wèn)控制方法,其步驟為I)建立一角色-信任度描述模型,用于描述姆ー自治域內(nèi)主體的權(quán)限;2)對(duì)于某自治域B中的每一角色role,確定角色role與其他自治域A中角色映射到角色role映射關(guān)系,使自治域A中角色到自治域B角色映射滿足滿射關(guān)系;3)根據(jù)所述映射關(guān)系將該角色role的權(quán)限集合劃分到不同的子權(quán)限集合中;將劃分后的子集合關(guān)聯(lián)到相應(yīng)的信任度值上;4)當(dāng)自治域A中主體角色請(qǐng)求訪問(wèn)自治域B中資源時(shí),首先分析訪問(wèn)請(qǐng)求中包含的訪問(wèn)主體角色信息,然后將該訪問(wèn)主體角色映射到自治域B中的角色,并獲取該訪問(wèn)主體角色的信任值;5)自治域B根據(jù)該訪問(wèn)主體角色的角色信息和信任度值,確定本次訪問(wèn)請(qǐng)求所具有的資源訪問(wèn)權(quán)限。進(jìn)一步的,米用六兀組P =〈Role, Type, Action, Target, Context, TrustValue>描述每ー自治域內(nèi)主體的權(quán)限;其中,Role為角色信息、Type為權(quán)限類型、Action為即操作方式、Target為操作目標(biāo)、Context為上下文信息、TrustValue為信任值。進(jìn)ー步的,將該角色role的權(quán)限集合劃分為(M+2)個(gè)子權(quán)限集,包括一空集子權(quán)限集,一角色role的權(quán)限全集,其余M個(gè)權(quán)限子集分別對(duì)應(yīng)M個(gè)其他自治域的權(quán)限需求;其中M為與自治域B有關(guān)的其他自治域數(shù)目。進(jìn)ー步的,確定姆一角色role與其他自治域A中角色映射到角色role的映射關(guān)系,使自治域A中角色到自治域B角色映射滿足滿射關(guān)系的方法為I)初始化ー數(shù)組RoleArray,用于記錄自治域A中角色RoleA訪問(wèn)自治域B中資源候選角色集合;其中,自治域B中的角色集合為Role [N],N為角色個(gè)數(shù),每一角色對(duì)應(yīng)的權(quán)限集合為PS[N],自治域B約束自治域A中角色RoleA請(qǐng)求者具有的權(quán)限集為PSpromise ;自治域A中角色RoleA訪問(wèn)自治域B中資源應(yīng)該具有的角色表示為rmap ;2)設(shè)置一遍變量Num,初始化為Num = O,用于記錄所述候選角色的個(gè)數(shù);3)遍歷權(quán)限集合PS [N]的每一元素j,如果^^—e GPSL/+],則確定Role [j]是候選角色,RoleArray [i+ +] = Role [j];4)令Num等于數(shù)組RoleArray中候選角色的個(gè)數(shù),如果Num ^ O,則算法結(jié)束;如果Num = 1,則在自治域B中有且存在一個(gè)角色RoleArray[O]滿足滿射約束,輸出rmap =RoleArray [O];5)如果Num > 1,則自治域B中存在多個(gè)角色滿足滿射約束,設(shè)置ー變量k,k初始化為數(shù)組RoleArray對(duì)ー個(gè)元素對(duì)應(yīng)的權(quán)限個(gè)數(shù);然后遍歷候選角色數(shù)組RoleArray中前Num個(gè)數(shù)組元素的姆ー候選角色,如果候選角色RoleArray [m]所對(duì)應(yīng)的權(quán)限集合個(gè)數(shù)size小于k,則更新被選角色的下標(biāo)m = j,更新最小權(quán)限集數(shù)k = size,輸出rmap =RoieArray[k]。進(jìn)ー步的,根據(jù)所述映射關(guān)系將該角色role的權(quán)限集合劃分到不同的子權(quán)限集合中的方法為I)初始化ー數(shù)組 Array [O] = Φ ,Array [Μ+1] = PSrole ;其中,自治域 B 中角色;role的權(quán)限集合為PS_,角色role的權(quán)限劃分需求為(M+2),其它自治域映射到自治域B后的權(quán)限集合為PSdtjmian^ I彡r彡M ;2)依次遍歷PSdraiiaiiu到PSd_in—M,按照PSd_in—r權(quán)限數(shù)目升序存放在數(shù)組Array中I到M的位置;若權(quán)限數(shù)相同,則根據(jù)domain,,I く r彡M標(biāo)識(shí)從小到大的順序排列,得到數(shù)組Array [M+2],其包括一空集和角色role在自治域B對(duì)應(yīng)的權(quán)限全集PSMle ;3)令PSbase表示數(shù)組Array前j個(gè)權(quán)限集的合集,并初始化PSbase = Array [O];4)遍歷數(shù)組Array中元素j并計(jì)算姆一元素Array [j]的權(quán)限集合,使其滿足角色訪問(wèn)控制中的角色具有繼承性的約束,O < j ^ M+1 ;;5)更新 PSbase 為 PSbase = PSbase U Array [j]。進(jìn)ー步的,所述計(jì)算每一元素Array[j]的權(quán)限集合,使其滿足角色訪問(wèn)控制中的角色具有繼承性的約束的方法為將集合Array [j]具有的而集合PSbase不具有的權(quán)限進(jìn)行并操作轉(zhuǎn)換;將集合PSbase具有的而集合Array [j]不具有的權(quán)限進(jìn)行差操作轉(zhuǎn)換。進(jìn)ー步的,自治域B根據(jù)劃分的子權(quán)限集數(shù)目,計(jì)算每一子權(quán)限集對(duì)應(yīng)的信任值區(qū)間。
進(jìn)ー步的,自治域B根據(jù)訪問(wèn)主體角色的權(quán)限描述,確定該訪問(wèn)主體角色的信任值,并根據(jù)主體信任值賦予該訪問(wèn)主體對(duì)應(yīng)的子權(quán)限集,對(duì)該自治域B內(nèi)的客體資源進(jìn)行訪問(wèn)。一種基于信任度的訪問(wèn)控制系統(tǒng),其特征在于包括一角色-信任度描述模型、權(quán)限劃分模塊、角色映射模塊、訪問(wèn)判定模塊、權(quán)限劃分模塊;其中,所述角色-信任度描述模型,用于描述每ー自治域內(nèi)主體的權(quán)限;所述權(quán)限劃分模塊,用于根據(jù)本自治域中對(duì)某ー指定角色的分割需求,對(duì)該角色的權(quán)限集合進(jìn)行劃分操作,將劃分后的子集合關(guān)聯(lián)到相應(yīng)的信任度值上;所述角色映射模塊,用于當(dāng)其它自治域的用戶訪問(wèn)本自治域中資源時(shí),首先分析請(qǐng)求中包含的用戶角色信息,并將該用戶映射到本自治域中的角色,并獲取該用戶的信任值;所述訪問(wèn)判定模塊,用于根據(jù)該用戶的角色信息和信任度值,判定本次請(qǐng)求是否具有資源訪問(wèn)權(quán)限。進(jìn)ー步的,所述角色-信任度描述模型采用六元組P =〈Role, Type, Action,Target, Context, TrustValue〉描述姆ー自治域內(nèi)主體的權(quán)限;其中,Role為角色信息、Type為權(quán)限類型、Action為即操作方式、Target為操作目標(biāo)、Context為上下文信息、TrustValue為信任值。進(jìn)ー步的,所述權(quán)限劃分模塊根據(jù)其他M個(gè)自治域請(qǐng)求者角色映射到自治域B主體角色r的權(quán)限約束,將該角色r的權(quán)限集合劃分為(M+2)個(gè)子權(quán)限集;其中,(M+2)個(gè)子權(quán)限集中包括一空集子權(quán)限集,一個(gè)為角色人的權(quán)限全集,其余M個(gè)權(quán)限子集分別對(duì)應(yīng)M個(gè)其他自治域的權(quán)限需求。 如圖3所示,TRBAC系統(tǒng)中每個(gè)自治域均主要包括以下三個(gè)模塊 角色映射模塊角色映射模塊定義了不同自治域之間角色的映射規(guī)則,其輸入是其它自治域中用戶角色信息,輸出是本自治域角色信息和信任度; 權(quán)限劃分表述模塊權(quán)限劃分模塊將權(quán)限集合按照信任度的約束劃分到不同的子集合中。 訪問(wèn)判定模塊 訪問(wèn)判定模塊根據(jù)角色映射模塊輸出的角色信息和信任度,判定此次訪問(wèn)是否違反安全原則。TRBAC系統(tǒng)的運(yùn)行原理如圖4所示,權(quán)限劃分模塊根據(jù)本自治域中對(duì)某ー指定角色的分割需求,對(duì)該角色的權(quán)限集合進(jìn)行自動(dòng)化劃分操作,自動(dòng)將劃分后的子集合關(guān)聯(lián)到相應(yīng)的信任度值上。所謂分割需求,是指本自治域中某一特定角色與所有其它自治域中角色的映射關(guān)系;當(dāng)其它自治域的用戶訪問(wèn)本自治域中資源時(shí),角色映射模塊首先分析請(qǐng)求中包含的用戶角色信息,并將該用戶映射到本自治域中的角色,并獲取該用戶的信任值;訪問(wèn)判定模塊根據(jù)該用戶的角色信息和信任度值,判定本次請(qǐng)求是否具有資源訪問(wèn)權(quán)限。因此,本發(fā)明提出了用于實(shí)現(xiàn)TRBAC的ー種模型和三種機(jī)制,即基于信任度的權(quán)限描述模型、基于集合論滿射關(guān)系的角色映射機(jī)制、基于正負(fù)標(biāo)識(shí)的權(quán)限集合劃分機(jī)制和基于反三角函數(shù)的權(quán)限映射機(jī)制I)擴(kuò)展角色訪問(wèn)控制,建立基于“角色-信任度”權(quán)限描述模型,用于描述每個(gè)自治域內(nèi)主體的權(quán)限;2)當(dāng)自治域A中用戶訪問(wèn)自治域B中的資源時(shí),根據(jù)自治域B對(duì)自治域A不同角色用戶的權(quán)限約束,將自治域A中不同角色自動(dòng)關(guān)聯(lián)到自治域B中的不同角色,角色映射滿足滿射關(guān)系,例如自治域A中角色RoleA映射到自治域中角色RoleB,如算法I所示;3)根據(jù)第2)步,雖然同樣是角色RoleB,但通常來(lái)說(shuō),自治域A用戶訪問(wèn)自治域B資源的權(quán)限(通過(guò)請(qǐng)求IP地址等機(jī)制判斷)是自治域B用戶訪問(wèn)自治域B資源權(quán)限的子集。這種相同角色不同權(quán)限的細(xì)粒度控制需求,就需要通過(guò)信任度來(lái)細(xì)分。因此,傳統(tǒng)角色訪問(wèn)控制中基干“角色”的粗粒度的用戶和權(quán)限關(guān)聯(lián)機(jī)制已不再適用。本文是將〈角色,信任度 > 一起作為用戶和權(quán)限管理關(guān)聯(lián)的依據(jù)。其中在步驟3)中,對(duì)于同樣是角色RoleB,需要?jiǎng)澐殖啥嗌賯€(gè)信任度區(qū)間?這與自治域B和多少個(gè)其它自治域合作相關(guān)。例如其它M個(gè)自治域均有一角色與自治域B中角色RoleB相關(guān)聯(lián),且自治域B承諾賦予的權(quán)限都不一樣,則需要?jiǎng)澐殖?M+2)個(gè)子權(quán)限集合,其中I個(gè)是空集;1個(gè)是角色RoleB的權(quán)限全集;另外M個(gè)權(quán)限子集對(duì)應(yīng)M個(gè)其它自治域的權(quán)限需求。每個(gè)信任度區(qū)間對(duì)應(yīng)角色RoleB的權(quán)限子集,即需要(M+2)個(gè)信任度區(qū)間
,0<i<M+l。而自治域B中角色RoleB在_個(gè)信任度區(qū)丨旬具有·的ネ又限
if + 2 if + 2則按照算法2描述。3. I基于信任度的權(quán)限描述模型
本發(fā)明約定所有主體的權(quán)限均由六元組P =〈Role, Type, Action, Target,Context, TrustValue〉描述,如圖5所示,其中不同元素的具體含義如下· Role :即角色信息,如教師角色,學(xué)生角色等;# Type :即權(quán)限類型,如文件類型FilePermission,網(wǎng)絡(luò)類型NetPermission等;· Action :即操作方式,如文件寫操作write,網(wǎng)絡(luò)監(jiān)聽(tīng)操作listen等等;· Target :即操作目標(biāo),如文件寫目標(biāo)為C://text. txt等等;· Context :即上下文信息,如約束資源智能在8:00-11:00時(shí)間范圍內(nèi)被主體訪問(wèn);· TrustValue,即信任值,用于描述該資源能被訪問(wèn)的主體最低信任值約束;例如,信任值大于O. 5的學(xué)生角色用戶,具有在上午8點(diǎn)到11點(diǎn)之間、下午14點(diǎn)到18點(diǎn)之間訪問(wèn)課程math, rmvb資源的權(quán)限,則其形式化描述為ぐ'student" , java.io.CoursePermission, " read" , " /math, rmvb" , {{8:00-11:00}, {14:00-18:00}},
0.5>。該權(quán)限物理意義是當(dāng)學(xué)校H中用戶滿足以下三種情況時(shí),不具備訪問(wèn)學(xué)校G中課程mathrmvb資源的權(quán)限I.學(xué)校H中用戶訪問(wèn)學(xué)校G中課程mathrmvb資源時(shí),角色映射后不是學(xué)生角色;2.學(xué)校H中用戶訪問(wèn)學(xué)校G中課程mathrmvb資源吋,雖然是學(xué)生角色,但其訪問(wèn)時(shí)間違反了上午八點(diǎn)到11點(diǎn)之間、下午2點(diǎn)到6點(diǎn)之間的約束;3.學(xué)校H中用戶訪問(wèn)學(xué)校G中課程mathrmvb資源時(shí),雖然是學(xué)生角色,但信任度小于O. 5 ;其中權(quán)限和信任值的關(guān)聯(lián)將根據(jù)3. 2節(jié)算法自動(dòng)計(jì)算得出。3. 2基于集合論滿射關(guān)系的角色映射機(jī)制要實(shí)現(xiàn)跨自治域的角色映射,其前提條件必須是不同自治域的角色之間滿足滿射關(guān)系,即要求自治域A中的每ー種角色RoleA,在自治域B中存在且只存在一種角色RoleB與之相對(duì)應(yīng)。然而由于不同自治域角色定義具有獨(dú)立性和差異性,對(duì)于自治域A中的每ー種角色RoleA,在自治域B中可能存在多種角色RoleB與之相對(duì)應(yīng),從而出現(xiàn)角色映射沖突問(wèn)題。本文將著重解決不同自治域角色映射沖突問(wèn)題。定義I函數(shù)f :A — B為滿射,當(dāng)且僅當(dāng)對(duì)任意b e B,存在a e A滿足f (a) = b,且不存在 f (a) = b, f (a) = c, b デ C。在上述兩所大學(xué)課程合作的示例中,假設(shè)大學(xué)H具有三種角色RoleSet11= {教師,全日制學(xué)生,非全日制學(xué)生}
教師具有開(kāi)課設(shè)置,查看學(xué)生信息,打分等權(quán)限; 全日制學(xué)生具有跨專業(yè)選課,課程評(píng)估,在線課程學(xué)習(xí)的權(quán)限; 非全日制學(xué)生具有選本專業(yè)課程,課程評(píng)估,在線課程學(xué)習(xí)的權(quán)限。大學(xué)G具有兩種角色RoleSete = {教師,學(xué)生} 教師具有開(kāi)課設(shè)置,查看學(xué)生信息,打分等權(quán)限; 學(xué)生具有跨專業(yè)選課,在線課程學(xué)習(xí)的權(quán)限;(a)學(xué)校H的視角從學(xué)校H的視角來(lái)看,學(xué)校G中的用戶會(huì)訪問(wèn)學(xué)校H中的課程資源,并約定學(xué)校G中的用戶具有在線課程學(xué)習(xí)的權(quán)限。由于在學(xué)校H中,角色全日制學(xué)生和非全日制學(xué)生的權(quán)限都包含在線課程學(xué)習(xí)這ー項(xiàng)。因此學(xué)校G中用戶既可以映射成學(xué)校H中的全日制學(xué)生角色,也可以映射成學(xué)校H中的非全日制學(xué)生角色,這違反定義I滿射約束。因此,本發(fā)明鑒于在權(quán)限設(shè)置方面存在非全日制學(xué)生に全日制學(xué)生的客觀現(xiàn)實(shí),將H具有的角色集合RoleSeta = {教師,全日制學(xué)生,非全日制學(xué)生}改造成RoleSet' H ={教師,全日制學(xué)生},即將非全日制學(xué)生看成是全日制學(xué)生特殊的ー種,并通過(guò)3. 3節(jié)信任度的劃分來(lái)區(qū)分兩種角色權(quán)限差異性。改造后滿足滿射約束I. RoleSetc.教師g RoleSet' Η.教師2. RoleSetc.學(xué)生·o· RoleSet' Η.全日制學(xué)生(b)學(xué)校G的視角從學(xué)校G的視角來(lái)看,學(xué)校H中的用戶會(huì)訪問(wèn)學(xué)校G中的課程資源,并約定學(xué)校H中的用戶具有在線課程學(xué)習(xí)的權(quán)限。由于在學(xué)校G中有且只有學(xué)生角色包含在線課程學(xué)習(xí)權(quán)限。根據(jù)定義1,集合A相當(dāng)于學(xué)校H具有的角色集合為RoleSet11= {教師,全日制學(xué)生,非全日制學(xué)生},集合B相當(dāng)于學(xué)校G具有的角色集合為RoleSete ={教師,學(xué)生},上述集合滿足定義I中存在a e A滿足f (a) = b的滿射約束I. RoleSeta.教師·ο· RoleSetG.教師2. RoleSet11.全日制學(xué)生·o· RoleSetG.學(xué)生3. RoleSeta.非全日制學(xué)生·o· RoleSetG.學(xué)生
基于集合論滿射關(guān)系的角色映射算法詳細(xì)描述如算法I所示
權(quán)利要求
1.一種基于信任度的訪問(wèn)控制方法,其步驟為 1)建立一角色-信任度描述模型,用于描述每一自治域內(nèi)主體的權(quán)限; 2)對(duì)于某自治域B中的每一角色role,確定角色role與其他自治域A中角色映射到角色role映射關(guān)系,使自治域A中角色到自治域B角色映射滿足滿射關(guān)系; 3)根據(jù)所述映射關(guān)系將該角色role的權(quán)限集合劃分到不同的子權(quán)限集合中;將劃分后的子集合關(guān)聯(lián)到相應(yīng)的信任度值上; 4)當(dāng)自治域A中主體角色請(qǐng)求訪問(wèn)自治域B中資源時(shí),首先分析訪問(wèn)請(qǐng)求中包含的訪問(wèn)主體角色信息,然后將該訪問(wèn)主體角色映射到自治域B中的角色,并獲取該訪問(wèn)主體角色的信任值; 5)自治域B根據(jù)該訪問(wèn)主體角色的角色信息和信任度值,確定本次訪問(wèn)請(qǐng)求所具有的資源訪問(wèn)權(quán)限。
2.如權(quán)利要求I所述的方法,其特征在于采用六元組P=〈Role, Type, Action,Target, Context, TrustValue〉描述每一自治域內(nèi)主體的權(quán)限;其中,Role為角色信息、Type為權(quán)限類型、Action為即操作方式、Target為操作目標(biāo)、Context為上下文信息、TrustValue為信任值。
3.如權(quán)利要求I所述的方法,其特征在于將該角色role的權(quán)限集合劃分為(M+2)個(gè)子權(quán)限集,包括一空集子權(quán)限集,一角色role的權(quán)限全集,其余M個(gè)權(quán)限子集分別對(duì)應(yīng)M個(gè)其他自治域的權(quán)限需求;其中M為與自治域B有關(guān)的其他自治域數(shù)目。
4.如權(quán)利要求I或2或3所述的方法,其特征在于確定每一角色role與其他自治域A中角色映射到角色role的映射關(guān)系,使自治域A中角色到自治域B角色映射滿足滿射關(guān)系的方法為 1)初始化一數(shù)組RoleArray,用于記錄自治域A中角色RoleA訪問(wèn)自治域B中資源候選角色集合;其中,自治域B中的角色集合為Role [N],N為角色個(gè)數(shù),每一角色對(duì)應(yīng)的權(quán)限集合為PS [N],自治域B約束自治域A中角色Rolej#求者具有的權(quán)限集為PSpromise ;自治域A中角色RoleA訪問(wèn)自治域B中資源應(yīng)該具有的角色表示為rmap ; 2)設(shè)置一遍變量Num,初始化為Num= O,用于記錄所述候選角色的個(gè)數(shù); 3)遍歷權(quán)限集合PS[N]的每一元素j,如果則確定Role[j]是候選角色,RoleArray [i++] = Role [j]; 4)令Num等于數(shù)組RoleArray中候選角色的個(gè)數(shù),如果Num( O,則算法結(jié)束;如果Num = 1,則在自治域B中有且存在一個(gè)角色RoleArray
滿足滿射約束,輸出rmap =RoleArray [O]; 5)如果Num> 1,則自治域B中存在多個(gè)角色滿足滿射約束,設(shè)置一變量k,k初始化為數(shù)組RoleArray第一個(gè)元素對(duì)應(yīng)的權(quán)限個(gè)數(shù);然后遍歷候選角色數(shù)組RoleArray中前Num個(gè)數(shù)組元素的每一候選角色,如果候選角色RoleArray [m]所對(duì)應(yīng)的權(quán)限集合個(gè)數(shù)size小于k,則更新被選角色的下標(biāo)m= j,更新最小權(quán)限集數(shù)k= size,輸出rmap = RoleArray [k]。
5.如權(quán)利要求4所述的方法,其特征在于根據(jù)所述映射關(guān)系將該角色role的權(quán)限集合劃分到不同的子權(quán)限集合中的方法為 I)初始化一數(shù)組Array [O] = Φ ,Array [Μ+1] = PSrole ;其中,自治域B中角色role的權(quán)限集合為PSrole,角色role的權(quán)限劃分需求為(M+2),其它自治域映射到自治域B后的權(quán)限集合為 PSdtjmian-,I ≤r≤M; 2)依次遍歷PS domain—I 至丨J PSdomain—M, 按照PSd_b權(quán)限數(shù)目升序存放在數(shù)組Array中I到M的位置;若權(quán)限數(shù)相同,則根據(jù)domainr,I ( r≤M標(biāo)識(shí)從小到大的順序排列,得到數(shù)組Array [M+2],其包括一空集和角色role在自治域B對(duì)應(yīng)的權(quán)限全集PSrole ; 3)令PSbase表示數(shù)組Array前j個(gè)權(quán)限集的合集,并初始化PSbase= Array [O]; 4)遍歷數(shù)組Array中元素j并計(jì)算每一元素Array[j]的權(quán)限集合,使其滿足角色訪問(wèn)控制中的角色具有繼承性的約束,O < j ≤ M+1 ;;5)更新PSbase 為 PSbase = PSbase U Array[j]。
6.如權(quán)利要求5所述的方法,其特征在于所述計(jì)算每一元素Array[j]的權(quán)限集合,使其滿足角色訪問(wèn)控制中的角色具有繼承性的約束的方法為將集合Array[j]具有的而集合PSbase不具有的權(quán)限進(jìn)行并操作轉(zhuǎn)換;將集合PSbase具有的而集合Array [j]不具有的權(quán)限進(jìn)行差操作轉(zhuǎn)換。
7.如權(quán)利要求I所述的方法,其特征在于自治域B根據(jù)劃分的子權(quán)限集數(shù)目,計(jì)算每一子權(quán)限集對(duì)應(yīng)的信任值區(qū)間。
8.如權(quán)利要求7所述的方法,其特征在于自治域B根據(jù)訪問(wèn)主體角色的權(quán)限描述,確定該訪問(wèn)主體角色的信任值,并根據(jù)主體信任值賦予該訪問(wèn)主體對(duì)應(yīng)的子權(quán)限集,對(duì)該自治域B內(nèi)的客體資源進(jìn)行訪問(wèn)。
9.一種基于信任度的訪問(wèn)控制系統(tǒng),其特征在于包括一角色-信任度描述模型、權(quán)限劃分模塊、角色映射模塊、訪問(wèn)判定模塊、權(quán)限劃分模塊;其中, 所述角色-信任度描述模型,用于描述每一自治域內(nèi)主體的權(quán)限; 所述權(quán)限劃分模塊,用于根據(jù)本自治域中對(duì)某一指定角色的分割需求,對(duì)該角色的權(quán)限集合進(jìn)行劃分操作,將劃分后的子集合關(guān)聯(lián)到相應(yīng)的信任度值上; 所述角色映射模塊,用于當(dāng)其它自治域的用戶訪問(wèn)本自治域中資源時(shí),首先分析請(qǐng)求中包含的用戶角色信息,并將該用戶映射到本自治域中的角色,并獲取該用戶的信任值; 所述訪問(wèn)判定模塊,用于根據(jù)該用戶的角色信息和信任度值,判定本次請(qǐng)求是否具有資源訪問(wèn)權(quán)限。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于所述角色-信任度描述模型采用六元組P=〈Role, Type, Action, Target, Context, TrustValue〉描述每一自治域內(nèi)主體的權(quán)限;其中,Role為角色信息、Type為權(quán)限類型、Action為即操作方式、Target為操作目標(biāo)、Context為上下文信息、TrustValue為信任值。
11.如權(quán)利要求9所述的系統(tǒng),其特征在于所述權(quán)限劃分模塊根據(jù)其他M個(gè)自治域請(qǐng)求者角色映射到自治域B主體角色r的權(quán)限約束,將該角色r的權(quán)限集合劃分為(M+2)個(gè)子權(quán)限集;其中,(M+2)個(gè)子權(quán)限集中包括一空集子權(quán)限集,一個(gè)為角色人的權(quán)限全集,其余M個(gè)權(quán)限子集分別對(duì)應(yīng)M個(gè)其他自治域的權(quán)限需求。
全文摘要
本發(fā)明公開(kāi)了一種基于信任度的訪問(wèn)控制方法及其系統(tǒng),屬于計(jì)算機(jī)訪問(wèn)控制領(lǐng)域。本方法為1)建立一角色-信任度描述模型,2)對(duì)于某自治域B中的每一角色r,確定其與其他自治域A中角色映射到角色r映射關(guān)系,使A中角色到B角色映射滿足滿射關(guān)系;3)根據(jù)映射關(guān)系將角色r的權(quán)限集合劃分到不同的子權(quán)限集合中;將劃分后的子集合關(guān)聯(lián)到相應(yīng)的信任度值上;4)當(dāng)A中主體角色訪問(wèn)B中資源時(shí),首先分析訪問(wèn)主體角色信息,然后將其映射到自治域B中的角色,并獲取信任值;5)自治域B根據(jù)該訪問(wèn)主體角色的角色信息和信任度值,確定本次訪問(wèn)請(qǐng)求所具有的資源訪問(wèn)權(quán)限。本發(fā)明有效彌補(bǔ)了傳統(tǒng)角色訪問(wèn)控制無(wú)法適用分布式協(xié)同開(kāi)發(fā)環(huán)境的不足。
文檔編號(hào)H04L29/06GK102664888SQ201210116988
公開(kāi)日2012年9月12日 申請(qǐng)日期2012年4月19日 優(yōu)先權(quán)日2012年4月19日
發(fā)明者何海, 吳恒, 張文博, 黃濤 申請(qǐng)人:中國(guó)科學(xué)院軟件研究所