摘 要: 隨著網(wǎng)格應(yīng)用的發(fā)展,網(wǎng)格安全問題日漸突出。為解決此問題,Globus項(xiàng)目組作了大量工作。討論網(wǎng)格環(huán)境下的安全問題,分析Globus的安全機(jī)制,結(jié)合虛擬組織技術(shù)和基于角色的訪問控制方法,探討基于Globus安全基礎(chǔ)設(shè)施的擴(kuò)展的安全技術(shù)——社區(qū)授權(quán)服務(wù)機(jī)制,并對(duì)網(wǎng)格環(huán)境下的安全技術(shù)的基本問題進(jìn)行了總結(jié)。
關(guān)鍵詞: 網(wǎng)格安全;虛擬組織;基于角色的訪問控制
作為新一代網(wǎng)絡(luò)發(fā)展方向的網(wǎng)格,主要目的之一就是要在分布廣泛、動(dòng)態(tài)和異構(gòu)的個(gè)體或社區(qū)間實(shí)現(xiàn)資源共享與合作。資源共享的進(jìn)一步實(shí)施帶來(lái)了很多安全問題,只有實(shí)現(xiàn)系統(tǒng)的安全管理,資源擁有者才會(huì)放心地提供資源,用戶才有足夠的可用資源,大范圍的資源共享與互操作才能真正地實(shí)現(xiàn)。因此,安全地實(shí)施資源共享和互操作是目前需要解決的關(guān)鍵問題。
目前,Globus Toolkit 3.0(以下簡(jiǎn)稱GT3)[1]在網(wǎng)格技術(shù)方面處于領(lǐng)先地位。在安全機(jī)制方面,GT3的網(wǎng)格安全基礎(chǔ)設(shè)施GSI(Grid Security Infrastructure)已經(jīng)顯現(xiàn)出它的重要性,它基于公鑰基礎(chǔ)設(shè)施PKI(Public Key Infrastructure),使用由X.509證書[2]構(gòu)成的鑒定證書和私鑰。在GSI中使用一種臨時(shí)證書的方法,稱為代理證書(proxy credentials),可以實(shí)現(xiàn)系統(tǒng)的單一認(rèn)證。
為了更好地管理這些資源并實(shí)現(xiàn)網(wǎng)格的各種技術(shù),引入了虛擬組織VO(Virtual Organizations)[3]的概念,它的出現(xiàn)改善了網(wǎng)格的管理復(fù)雜度,增加了系統(tǒng)的可擴(kuò)展性。針對(duì)Globus的特點(diǎn),結(jié)合基于角色的訪問控制技術(shù)RBAC(Roles-Based Access Control)[4],各研究機(jī)構(gòu)相繼提出基于Globus的技術(shù)擴(kuò)展,有效地增強(qiáng)了系統(tǒng)的可擴(kuò)展性和靈活性。
本文將討論網(wǎng)格環(huán)境下的安全問題,分析Globus安全機(jī)制,結(jié)合VO技術(shù)和RBAC方法,探討基于Globus的擴(kuò)展的安全技術(shù)-社區(qū)授權(quán)服務(wù)機(jī)制CAS(Communities Authentication Service)[5],總結(jié)網(wǎng)格環(huán)境下的安全技術(shù)。
1 網(wǎng)格安全基礎(chǔ)設(shè)施GSI
Globus toolkit是第一代網(wǎng)格構(gòu)建工具(本文討論Globus Toolkit3.0,即GT3),是一組用于構(gòu)建網(wǎng)格的組件,由 Globus 項(xiàng)目組開發(fā),通過其中的網(wǎng)格安全基礎(chǔ)設(shè)施GSI提供認(rèn)證、授權(quán)和安全通信。
1.1 代理證書
GSI采用代理證書策略。由認(rèn)證中心CA(Certification Authority)給用戶頒發(fā)證書并簽名,這個(gè)證書稱為長(zhǎng)期證書(long-term credential)。同時(shí),產(chǎn)生一對(duì)密鑰,其中包含一個(gè)公鑰和一個(gè)私鑰。其次,用戶產(chǎn)生自己的代理證書,并用該私鑰簽名。這時(shí)就綁定了代理證書與用戶身份。為了鑒定代理證書的有效性,用戶必須提交代理證書和長(zhǎng)期證書給認(rèn)證中心。認(rèn)證中心會(huì)驗(yàn)證以下內(nèi)容:長(zhǎng)期證書的有效性、代理證書是否有長(zhǎng)期證書賦予的私鑰簽名(還包括證書格式和證書生命期等常規(guī)檢驗(yàn))。認(rèn)證通過后,該代理證書就可以具有長(zhǎng)期證書所擁有的所有權(quán)限。
1.2 認(rèn)證
GSI基于用戶的私鑰創(chuàng)建代理證書,從而為用戶提供了一種安全認(rèn)證的方法。用戶如果沒有創(chuàng)建這個(gè)代理,就不能提交作業(yè),也不能傳輸數(shù)據(jù)。這個(gè)代理一經(jīng)創(chuàng)建,就可以用于授權(quán)或者對(duì)整個(gè)網(wǎng)格內(nèi)所有資源的訪問。因?yàn)檫@個(gè)代理可以在整個(gè)系統(tǒng)中使用,這就使得用戶可以只登錄一次,使安全應(yīng)用更方便、快捷。
1.3 授權(quán)
GSI處理用戶授權(quán)的方法是將用戶映射為所訪問系統(tǒng)的本地用戶。即接受請(qǐng)求的系統(tǒng)從代理中讀取用戶的名字,然后根據(jù)一個(gè)本地文件將這個(gè)名字映射為本地用戶名。在GSI中,允許用戶以代理證書的方式授權(quán)給一個(gè)進(jìn)程(或一項(xiàng)任務(wù)),代理用戶完成一定的操作。例如:當(dāng)用戶提交一項(xiàng)任務(wù)Task給遠(yuǎn)端主機(jī)A,Task需要訪問用戶存儲(chǔ)在第三方主機(jī)B上的文件(資源)。但是,主機(jī)A不具有訪問主機(jī)B上的資源的權(quán)力。這時(shí),用戶以代理證書的形式授權(quán)給該項(xiàng)任務(wù)Task,主機(jī)B審查該Task用戶權(quán)限,通過后,Task就可以代表用戶訪問主機(jī)B,完成對(duì)文件(資源)的操作。
1.4 GSI存在的主要問題
(1)可擴(kuò)展性差。網(wǎng)格環(huán)境下用戶的狀態(tài)改變(用戶加入或刪除)多,采用訪問控制列表ACL(Access Control Lists)的方法管理用戶信息,實(shí)時(shí)地更新用戶狀態(tài)需要占用大量管理資源。
(2)密鑰管理不安全。用戶對(duì)安全管理私鑰的措施不一定合理,長(zhǎng)期使用固定的私鑰是個(gè)安全隱患,GSI中沒有解決私鑰的更換問題。
(3)政策沖突。眾多的管理域執(zhí)行不同的政策,彼此往往有沖突,系統(tǒng)沒有提供政策協(xié)調(diào)機(jī)制。
針對(duì)GT3中存在的問題,Globus項(xiàng)目組于2002年開發(fā)出了社區(qū)授權(quán)服務(wù)機(jī)制CAS。CAS引入了虛擬組織VO的思想,結(jié)合基于角色訪問控制RBAC機(jī)制,對(duì)GSI進(jìn)行擴(kuò)展,解決了系統(tǒng)的擴(kuò)展性和靈活性問題,并實(shí)現(xiàn)了區(qū)域政策與全局政策的相對(duì)獨(dú)立性。
2 虛擬組織VO
VO的定義是這樣的:“flexible, secure, coordinated resource sharing among dynamic collections of individuals, institutions, and resources-what we refer to as virtual organizations”[3]。
VO是網(wǎng)格中一個(gè)非常重要的基礎(chǔ)性概念,它由很多位于不同管理域的資源提供者和消費(fèi)者組成,彼此間互相信任,地理上分布廣泛,有著共同的合作目的。當(dāng)有成員想加入VO時(shí),必須通過VO中每個(gè)獨(dú)立組織的許可,新成員擁有訪問VO中每個(gè)組織的用戶名和口令時(shí),才會(huì)被VO接受。在VO中,存在一個(gè)中心認(rèn)證機(jī)制,負(fù)責(zé)用戶對(duì)資源訪問的帳號(hào)信息,該信息通常存儲(chǔ)于由VO維護(hù)的中心數(shù)據(jù)庫(kù)中,所有VO中的成員和區(qū)域都信任這個(gè)VO數(shù)據(jù)庫(kù)。各VO中的獨(dú)立組織選派成員對(duì)VO進(jìn)行維護(hù)和管理,VO是整體組織的可信任第三方(A Trusted Third Party)。
總之,VO的思想就是通過將時(shí)空上分散但能力和資源互補(bǔ)的常規(guī)組織(或個(gè)人)高效地組合起來(lái),分散用戶集中管理,提高解決問題的能力,增強(qiáng)對(duì)上層機(jī)構(gòu)或VO外機(jī)構(gòu)的統(tǒng)一處理能力,同時(shí),保持它們各自原有的工作環(huán)境。將VO的概念運(yùn)用到網(wǎng)格中,可以改善網(wǎng)格系統(tǒng)的可管理性,提高系統(tǒng)執(zhí)行效率,實(shí)現(xiàn)組織間政策分級(jí)與政策的獨(dú)立性。
3 基于角色的訪問控制RBAC
RBAC的基本思想是用戶通過角色來(lái)獲得所需的操作權(quán)限[3]。用戶可以對(duì)應(yīng)不同的角色,每個(gè)角色對(duì)應(yīng)一定的職責(zé),權(quán)限則是角色實(shí)施操作中所分配的執(zhí)行能力。
根據(jù)用戶所承擔(dān)的職責(zé),用戶可以被指定為多個(gè)角色。這些角色不一定同時(shí)起作用,而是根據(jù)用戶在系統(tǒng)中的實(shí)時(shí)狀態(tài)、要申請(qǐng)的任務(wù),決定被激活的角色。某時(shí)刻用戶激活的角色集合稱為用戶的當(dāng)前激活角色集,用戶擁有的權(quán)限是該用戶的當(dāng)前激活角色集所允許的所有權(quán)限的一個(gè)子集。
3.1 RBAC的定義[6]
RBAC96模型定義了四個(gè)不同層次:RBAC0、RBAC1、RBAC2和RBAC3,本文主要介紹RBAC0。
RBAC0模型包括四個(gè)元素:用戶U(user)、角色R(role)、權(quán)限P(permission)和會(huì)話S(session)。
Roles(Si):{r|(user(Si),r)∈UA},其中,user:S→U,將各個(gè)會(huì)話映射到一個(gè)用戶去的函數(shù)user(Si);roles:S→U,將各個(gè)會(huì)話Si與一個(gè)角色集合聯(lián)接起來(lái)的映射,隨時(shí)間變化可以變化,且會(huì)話Si的授權(quán)U{P|(P,R)∈PA},且在RBAC0中隱含如下約束:每個(gè)用戶至少有1個(gè)角色,每個(gè)角色至少有1個(gè)授權(quán)。
3.2 RBAC的特點(diǎn)
RBAC與DAC(強(qiáng)制訪問控制)和MAC(直接訪問控制)相比,簡(jiǎn)化了權(quán)限管理,實(shí)現(xiàn)了用戶與權(quán)限的邏輯分離和最小權(quán)限原則。
使用RBAC機(jī)制,用角色表示用戶具有的職責(zé),給角色分配權(quán)限,代表用戶執(zhí)行某項(xiàng)任務(wù)的能力,反映特定任務(wù)中的職責(zé)與權(quán)限的分配。一旦用戶的角色確定后,角色的狀態(tài)相對(duì)穩(wěn)定。即使用戶職責(zé)改變,只需要調(diào)整相應(yīng)的角色,不涉及用戶權(quán)限的重新分配,減少了系統(tǒng)的工作量。特別是在大系統(tǒng)、多用戶環(huán)境中,用戶對(duì)資源的存取變化更頻繁、復(fù)雜,應(yīng)用RBAC機(jī)制,使用戶集與權(quán)限集通過角色中介聯(lián)系,促進(jìn)了用戶權(quán)限管理的非頻繁變化,極大地減輕了系統(tǒng)的管理和維護(hù)工作量。
4 社區(qū)授權(quán)服務(wù)機(jī)制CAS
CAS構(gòu)建于Globus Toolkit的安全機(jī)制GSI之上,引入了VO的管理,結(jié)合RBAC方法,解決GSI的可擴(kuò)展性和政策獨(dú)立性問題。
4.1 社區(qū)的授權(quán)管理[5]
CAS在社區(qū)內(nèi)設(shè)置一個(gè)CAS服務(wù)器作為可信任第三方,負(fù)責(zé)管理社區(qū)內(nèi)的資源訪問。CAS服務(wù)器管理CA、用戶、服務(wù)器和資源的通行證,負(fù)責(zé)社區(qū)的安全管理,如用戶和組的訪問權(quán)限、資源和服務(wù)的使用權(quán)等。
用戶對(duì)該社區(qū)資源的訪問要經(jīng)過CAS服務(wù)器的授權(quán),如圖1所示[4]。
用戶請(qǐng)求CAS服務(wù)器賦予訪問CAS管轄區(qū)中某資源的權(quán)力;用戶的請(qǐng)求通常包含所在社區(qū)的政策,CAS服務(wù)器會(huì)根據(jù)本地政策(如:檢查該共享資源是否給予CAS服務(wù)器訪問許可權(quán))作出回應(yīng);如果通過,則反饋給用戶合適的授權(quán)證書;擁用該證書,用戶就可以完成證書所享有的各項(xiàng)權(quán)限。執(zhí)行操作時(shí),用戶還會(huì)考慮資源提供者的安全政策。
資源服務(wù)器將根據(jù)本地的訪問控制政策處理用戶對(duì)資源的訪問。擁有授權(quán)證書的用戶對(duì)資源的訪問過程如圖2所示[4]。
用戶向資源服務(wù)器出示授權(quán)證書,資源服務(wù)器根據(jù)證書所攜帶的權(quán)限和本地政策決定用戶對(duì)資源的訪問,并給予回復(fù)。即當(dāng)證書本身批準(zhǔn)用戶的請(qǐng)求,并且資源服務(wù)器的本地政策接受證書授予者的請(qǐng)求時(shí),用戶才可以對(duì)資源進(jìn)行訪問。
4.2 可擴(kuò)展性分析
CAS服務(wù)器首先建立一個(gè)角色集,每個(gè)角色對(duì)應(yīng)一定的權(quán)限。對(duì)用戶的認(rèn)證與授權(quán)針對(duì)的是用戶所在的社區(qū),而不是用戶個(gè)人。當(dāng)用戶個(gè)人(資源消費(fèi)者)要執(zhí)行一項(xiàng)任務(wù)時(shí),對(duì)應(yīng)一定的角色,該角色與固定的權(quán)限綁定,因此CAS面對(duì)的是角色,資源提供者面對(duì)的也是角色,不需要直接與單一消費(fèi)者交互。
應(yīng)用VO和RBAC前,認(rèn)證與授權(quán)空間為C×P,其中C代表消費(fèi)者,P代表資源提供者;
應(yīng)用VO和RBAC后,認(rèn)證與授權(quán)空間為R×P,其中R代表角色,且R<<C。
再者,當(dāng)用戶狀態(tài)更新時(shí)(用戶加入或刪除),社區(qū)將用戶對(duì)應(yīng)到一定的角色,不用CA直接參與操作。這樣,網(wǎng)格系統(tǒng)的CA面對(duì)的用戶是VO中的角色,而不是每一個(gè)用戶體。
因此,應(yīng)用VO與RBAC機(jī)制,減少了系統(tǒng)的整體管理、維護(hù)工作量,增強(qiáng)了可擴(kuò)展性。
4.3 政策獨(dú)立性分析
CAS要求VO維持自己的區(qū)域政策,以該政策與其余社區(qū)內(nèi)資源本地政策交互?;ゲ僮鲿r(shí),VO的政策與被訪問的資源提供者的本地政策合成執(zhí)行,實(shí)行最小權(quán)限集合。
用戶對(duì)資源的訪問政策可以用如下模型表示:
定義1:PV是VO中政策的權(quán)限集合;
定義2:PP是資源提供者所在的本地政策的權(quán)限集合;
定義3:(UV):user→2PV,UV(u)是PV賦予用戶u的權(quán)限;則UV(u)∈PV;
定義4:(UP):user→2PP,UP(u)是PP賦予用戶u的權(quán)限;則UP(u)∈PP。
最終用戶對(duì)資源的訪問權(quán)限為:UV(u)∧UP(u)。即VO和資源本地賦予用戶訪問權(quán)限具有獨(dú)立性。
經(jīng)過對(duì)網(wǎng)格安全問題和基于Globus安全機(jī)制的分析,本文對(duì)網(wǎng)格環(huán)境下的安全技術(shù)歸納為以下四點(diǎn):安全政策分級(jí)、實(shí)行VO管理、運(yùn)用RBAC機(jī)制和高效的認(rèn)證與授權(quán)。
安全分級(jí):通過政策獨(dú)立性的實(shí)現(xiàn),保證高安全級(jí)的用戶不被低級(jí)別訪問泄密,同時(shí),低安全級(jí)用戶不因?yàn)樵O(shè)置高安全級(jí)而降低使用效率。
實(shí)行VO管理:網(wǎng)格可以看作是由一系列的VO構(gòu)成。為了解決網(wǎng)格用戶認(rèn)證可擴(kuò)展性差的問題,網(wǎng)格成員的認(rèn)證可以脫離獨(dú)立的個(gè)體,將個(gè)體認(rèn)證集中于VO認(rèn)證。這樣CA處理的只是VO的認(rèn)證,可以減少系統(tǒng)維護(hù)代價(jià),增強(qiáng)可擴(kuò)展性和靈活性。
運(yùn)用RBAC機(jī)制:應(yīng)用RBAC機(jī)制,促進(jìn)了用戶權(quán)限管理的非頻繁變化,減輕了系統(tǒng)的管理和維護(hù)工作量;通過角色指派,簡(jiǎn)化用戶管理;利用角色的繼承性,實(shí)現(xiàn)用戶權(quán)限的靈活配置。
認(rèn)證與授權(quán):實(shí)行有效的認(rèn)證,才可授權(quán)完成操作或服務(wù),資源提供者才可以放心地共享資源。Globus的代理證書機(jī)制開創(chuàng)性地實(shí)現(xiàn)了用戶單一認(rèn)證,為網(wǎng)格安全認(rèn)證的方便和高效提供了保證。
參考文獻(xiàn)
[1] Globus online:use the grid[EB/OL].(2005-03-05).http://www.globus.org.
[2] LOCK R.Grid security and its use of X.509 certificates [EB/OL].Department of Computer Science Lancaster University.[2011-05-12].http://www.comp.lancs.ac.uk/computing/research/cseg/projects/dirc/papers/gridpaper.pdf.
[3] FOSTER I.The anatomy of the grid:enabling scalable virtual organizations[EB/OL].[2011-07-22].http://hpc.sagepub.com/content/15/3/200.short.
[4] FRAME S.Role-based access control[EB/OL].(2003-04-04).http://csrc.nist.gov/rbac/rbac-std-ncits.pdf.
[5] PEARLMAN L.A community authorization service for group collaboration[EB/OL].(2002-08-07).http://www.globus.org/security/CAS/Paper.
[6] SANDHU R,COYNE E,F(xiàn)EINSTEIN H,et al.Role-based access control models[EB/OL].(2005-03-07).http://csrc.nist.gov/rbac/sandhu96.pdf.