摘 要: 隨著網(wǎng)格研究的不斷深入,網(wǎng)格安全問題不容忽視。訪問控制" title="訪問控制">訪問控制是安全防范和保護的主要策略,而GSI中的授權(quán)機制難以擴展到擁有大量資源和大量用戶的大規(guī)模網(wǎng)格環(huán)境" title="網(wǎng)格環(huán)境">網(wǎng)格環(huán)境中。社區(qū)授權(quán)服務(CAS)正是針對這種大規(guī)模網(wǎng)格環(huán)境中存在的授權(quán)機制問題而提出的。通過統(tǒng)一建模語言UML,詳細闡述了社區(qū)授權(quán)服務機制的關鍵技術,并將聯(lián)合代理證書機制融合到社區(qū)授權(quán)服務中,對進一步完善社區(qū)授權(quán)服務體制具有較大的實用價值。
關鍵詞: 統(tǒng)一建模語言 網(wǎng)格 訪問控制 聯(lián)合代理證書 面向?qū)ο?/FONT>
網(wǎng)格社區(qū)是參考人類社會中的社區(qū)而建立的概念,目的是管理網(wǎng)格中的各種資源,快速實時地把資源請求者和資源提供者聯(lián)系起來。由于一個社區(qū)的管理資源數(shù)目有限,只是網(wǎng)格上所有資源的一小部分,因此可以實現(xiàn)粒度更細的資源管理,其上的各種操作也比在網(wǎng)格上進行同樣的操作要快。
資源需求相對集中的一個用戶群可以構(gòu)成一個用戶集合,這個用戶集合需要建立一個資源注冊和發(fā)現(xiàn)中心,任何一個合法的用戶都可以向該中心注冊自己擁有的資源或自己發(fā)現(xiàn)的、可以被用戶集合中的其他用戶使用的資源,該集合中的任何一個用戶都可以從該中心發(fā)現(xiàn)自己需要的資源。通過建立注冊和發(fā)現(xiàn)中心,可以使這個用戶集合中的所有用戶與注冊在這個注冊和發(fā)現(xiàn)中心的所有資源構(gòu)成一個相對獨立的實體集合——網(wǎng)格社區(qū)。在網(wǎng)格社區(qū)中,除了用戶和資源外,還包括一些用戶和資源都必須服從的策略。
社區(qū)授權(quán)服務(CAS)就是網(wǎng)格社區(qū)中的一種策略,它是一個以社區(qū)為單位建立可信任第三方并實現(xiàn)社區(qū)內(nèi)資源訪問控制的機制,即在每一個社區(qū)內(nèi)部建立一個CAS服務器來維護社區(qū)的策略。在傳統(tǒng)的網(wǎng)格授權(quán)機制中,網(wǎng)格安全基礎設施GSI(Grid Security Infrastructure)要求每一個訪問信息資源的全局用戶都需要在本地資源服務器上擁有一個自己的賬號。這樣,在網(wǎng)格這種擁有大量資源和大量用戶的環(huán)境中,每一個資源服務器都需要維護一個龐大繁瑣的全局/本地映射表,這種授權(quán)機制越來越顯現(xiàn)出難以適應網(wǎng)格環(huán)境的一面。CAS正是針對這種大規(guī)模網(wǎng)格環(huán)境中存在的授權(quán)機制問題而提出的??紤]到單點登錄" title="單點登錄">單點登錄問題,可以將聯(lián)合代理證書加入到社區(qū)授權(quán)服務機制中,在用戶的聯(lián)合代理證書中加入CAS的授權(quán)聲明(即策略聲明)來實現(xiàn)授權(quán)的訪問控制。
在研究社區(qū)授權(quán)服務機制的過程中,對其進行建模是非常重要的一步。統(tǒng)一建模語言UML(Unified Modeling Language)是一種定義良好、易于表達、功能強大且普遍適應的可視化圖形建模語言。它融合了Booch、OMT和OOSE三大面向?qū)ο?/a>" title="面向?qū)ο?>面向?qū)ο?/a>方法中的基本概念,而且這些基本概念與其他面向?qū)ο蠓椒ㄖ械幕靖拍畲笾孪嗤?,因而,UML成為了這些方法以及其他方法的使用者樂于采用的一種簡單、統(tǒng)一的建模語言。UML已被OMG(Object Management Group)接受并推薦使用,成為事實上的業(yè)界標準。因此,本文重點討論使用UML對社區(qū)授權(quán)服務進行建模的過程。
1 網(wǎng)格環(huán)境下的聯(lián)合代理證書機制
當一個網(wǎng)格計算需要使用幾個網(wǎng)格資源(每個都需要雙向的認證)或者需要有請求服務Agent來代替一個用戶時,創(chuàng)建一個代理可以避免重復敲入用戶密碼。在網(wǎng)格環(huán)境下,GSI以X.509證書實現(xiàn)認證,并通過對X.509證書進行擴展,產(chǎn)生代理證書。用戶如果沒有創(chuàng)建這個代理證書,則不能提交作業(yè),也不能傳輸數(shù)據(jù)。這個代理證書一經(jīng)創(chuàng)建,就可以用于授權(quán)或者拒絕對整個網(wǎng)格內(nèi)所有資源的訪問。
代理證書包含一個不同于用戶密鑰對的公鑰和私鑰對,在認證會話中使用的就是這個密鑰對。代理證書生命周期很短,一旦過期密鑰就失效。這樣,即使私鑰被暴露,其危害也很有限。這也使得在存儲代理證書的私鑰時不必用口令進行加密保護。因此,對代理證書來說就沒有口令了。這樣,用戶輸入一次口令,用自己的數(shù)字證書產(chǎn)生代理證書后,就可在代理證書的有效期內(nèi),使用自己的代理證書進行認證,在特定的邏輯安全區(qū)域中可多次訪問不同的數(shù)據(jù)資源,而不需要再次輸入口令。
GSI使用grid-proxy-init產(chǎn)生一個本地代理證書,用戶輸入口令來解密私鑰,私鑰被用于簽發(fā)代理證書。代理證書簽發(fā)之后,在代理證書的有效期內(nèi),用戶的私鑰將不再使用。Proxy被存儲在/tmp下,對用戶為只讀信息。圖1是用戶代理證書的產(chǎn)生過程。
在認證時,產(chǎn)生用戶的代理證書命令,具體如下:
%grid-proxy-init
Enter PEM pass phrase:******
該命令將產(chǎn)生一個本地短期有效的臨時性用戶代理證書,grid-proxy-init的命令選項如下:
-hours<lifetime of credential>
-bits<length of key>
-help
在網(wǎng)格中使用用戶代理證書的最大優(yōu)點是用戶僅需要在會話開始時使用grid-proxy-init,之后就不必再輸入自己的密碼,即支持單點登錄,但這個代理證書只局限在特定的邏輯安全區(qū)域(即社區(qū))中。而一個網(wǎng)格計算可能涉及到幾個社區(qū),為了實現(xiàn)在多個社區(qū)中的單點登錄,用戶可以登錄到多個社區(qū)中(實施步驟如前)創(chuàng)建一個聯(lián)合代理證書。這樣,用戶可以用該聯(lián)合代理證書訪問這些社區(qū)中的任何資源。
2 基于聯(lián)合代理證書的社區(qū)授權(quán)服務的UML建模
UML適用于系統(tǒng)開發(fā)過程中從需求規(guī)格描述到系統(tǒng)完成后測試的不同階段。在需求分析階段,可以通過用例" title="用例">用例捕獲用戶需求。通過用例建模,可以描述系統(tǒng)感興趣的外部角色及其對系統(tǒng)的功能要求。分析階段主要關心問題域中的主要概念(如抽象、類和對象等)和機制,需要識別這些類以及它們相互間的關系,并用UML類圖描述。為實現(xiàn)用例,類之間需要協(xié)作,這可以用UML動態(tài)模型描述。
2.1 總體需求建模
通常利用情節(jié)或經(jīng)歷描述用戶和軟件系統(tǒng)的交互方式,從而獲取需求。Ivar Jacobson(1992)把這種看法系統(tǒng)地闡述為通過用例的方法進行需求獲取和建模。用例圖把系統(tǒng)分成角色和用例。用例被定義成系統(tǒng)執(zhí)行的一系列動作,動作執(zhí)行的結(jié)果能被指定角色察覺到。
角色是指用戶在系統(tǒng)中所扮演的角色,單個角色可與多個用例聯(lián)系;反之,一個用例可與多個角色聯(lián)系。圖2是社區(qū)授權(quán)服務的UML頂層Use Case圖。
關于圖2的具體描述如下:
在社區(qū)授權(quán)服務系統(tǒng)中,CAS用戶首先得到一個標準的網(wǎng)格聯(lián)合代理證書;然后向CAS服務器請求信任及授權(quán),CAS服務器根據(jù)CAS數(shù)據(jù)庫中所授予這個用戶的權(quán)限策略,用CAS的私鑰簽署一個授權(quán)策略聲明返回給CAS用戶;最后用戶將這個聲明和代理證書提交給要使用的gridftp資源。Gridftp服務器通過驗證用戶的策略聲明決定是否提供服務即響應用戶。
2.2 系統(tǒng)分析建模
在對總體需求分析的基礎上,對社區(qū)授權(quán)服務進行詳細設計。類圖處于分析建模的核心位置,它模擬的是保證系統(tǒng)正常工作的所有必要資源,其他所有的圖如果想獲取這些資源的信息,最終都必須訪問類圖,它是一種靜態(tài)結(jié)構(gòu)圖,描述的是系統(tǒng)的靜態(tài)結(jié)構(gòu)。它的主要功能有:
(1)定義一個系統(tǒng)的必要資源。(2)定義資源之間的關系。(3)生成代碼。(4)用代碼生成模型。(5)為其他的圖提供基礎。
社區(qū)授權(quán)服務系統(tǒng)中的主要類有:“CAS用戶”類、“聯(lián)合代理證書”類、“CAS服務器”類、“授權(quán)請求”類、“授權(quán)策略聲明”類、“gridftp服務器”類、“資源訪問”類,類之間的關系如圖3。
系統(tǒng)的動態(tài)行為細節(jié)使用序列圖描述。序列圖表示隨時間安排的一系列消息,用來描述對象之間動態(tài)交互關系,著重體現(xiàn)對象間消息傳送的時間順序。根據(jù)系統(tǒng)的總體需求設計并利用UML類圖進行本系統(tǒng)行為的全局描述,如圖4所示。(1)用戶先產(chǎn)生一個密鑰對(公鑰/私鑰對),通過用戶所輸入的口令對私鑰進行加密,而公鑰則被加入到證書請求中。(2)產(chǎn)生證書請求后,用戶將這個證書請求發(fā)送到CA。(3)CA對證書請求進行簽發(fā),并發(fā)送給用戶。(4)由grid-proxy-init命令產(chǎn)生一個本地代理證書。(5)用戶創(chuàng)建聯(lián)合代理證書。(6)CAS用戶使用網(wǎng)格聯(lián)合代理證書向CAS服務器請求信任及授權(quán)。(7)CAS服務器驗證代理證書,若證書無效,則授權(quán)終止。(8)CAS服務器訪問自己維護的策略數(shù)據(jù)庫,根據(jù)數(shù)據(jù)庫中所授予這個用戶的權(quán)限策略,用CAS的私鑰簽署一個授權(quán)策略聲明返回給CAS用戶。(9)用戶將代理證書和從CAS服務器獲得的授權(quán)策略聲明一起發(fā)送給要使用的gridftp資源服務器。(10)資源服務器基于本地策略授權(quán)用戶訪問資源。
用UML進行社區(qū)授權(quán)服務設計有許多優(yōu)點:
(1)UML融合當前一些流行的面向?qū)ο箝_發(fā)方法的主要概念和技術,成為一種面向?qū)ο蟮臉藴式UZ言,采用圖形描述系統(tǒng)的視圖易于理解,起到了橋梁的作用。
(2)UML支持獨立于編程語言和開發(fā)過程的規(guī)范,支持大多數(shù)OO語言里定義的面向?qū)ο蟮脑O計結(jié)構(gòu),這種一致性保證了能夠從模型生成代碼或從代碼產(chǎn)生模型,即實現(xiàn)建模環(huán)境和編碼環(huán)境的集成。
(3)UML有很好的擴展性,提供了標簽、約束、版類等約束機制來進行自我擴展,為以后社區(qū)授權(quán)服務系統(tǒng)的更深入研究或升級帶來了方便。
本文從GSI授權(quán)的不足出發(fā),分析了在虛擬組織中建立社區(qū)授權(quán)服務CAS系統(tǒng)的必要性。考慮到單點登錄問題,將聯(lián)合代理證書加入到社區(qū)授權(quán)服務機制中,在用戶的聯(lián)合代理證書中加入了CAS的授權(quán)聲明來實現(xiàn)授權(quán)的訪問控制,并進一步將基于聯(lián)合代理證書的社區(qū)授權(quán)服務機制與統(tǒng)一建模語言UML相結(jié)合,給出了CAS系統(tǒng)的總體分析圖即用例圖、靜態(tài)類圖及描述系統(tǒng)動態(tài)行為的序列圖。闡述了用UML進行CAS系統(tǒng)設計的優(yōu)點,為進一步完善社區(qū)授權(quán)服務體制打下了基礎,同時對探討網(wǎng)格虛擬組織中的訪問控制也具有很好的參考價值。
參考文獻
1 徐志偉,馮百明,李 偉.網(wǎng)格計算技術.北京:電子工業(yè)出版社,2004
2 Pender T.UML Bible.北京:電子工業(yè)出版社,2004
3 Pearlman L,Welch V,F(xiàn)oster I et al.A Community autho-rization service for group collaboration.In:Proceedings of the Third International Workshop on Policies for Distributed Sys-tems and Networks 2002 IEEE,2002
4 Selic B.A generic framework for modeling resources with UML[J].Computer:Innovative for Computer Pro-fessionals,Membership Magazine of the IEEE Computer Society,2000;33(6):64~69