值,從而實(shí)現(xiàn)了對(duì)用戶訪問(wèn)的動(dòng)態(tài)控制。
[0038] 實(shí)施例二
[0039] 本發(fā)明的實(shí)施例二結(jié)合傳統(tǒng)的基于角色的訪問(wèn)控制策略RBAC,提供了一種基于角 色的HDFS訪問(wèn)控制方法,該方法的步驟流程如圖3所示,包括:
[0040] (1)用戶Client向角色管理服務(wù)器請(qǐng)求分配角色;
[0041] (2)角色管理服務(wù)器為用戶分配角色,并將角色證書和共享密鑰頒發(fā)給用戶;
[0042] (3)角色管理服務(wù)器與NameNode節(jié)點(diǎn)之間設(shè)置、更新共享密鑰;
[0043] (4)用戶Client持角色證書及共享密鑰訪問(wèn)NameNode節(jié)點(diǎn),申請(qǐng)存取服務(wù);
[0044] (5)NameNode節(jié)點(diǎn)驗(yàn)證用戶角色合法及共享密鑰合法后向用戶返回最佳的數(shù)據(jù) 塊副本地址;
[0045] (6)用戶Client向NameNode節(jié)點(diǎn)告知的所有DataNode節(jié)點(diǎn)請(qǐng)求所需服務(wù);
[0046] (7)DataNode節(jié)點(diǎn)接收到用戶的請(qǐng)求后,給予用戶提供所需服務(wù)或拒絕提供服 務(wù);
[0047] (8)DataNode節(jié)點(diǎn)與NameNode節(jié)點(diǎn)通過(guò)心跳機(jī)制進(jìn)行通信。
[0048] 實(shí)施例三
[0049] 本發(fā)明的實(shí)施例三結(jié)合Kerberos和用戶信任值的概念,提供了一種基于用戶信 任值的HDFS訪問(wèn)控制方法,該方法的步驟流程如圖4所示,包括:
[0050] (1)Client將自己的身份認(rèn)證信息用K1加密后發(fā)送給KDC請(qǐng)求進(jìn)行身份認(rèn)證;
[0051](2)KDC驗(yàn)證Client身份合法有效,給予頒發(fā)票據(jù)授權(quán)票據(jù)TGT,并用K1加密后回 傳給Client;
[0052](3)Client持TGT向KDC發(fā)送服務(wù)請(qǐng)求,請(qǐng)求內(nèi)容用K1加密;
[0053] (4)KDC接收請(qǐng)求,并且產(chǎn)生服務(wù)票據(jù)Ticket= {K3,用戶名,IP,地址,服務(wù)名,有 效期,時(shí)間戳};
[0054] (5)KDC用K1加密K3,用K2加密Ticket后一并回傳給Client;
[0055] (6) Client解密得到與NameNode節(jié)點(diǎn)之間的會(huì)話密鑰K3,并生成Authenticator ={(用戶名,IP)K3};
[0056] (7)Client將步驟5中從KDC獲取到的用K2加密的Ticket連同步驟6中生成的 Authenticator,以格式{(Ticket)K2,Authenticator}發(fā)送給NameNode節(jié)點(diǎn),申請(qǐng)Name Node節(jié)點(diǎn)上的身份認(rèn)證;
[0057] (8)NameNode節(jié)點(diǎn)對(duì)所接收到的內(nèi)容進(jìn)行解密,驗(yàn)證Client是否屬于合法用戶;
[0058] (9)NameNode節(jié)點(diǎn)驗(yàn)證Client身份合法之后,生成DelegationToken并頒發(fā)給 Client;
[0059] (10)Client持DelegationToken向NameNode節(jié)點(diǎn)申請(qǐng)HDFS服務(wù),NameNode 節(jié)點(diǎn)使用所接收到的TokenIDD和本地的masterkey計(jì)算出TokenAuthenticatorD,在本地 再次構(gòu)建一個(gè)DelegationToken,若NameNode重建的DelegationToken在NameNode本 地內(nèi)存中具有相同的版本,則認(rèn)定該用戶身份合法有效;
[0060] (11)查詢用戶行為數(shù)據(jù)庫(kù)并通過(guò)信任值更新算法計(jì)算得到用戶當(dāng)前的信任值;
[0061] (12)若用戶信任值滿足要求,則NameNode節(jié)點(diǎn)為用戶生成塊訪問(wèn)授權(quán)令牌 BlockAccessToken。令牌中的AccessModes字段存放當(dāng)前用戶可以對(duì)Block執(zhí)行的操 作,實(shí)際上就是用戶所具有的權(quán)限。該字段的取值設(shè)定由各個(gè)操作自身規(guī)定的信任值閾 值來(lái)決定:1)若步驟11中計(jì)算所得信任值大于等于某個(gè)操作所規(guī)定的信任值閾值,字段 AccessModes取值加入該操作;2)若步驟11中計(jì)算所得信任值小于某個(gè)操作所規(guī)定的信任 值閾值,字段AccessModes取值為空,不加入該操作;
[0062] (13)當(dāng)用戶滿足CP規(guī)則時(shí),NameNode節(jié)點(diǎn)將生成的BlockAccessToken分發(fā) 給Client;
[0063] (14)Client持BlockAccessToken向NameNode節(jié)點(diǎn)告知的所有DataNode節(jié) 點(diǎn)請(qǐng)求所需服務(wù);
[0064] (15)DataNode節(jié)點(diǎn)接收到Client的請(qǐng)求后,首先判斷BlockAccessToken是否 合法有效,再?zèng)Q定是否給予用戶提供AccessModes字段所規(guī)定的操作;
[0065] (16)Client從DataNode節(jié)點(diǎn)獲取AccessModes字段規(guī)定的操作,或者當(dāng)用戶滿 足CR規(guī)則時(shí),給用戶發(fā)送拒絕提供服務(wù)的提示信息;
[0066] (17)DataNode節(jié)點(diǎn)在最近的下一次心跳中,將Client在其上面的所有操作行為 記錄反饋給NameNode節(jié)點(diǎn);
[0067] (18)NameNode節(jié)點(diǎn)將反饋得到的用戶操作行為記錄保存到行為數(shù)據(jù)庫(kù)中。
【主權(quán)項(xiàng)】
1. 一種基于角色和用戶信任值的皿FS訪問(wèn)控制方法,其特征在于包括如下步驟: 步驟一、用戶訪問(wèn)皿FS之前,首先向角色管理服務(wù)器申請(qǐng)用戶角色,角色管理服務(wù)器 為用戶分配角色,并將角色證書和共享密鑰頒發(fā)給用戶。 步驟二、用戶持角色證書和共享密鑰訪問(wèn)可信賴第=方認(rèn)證系統(tǒng)Kerberos,申請(qǐng)身份 認(rèn)證,若用戶身份合法,則授予用戶訪問(wèn)皿FS的服務(wù)票據(jù)Ticket。 步驟=、用戶持Ticket向NameNode節(jié)點(diǎn)請(qǐng)求服務(wù),通過(guò)查詢存儲(chǔ)在行為數(shù)據(jù)庫(kù)中的 用戶行為記錄,并利用信任值更新算法計(jì)算得到用戶當(dāng)前信任值,若用戶當(dāng)前信任值大于 等于系統(tǒng)所設(shè)定的信任值闊值TrusttheshDid,則NameNode節(jié)點(diǎn)為用戶頒發(fā)塊訪問(wèn)授權(quán)令牌 BlockAccessToken,用戶持BlockAccessToken連接NameNode節(jié)點(diǎn)告知的所有Data Node節(jié)點(diǎn),獲取所需服務(wù)。2. 如權(quán)利要求1所述的一種基于角色和用戶信任值的皿FS訪問(wèn)控制方法,其特征在于 對(duì)用戶進(jìn)行角色分配,包括: 角色管理服務(wù)器是實(shí)現(xiàn)角色分配管理的核屯、,作為可信機(jī)構(gòu)參與訪問(wèn)控制過(guò)程,其主 要由角色管理模塊、密鑰管理模塊、證書管理模塊、用戶接口模塊、網(wǎng)絡(luò)通信模塊5個(gè)模塊 組成。當(dāng)用戶向角色管理服務(wù)器提出訪問(wèn)請(qǐng)求(包括用戶名、密碼及所申請(qǐng)的角色),角色 管理服務(wù)器根據(jù)用戶身份,查詢用戶和角色數(shù)據(jù)庫(kù),為用戶分配相應(yīng)的角色,并同密鑰管理 模塊生成的角色密鑰一起生成角色證書,發(fā)送給用戶。3. 如權(quán)利要求2所述的一種基于角色和用戶信任值的皿FS訪問(wèn)控制方法,其特征在于 對(duì)用戶進(jìn)行Kerberos身份認(rèn)證,包括; Kerberos作為可信賴第=方認(rèn)證系統(tǒng)實(shí)現(xiàn)對(duì)用戶的身份認(rèn)證,用戶在對(duì)應(yīng)用服務(wù)器進(jìn) 行訪問(wèn)之前,必須先從Kerberos服務(wù)器獲取該應(yīng)用服務(wù)器的訪問(wèn)許可證Ticket。Kerberos 服務(wù)器由2部分組成;認(rèn)證服務(wù)器(AuthenticationServer,A巧和票據(jù)授予服務(wù)器 (TicketGrantingServer,TGS),通過(guò)認(rèn)證服務(wù)器判斷用戶在不在密鑰數(shù)據(jù)庫(kù)中,如果在 則發(fā)布一個(gè)票據(jù)授權(quán)票據(jù)(TicketGrantingTicket,TGT),并將TGT用會(huì)話密鑰K1加密 后發(fā)送給用戶;如果用戶不在密鑰數(shù)據(jù)庫(kù)中,則停止服務(wù)。 用戶持密鑰K1解密信息,并將自己的唯一標(biāo)識(shí)用K1加密后和TGT-起發(fā)送給TGS,TGS在驗(yàn)證TGT的有效性后,為其生成一個(gè)服務(wù)票據(jù)Ticket,Ticket包含會(huì)話密鑰K3、用戶名、 IP、地址、服務(wù)名、有效期、時(shí)間戳,且Ticket用密鑰K2進(jìn)行加密,K3用K1進(jìn)行加密后一起 發(fā)送給用戶,由于用戶不知道密鑰K2,所W無(wú)法篡改Ticket中的信息;用戶持密鑰K1解密 信息得到密鑰K3,從而獲得與皿FS交互的密鑰。4. 如權(quán)利要求3所述的一種基于角色和用戶信任值的皿FS訪問(wèn)控制方法,其特征在 于,在用戶訪問(wèn)皿FS資源時(shí),還包括: 行為數(shù)據(jù)庫(kù)和信任值數(shù)據(jù)庫(kù)均設(shè)置在NameNode節(jié)點(diǎn)上,當(dāng)用戶持Ticket訪問(wèn)Name Node節(jié)點(diǎn)時(shí),通過(guò)查詢行為數(shù)據(jù)庫(kù)中的用戶行為記錄,并利用信任值更新算法計(jì)算得到用 戶信任值,信任值更新算法如公式(1)所示:(1) 其中cf表示用戶最新信任值,initTrust表示用戶初始信任值或歷史信任值,N"、NKe、 Ndc分別表示普通行為、風(fēng)險(xiǎn)行為、危險(xiǎn)行為該S類用戶行為各自的記錄總數(shù),a、6、丫為 系統(tǒng)賦予每種行為類別的信任值評(píng)估權(quán)重,且滿足a+P+丫 = 1的關(guān)系。 當(dāng)用戶滿足用戶身份合法,服務(wù)票據(jù)合法且信任值大于等于信任值闊值條件時(shí),允許 其訪問(wèn)皿FS中的資源,該一訪問(wèn)控制規(guī)則的約束表達(dá)式如下:(2) 當(dāng)用戶身份非法或服務(wù)票據(jù)非法或信任值小于信任值闊值時(shí),系統(tǒng)拒絕用戶訪問(wèn)皿FS中的資源,該一訪問(wèn)控制規(guī)則的約束表達(dá)式如下:(3) 其中,user為用戶信息,tick為用戶訪問(wèn)NameNode節(jié)點(diǎn)的服務(wù)票據(jù),cf為用戶最新 信任值,TrusttheshDid為信任值闊值,accept為允許本次訪問(wèn)操作,DENY為拒絕本次訪問(wèn)操 作。 當(dāng)用戶滿足CP規(guī)則時(shí),NameNode節(jié)點(diǎn)為用戶頒發(fā)BlockAccessToken,用戶持Block AccessToken訪問(wèn)DataNode節(jié)點(diǎn),獲取所需服務(wù);當(dāng)用戶滿足CR規(guī)則時(shí),NameNode節(jié)點(diǎn) 向用戶發(fā)送拒絕提供服務(wù)的提示信息。
【專利摘要】本發(fā)明提供了一種基于角色和用戶信任值的HDFS訪問(wèn)控制方法,屬于計(jì)算機(jī)云存儲(chǔ)訪問(wèn)控制領(lǐng)域。本發(fā)明首先結(jié)合基于角色的訪問(wèn)控制策略RBAC,替代HDFS的自主訪問(wèn)控制策略,減少了HDFS授權(quán)管理的復(fù)雜性和管理開銷,提高了授權(quán)管理的靈活性。在用戶首次訪問(wèn)HDFS時(shí),對(duì)用戶授予角色,通過(guò)角色將用戶和權(quán)限分隔開,以方便管理。在此基礎(chǔ)上,本發(fā)明進(jìn)一步引入用戶信任值的概念,通過(guò)為每個(gè)用戶設(shè)定一個(gè)信任值,使得擁有相同角色的不同用戶因其信任值的不同而得到不同的訪問(wèn)權(quán)限,并通過(guò)用戶后期行為動(dòng)態(tài)更新用戶信任值,從而實(shí)現(xiàn)動(dòng)態(tài)、有效地控制用戶對(duì)HDFS中資源的訪問(wèn)。
【IPC分類】H04L9/32, H04L29/08, H04L29/06
【公開號(hào)】CN104935590
【申請(qǐng)?zhí)枴緾N201510328860
【發(fā)明人】秦小麟, 史文浩, 王勝, 王瀟逸
【申請(qǐng)人】南京航空航天大學(xué)
【公開日】2015年9月23日
【申請(qǐng)日】2015年6月10日