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