專利名稱:分布式信任管理系統(tǒng)及獲取分布式信任證鏈的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種分布式信任管理系統(tǒng)及獲取分布式信任證鏈的方法,尤其是一種基于屬性委托并能應(yīng)用于網(wǎng)格等分布式大規(guī)模網(wǎng)絡(luò)計(jì)算環(huán)境的信任管理系統(tǒng)及其通過前向和后向搜索算法構(gòu)建信任證圖獲取分布式信任證鏈的方法。
背景技術(shù):
網(wǎng)格計(jì)算屬于大規(guī)模的網(wǎng)絡(luò)計(jì)算,在現(xiàn)階段已經(jīng)有效的解決了跨多虛擬組織的動態(tài)資源共享和協(xié)作的問題,隨著大規(guī)模網(wǎng)絡(luò)計(jì)算的應(yīng)用規(guī)模及應(yīng)用范圍的不斷擴(kuò)展,在這種網(wǎng)絡(luò)中的各種應(yīng)用實(shí)體分布范圍越來越廣,它們往往位于不同的安全域而不相互熟悉,這種信任管理與集中式信任管理是相對的概念;集中式信任管理中服務(wù)器需要維護(hù)合法用戶的身份、屬性等信息,而在分布式環(huán)境中,由于安全、性能等原因不可能對所有合法用戶進(jìn)行統(tǒng)一管理,因而在節(jié)點(diǎn)間應(yīng)用實(shí)體對對方的身份、屬性等信息知之甚少甚至一無所知,在不存在統(tǒng)一的身份管理機(jī)制的情況下,傳統(tǒng)的基于身份的訪問控制技術(shù)對于這種網(wǎng)絡(luò)不再有效。
近年來出現(xiàn)了很多種的信任管理系統(tǒng),例如SPKI/SDSI,PolicyMaker,KeyNote,Delegation Logic等,這些信任管理系統(tǒng)都是基于代理的概念而提出的,這種基于代理的概念是和委托相關(guān)聯(lián)的,即一個實(shí)體將自身的部分權(quán)限通過委托的方式交給其他實(shí)體,接受委托的其他實(shí)體就成為了該實(shí)體的代理。通常在進(jìn)行訪問控制的過程中會涉及一條從權(quán)威源到請求者的代理鏈,即一種包含連續(xù)的委托代理關(guān)系的關(guān)系鏈,這種代理鏈的發(fā)現(xiàn)是困難的,而分布式的代理鏈發(fā)現(xiàn)則更加困難。因?yàn)閹缀跛械幕诖淼男湃喂芾硐到y(tǒng)都是建立在潛在相關(guān)的所有信任證已經(jīng)收集到一起的假設(shè)之上。然而,在大型的網(wǎng)絡(luò)應(yīng)用(如網(wǎng)格計(jì)算)中出于安全以及性能的考慮,集中式的管理信任證不可行,通常采用分布式存儲,這些系統(tǒng)的假設(shè)在這種情況下會出現(xiàn)很多無法忽略的問題。
除了以上的基于代理的信任管理系統(tǒng)以外,在網(wǎng)格環(huán)境中的網(wǎng)格中間件Globus Toolkit(GT)系統(tǒng)提供了一種采用簽名、加密等方式保證通信安全和基于身份的訪問控制的網(wǎng)格安全基礎(chǔ)設(shè)施(Grid SecurityInfrastructure,簡稱GSI)。這種網(wǎng)格中間件的4.X版本中,增加了安全斷言標(biāo)記語言(Security Assertion Markup Language,簡稱SAML)和可擴(kuò)展的訪問控制標(biāo)記語言(Extensible Access Control Markup Language,簡稱XACML)的支持,但這種安全機(jī)制仍存在以下的問題1、委托授權(quán)支持不足。雖然GSI采用XACML支持對綜合用戶屬性信息授權(quán),而且基于SAML對用戶的屬性信息進(jìn)行封裝,并通過類似MyProxy等委托機(jī)制傳遞信任關(guān)系,這種MyProxy提供了一種可以用于將用戶映射到他們的網(wǎng)格憑證的機(jī)制,但由于缺乏基于屬性的信任管理機(jī)制,因此對跨安全域的大規(guī)模動態(tài)協(xié)作應(yīng)用的支持能力不夠。
2、對屬性信息支持不足。在目前網(wǎng)格中的鑒別系統(tǒng)中,采用的是類似PKIX的證書鏈來構(gòu)造信任關(guān)系,但這種證書鏈只能夠?qū)^簡單的屬性信息進(jìn)行約束,而無法對復(fù)雜的屬性信息(一般信任證中的年齡等信息)約束。
3、信任鏈構(gòu)造機(jī)制單一。在目前證書鏈主要通過服務(wù)提供方或服務(wù)請求方任意一方來主動構(gòu)造信任鏈,不支持從雙方出發(fā)共同構(gòu)造信任鏈的機(jī)制。
為了彌補(bǔ)之前諸系統(tǒng)的不足,斯坦福大學(xué)的Ninghui Li提出了一套基于角色的信任管理語言(RTML),并提出了相關(guān)的分布式信任鏈發(fā)現(xiàn)算法。這種RTML語言在本質(zhì)上是仍然是一種基于代理的信任管理語言,在RTML中定義角色為核心,每個角色對應(yīng)一組以實(shí)體表示擁有該角色的所有成員。每個實(shí)體有權(quán)定義那些實(shí)體是它的角色的成員,一個角色可以被看成一個屬性,一個實(shí)體是一個角色的成員當(dāng)且僅當(dāng)它擁有以該角色的標(biāo)識為標(biāo)識的屬性。在RT0(RTML的一個版本)中一個訪問控制許可表示為一個角色,也就是說我們可以把角色理解為一個實(shí)體定義的一種授權(quán)。RTML把授權(quán)證書限制為四種1、簡單授權(quán),即一個實(shí)體是另外一個實(shí)體的某個角色的成員;2、普通代理授權(quán),即一個實(shí)體的某個角色的成員是另外一個實(shí)體的某個角色的成員;3、連接代理授權(quán),即如果B實(shí)體是A實(shí)體的某個角色r1的成員則B實(shí)體的一個指定角色r2的成員是A實(shí)體的角色r的成員。4、交代理授權(quán),如果實(shí)體是一系列角色的成員,其成員定義可以是前面提到的三種授權(quán)定義的任何一種,則它是另外一個實(shí)體的某角色的成員。Ninghui Li以角色表示節(jié)點(diǎn),用信任證表示邊,通過信任證的頒發(fā)者和主體(證書擁有者)關(guān)聯(lián)節(jié)點(diǎn),構(gòu)造出一幅從主體到頒發(fā)者的有向圖以表示實(shí)體間的信任關(guān)系,并提出了一個基于該有向圖分布式信任鏈發(fā)現(xiàn)算法。算法中結(jié)合前向搜索即查找一個成員的所具有的全部角色,向后搜索即查找一個角色對應(yīng)的所有實(shí)體成員,實(shí)現(xiàn)了不同信任證搜索策略下的信任鏈發(fā)現(xiàn),并證明了該算法的有效性。RTML通過把授權(quán)證書限制為前面四種形式,既能滿足實(shí)際應(yīng)用中的絕大多數(shù)授權(quán)要求又能簡化角色代理的定義。而且相應(yīng)的信任證鏈發(fā)現(xiàn)算法復(fù)雜度較低,被認(rèn)為是一種非常希望的信任管理語言。然而,該語言存在一些不足1.RTML主要考慮的是角色的代理邏輯及信任證鏈發(fā)現(xiàn)算法,沒有考慮到在實(shí)際應(yīng)用中安全策略需求的靈活性;2.沒有考慮到實(shí)際應(yīng)用中委托機(jī)制的委托深度約束,這對于典型應(yīng)用是一項(xiàng)重要的安全約束信息,否則會出現(xiàn)主體不斷擴(kuò)展信任鏈,影響系統(tǒng)的可用性和性能;3.對屬性約束的支持不足,RTML僅能表達(dá)集中典型約束,無法支持更多的約束方法和屬性信息;4.到目前為止,仍然沒有實(shí)用的信任管理系統(tǒng)支持RTML語言表達(dá)的功能。
發(fā)明內(nèi)容
本發(fā)明的第一目的是針對現(xiàn)有的分布式信任管理系統(tǒng)的諸多缺陷,提供一種分布式信任管理系統(tǒng),能夠?yàn)榭绨踩虻拇笠?guī)模動態(tài)協(xié)作和資源共享提供分布式的信任管理功能,并且提供更靈活的策略表達(dá)。
本發(fā)明的第二目的是針對現(xiàn)有信任證鏈發(fā)現(xiàn)算法的不足,提供一種獲取分布式信任證鏈的方法,能夠靈活的根據(jù)安全策略需求獲取實(shí)體間的信任關(guān)系,并提高發(fā)現(xiàn)效率。
為實(shí)現(xiàn)上述第一目的,本發(fā)明提供了一種分布式信任管理系統(tǒng),包括屬性權(quán)威模塊,用于根據(jù)策略簽發(fā)屬性證書,并向外提供信任證查詢;信任證管理模塊,與所述屬性權(quán)威模塊相連,用于通過屏蔽本地信任證查詢和遠(yuǎn)端信任證查詢的差異為上層應(yīng)用提供統(tǒng)一的信任證查詢接口,并對所有查找到的信任證進(jìn)行解析、驗(yàn)證和驗(yàn)簽操作;信任證圖構(gòu)建模塊,與所述信任證管理模塊相連,用于利用前向搜索算法及后向搜索算法構(gòu)建信任證圖;引擎接口模塊,與所述信任證圖構(gòu)建模塊相連,用于接收用戶請求調(diào)用信任證圖構(gòu)建模塊,并負(fù)責(zé)提取指定節(jié)點(diǎn)間的所有路徑把結(jié)果返回上層應(yīng)用;本地信任證存儲模塊,與所述信任證管理模塊相連,用于存儲本地的信任證。
為實(shí)現(xiàn)上述第二目的,本發(fā)明提供了一種獲取分布式信任證鏈的方法,包括以下步驟步驟1、引擎接口模塊接收輸入的信任證鏈構(gòu)造的請求;步驟2、信任證圖構(gòu)建模塊接收所述引擎接口模塊發(fā)送的構(gòu)建信任證圖的請求后,構(gòu)造信任證圖;步驟3、所述引擎接口模塊獲取所述約束檢查后的信任證圖,根據(jù)請求提取指定節(jié)點(diǎn)間的所有路徑并輸出。
基于以上的技術(shù)方案,本發(fā)明具有以下優(yōu)點(diǎn)
1、本發(fā)明在RTML的基礎(chǔ)上加入了深度及屬性約束,增強(qiáng)了訪問策略語言的描述能力,從而加強(qiáng)了系統(tǒng)管理的靈活性,使系統(tǒng)管理模式明確同時便于授權(quán)管理。
2、本發(fā)明在RTML的基礎(chǔ)上加入了深度及屬性約束,使得信任證發(fā)現(xiàn)算法可以盡早的進(jìn)行剪枝,避免了不必要的信任證查找,提高了信任證發(fā)現(xiàn)算法的效率。
3、本發(fā)明采用的分布式信任證查找方法使信任證不必集中存儲,可以更加靈活的存儲敏感信息,加強(qiáng)了信息安全性,也解決集中存儲潛在的信任證存儲、查找性能瓶頸問題。
4、本發(fā)明在分布式信任證查找方法中對信任證進(jìn)行緩存,提高了系統(tǒng)的性能。
下面通過附圖和實(shí)施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
圖1為本發(fā)明分布式信任管理系統(tǒng)的基本結(jié)構(gòu)示意圖。
圖2為本發(fā)明分布式信任管理系統(tǒng)的一個實(shí)施例的結(jié)構(gòu)示意圖。
圖3為圖2的實(shí)施例中的約束檢查單元細(xì)化后的結(jié)構(gòu)示意圖。
圖4為本發(fā)明獲取分布式信任證鏈的方法的流程示意圖。
圖5為圖4中步驟102中所使用的前向搜索算法流程示意圖。
圖6為圖4中步驟102中所使用的后向搜索算法流程示意圖。
圖7為圖5和圖6流程中用到的分布式信任證查找流程示意圖。
圖8為圖6中步驟2b8之前的屬性約束檢查流程示意圖。
具體實(shí)施例方式
本發(fā)明是在RTML的基礎(chǔ)上對這種基于角色的信任管理語言進(jìn)行了擴(kuò)展,增加了委托深度約束和屬性約束的檢查,由此增加了策略的表達(dá)能力,也提高了信任證發(fā)現(xiàn)算法的效率;本發(fā)明還實(shí)現(xiàn)了分布式信任證查找,這種查找方法解決了分布式信任證發(fā)現(xiàn)的難題,在提高了信息安全性的同時,提高了系統(tǒng)的性能。
如圖1所示,為本發(fā)明分布式信任管理系統(tǒng)的基本結(jié)構(gòu)示意圖,包括以下幾個模塊屬性權(quán)威模塊1、信任證管理模塊2、信任證圖構(gòu)建模塊3、引擎接口模塊4和本地信任證存儲模塊5,屬性權(quán)威模塊1相對于本地而言是分布式的遠(yuǎn)端證書查詢服務(wù),存儲著信任證書;相對于屬性權(quán)威模塊1的遠(yuǎn)端信任證書,本地信任證存儲模塊5存儲著本地的信任證書;信任證管理模塊2與屬性權(quán)威模塊1和本地信任證存儲模塊5相連,能夠通過屏蔽本地信任證查詢和遠(yuǎn)端信任證查詢的差異為上層應(yīng)用提供統(tǒng)一的信任證查詢接口,本模塊對所有查找到的信任證進(jìn)行解析、驗(yàn)證和驗(yàn)簽操作,而上層應(yīng)用不需關(guān)心這些復(fù)雜繁瑣的過程;信任證圖構(gòu)建模塊3與信任證管理模塊2相連,該模塊用于根據(jù)用戶的要求構(gòu)建信任證圖,在構(gòu)建過程中從信任證管理模塊2中獲取合格的信任證書;引擎接口模塊4與信任證圖構(gòu)建模塊3相連,一般用于接收上層信任證鏈發(fā)現(xiàn)請求,調(diào)用信任證圖構(gòu)建模塊4構(gòu)建信任證圖并提取指定節(jié)點(diǎn)間的所有路徑返回上層應(yīng)用。
如圖2所示,為本發(fā)明分布式信任管理系統(tǒng)的一個實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例是在基本技術(shù)方案的基礎(chǔ)上對各部分模塊進(jìn)行了細(xì)化,其中信任證管理模塊2包括遠(yuǎn)端信任證查詢接口單元21、本地信任證加載單元22、信任證解析驗(yàn)證單元23和信任證緩存管理單元24,遠(yuǎn)端信任證查詢接口單元21與屬性權(quán)威模塊1相連,其作用是從屬性權(quán)威模塊中查找遠(yuǎn)端的信任證;本地信任證加載單元22與本地信任證存儲模塊5相連,作用是從本地信任證存儲模塊5加載相匹配的本地信任證;信任證解析驗(yàn)證單元23分別與遠(yuǎn)端信任證查詢接口單元21和本地信任證加載單元22相連,該單元對信任證進(jìn)行數(shù)據(jù)格式解析、驗(yàn)證證書文件格式和驗(yàn)證證書數(shù)字簽名的操作;信任證緩存單元24與所述信任證解析驗(yàn)證單元23相連,對解析驗(yàn)證后的信任證進(jìn)行統(tǒng)一的緩存管理。如果上層應(yīng)用頻繁的查找調(diào)用信任證,假如不對已經(jīng)加載解析的信任證進(jìn)行緩存管理,頻繁的本地遠(yuǎn)端信任證查找、加載、解析等操作勢必影響系統(tǒng)的性能。因此本發(fā)明對信任證采用統(tǒng)一的緩存管理,屏蔽了本地與遠(yuǎn)端的信任證在查找過程的差異,并提高了系統(tǒng)的性能。
信任證圖構(gòu)建模塊3包括前向信任證構(gòu)建單元31、后向信任證構(gòu)建單元32和約束檢查單元33,其中前向信任證構(gòu)建單元31與信任證緩存管理單元24及引擎接口模塊4相連,其作用是從實(shí)體開始根據(jù)授權(quán)規(guī)則前向(即從角色擁有者到角色定義者)搜索構(gòu)造信任證圖,直到找到其所具有的所有角色;后向信任證構(gòu)建單元32與信任證緩存管理單元24引擎接口模塊4相連,與前向信任證構(gòu)建單元31相比,該單元的作用是從一個角色出發(fā)根據(jù)代理規(guī)則后向(即從角色定義者到角色擁有者)搜索構(gòu)造信任證圖,直到找到其所有成員;約束檢查單元33分別與前向信任證圖構(gòu)建單元31和后向信任證構(gòu)建單元32相連,其作用是在前向信任證圖構(gòu)建單元31和后向信任證構(gòu)建單元32的信任證構(gòu)建過程中進(jìn)行委托深度約束檢查和屬性約束檢查。
約束檢查單元33還可以進(jìn)行進(jìn)一步的細(xì)化,如圖3所示,為圖2的實(shí)施例中的約束檢查單元細(xì)化后的結(jié)構(gòu)示意圖,包括委托深度約束檢查子單元331和屬性約束檢查子單元332,其中委托深度約束檢查子單元331與前向信任證圖構(gòu)建單元31、后向信任證圖構(gòu)建單元32和引擎接口模塊4相連,其作用是在信任證圖構(gòu)建過程中進(jìn)行委托深度約束檢查,為了實(shí)現(xiàn)委托深度約束檢查,節(jié)點(diǎn)需要維護(hù)一個剩余委托深度值,當(dāng)創(chuàng)建下級節(jié)點(diǎn)時,先把所維護(hù)的剩余委托深度值減去1,再與自身的深度約束比較取最小值,然后把所得最小值傳遞給下級節(jié)點(diǎn)作為下級節(jié)點(diǎn)的剩余委托深度。最先加入圖中的節(jié)點(diǎn)的剩余委托深度值為可能的最大值(即不予考慮)。因此,只要當(dāng)前節(jié)點(diǎn)的剩余委托深度值大于等于0則通過深度約束檢查,否則不能通過深度約束檢查。屬性約束檢查子單元332與后向信任證圖構(gòu)建單元32和引擎接口模塊4相連,用于在信任證圖構(gòu)建過程中進(jìn)行屬性約束檢查,屬性約束檢查是對屬性約束表達(dá)式進(jìn)行求值,最終的求值結(jié)果反映是否符合約束條件;由于策略語言中定義了角色代理的概念,不同角色間存在屬性間的值引用(屬性映射),因此需要對表達(dá)式中引用屬性求值;方法是在約束檢查過程中維護(hù)一個屬性上下文,屬性上下文以屬性的全局唯一標(biāo)識作為鍵存儲屬性值或?qū)傩砸?,在求值過程中遇到屬性引用時只要通過屬性的標(biāo)識在屬性上下文中遞歸查找直到找到最終屬性值即可。
本發(fā)明在RTML的基礎(chǔ)上加入了深度及屬性約束,增強(qiáng)了訪問策略語言的描述能力,從而增強(qiáng)了系統(tǒng)管理的靈活性,使系統(tǒng)管理模式明確,也便于授權(quán)管理。約束還可以使信任證發(fā)現(xiàn)算法盡早的進(jìn)行剪枝,避免了不必要的信任證查找,提高了信任證發(fā)現(xiàn)算法的效率。
仍參見圖2,引擎接口模塊4包括信任證圖路徑提取單元41和信任證圖構(gòu)建接口單元42,其中信任證圖路徑提取單元41與前向信任證圖構(gòu)建單元31及后向信任證構(gòu)建單元32相連,該單元可以從構(gòu)建出的信任證圖中某兩個被指定的節(jié)點(diǎn)之間的所有信任路徑,然后提取每個路徑返回所涉及的所有信任證的集合,并將提取的路徑(信任證鏈)返回給上層應(yīng)用,換句話說該單元提供了本發(fā)明分布式信任管理系統(tǒng)與上層應(yīng)用或用戶的接口;信任證圖構(gòu)建接口單元42與前向信任證圖構(gòu)建單元31及后向信任證構(gòu)建單元32相連,其作用是接收用戶指令或者上層應(yīng)用指令來調(diào)用下面信任證圖構(gòu)建模塊3執(zhí)行前向或者后向信任證圖的構(gòu)建。
基于上述實(shí)施例,本發(fā)明提供了一種基于這種分布式信任管理系統(tǒng)的獲取分布式信任證鏈的方法,如圖4所示,為本發(fā)明獲取分布式信任證鏈的方法的流程示意圖,包括以下步驟步驟101、引擎接口模塊接收輸入的信任證鏈構(gòu)造的請求;步驟102、信任證圖構(gòu)建模塊接收所述引擎接口模塊發(fā)送的構(gòu)建信任證圖的請求后,構(gòu)造信任證圖;步驟103、所述引擎接口模塊獲取所述約束檢查后的信任證圖,根據(jù)請求提取指定節(jié)點(diǎn)間的所有路徑并輸出。
如圖5所示,為圖4中步驟102中所使用的前向搜索算法流程示意圖。獲取分布式信任證鏈的方法中前向搜索算法流程如下步驟2a1、初始化一個空的節(jié)點(diǎn)隊(duì)列;步驟2a2、以起始節(jié)點(diǎn)的角色創(chuàng)建一個節(jié)點(diǎn)并且加入隊(duì)列中;步驟2a3、取隊(duì)列中第一個節(jié)點(diǎn);步驟2a4、判斷所取節(jié)點(diǎn)的角色是否是一個普通代理角色,如果是則執(zhí)行步驟2a5,否則執(zhí)行步驟2a8;步驟2a5、查找所有與角色相關(guān)的連接授權(quán)和交授權(quán);步驟2a6、為所有已經(jīng)完全滿足的屬連接授權(quán)和交授權(quán)創(chuàng)建節(jié)點(diǎn)若圖中還沒有該節(jié)點(diǎn)則把節(jié)點(diǎn)加入圖和隊(duì)列中;步驟2a7、把本角色作為部分解加入到所有未被完全滿足的連接授權(quán)或交授權(quán)中;步驟2a8、查找節(jié)點(diǎn)的角色的所有授權(quán)證書;步驟2a9、所有找到的證書所表示的邊和所找到的證書的授權(quán)角色如果還沒有加入圖中則創(chuàng)建節(jié)點(diǎn)并且加入圖中和隊(duì)列中;步驟2a10、判斷隊(duì)列是否為空,如果隊(duì)列空則構(gòu)造過程完成,否則執(zhí)行步驟2a3。
如圖6所示,為圖4中步驟102中所使用的后向搜索算法流程示意圖。獲取分布式信任證鏈的方法中后向搜索算法流程如下步驟2b1、初始化一個空的節(jié)點(diǎn)隊(duì)列;步驟2b2、以目標(biāo)角色創(chuàng)建一個節(jié)點(diǎn)并且加入隊(duì)列中;步驟2b3、取隊(duì)列中第一個節(jié)點(diǎn);步驟2b4、判斷節(jié)點(diǎn)授權(quán)類型,如果是簡單授權(quán)則執(zhí)行步驟2b8,否則執(zhí)行2b5;步驟2b5、判斷當(dāng)前代理深度是否滿足深度約束要求,如果滿足則執(zhí)行步驟2b6,否則執(zhí)行步驟2b10;步驟2b6、查找角色的所有成員證書及代理證書;步驟2b7、為所有找到的證書角色表達(dá)式創(chuàng)建節(jié)點(diǎn),同時把不在圖中的節(jié)點(diǎn)加入到圖中和隊(duì)列中,并執(zhí)行步驟2b10;步驟2b8、按本節(jié)點(diǎn)到原節(jié)點(diǎn)的順序檢查本節(jié)點(diǎn)與源節(jié)點(diǎn)間的所有屬性約束,如果滿足所有屬性約束則執(zhí)行步驟2b9,否則執(zhí)行步驟2b10;步驟2b9、把源節(jié)點(diǎn)與本節(jié)點(diǎn)間的路徑中相關(guān)的所有證書加入到解集合中;步驟2b10、判斷隊(duì)列是否為空,如果隊(duì)列為空則算法過程結(jié)束,否則執(zhí)行步驟2b3。
如圖7所示,為圖5和圖6流程中用到的分布式信任證查找流程示意圖。在圖5和圖6中分布式證書的查找流程如下步驟3a、本地信任證加載單元從本地信任證存儲模塊查找本地信任證,判斷是否能找到匹配的信任證,是則執(zhí)行步驟3d,否則執(zhí)行步驟3b;步驟3b、調(diào)用遠(yuǎn)程信任證查詢接口單元21,向遠(yuǎn)端屬性權(quán)威模塊提交查找匹配信任證的請求;步驟3c、所述遠(yuǎn)程信任證查詢接口單元從遠(yuǎn)端屬性權(quán)威模塊中接收匹配的全部信任證;步驟3d、信任證解析驗(yàn)證單元23對所述信任證進(jìn)行解析、檢查證書格式以及驗(yàn)證數(shù)字簽名,并將通過驗(yàn)證的信任證保存在本地緩存中。
在前向搜索算法以及后向搜索算法中,為了提高發(fā)現(xiàn)方法的效率,需要對節(jié)點(diǎn)進(jìn)行約束深度檢查,深度約束檢查實(shí)現(xiàn)流程如下節(jié)點(diǎn)維護(hù)一個剩余委托深度值,當(dāng)創(chuàng)建下級節(jié)點(diǎn)時,先把所維護(hù)的剩余委托深度值減去1,再與自身的深度約束比較取最小值,然后把所得最小值傳遞給下級節(jié)點(diǎn)作為下級節(jié)點(diǎn)的剩余委托深度。最先加入圖中的節(jié)點(diǎn)的剩余委托深度值為可能的最大值(即不予考慮)。因此,當(dāng)前節(jié)點(diǎn)的剩余委托深度值大于等于0則通過深度約束檢查,否則不能通過深度約束檢查。
而后向搜索算法還需要對節(jié)點(diǎn)進(jìn)行屬性約束檢查,如圖8所示,為圖6中步驟2b8之前的屬性約束檢查流程示意圖,屬性約束檢查過程包括以下步驟步驟2b8a、取剩余路徑中第一個節(jié)點(diǎn);步驟2b8b、對證書的屬性約束表達(dá)式求值;步驟2b8c、通過屬性約束表達(dá)式請求結(jié)果判斷是否通過屬性約束,如果通過屬性約束則執(zhí)行步驟2b8d,否則不滿足約束并結(jié)束本過程;步驟2b8d、把證書中定義的所有屬性及屬性引用(即屬性映射),以屬性的全局唯一標(biāo)識為鍵,屬性的值或引用作為值存入屬性上下文中;步驟2b8e、判斷路徑中是否還有沒有處理的節(jié)點(diǎn),如果有則執(zhí)行步驟2b8a,否則滿足約束并結(jié)束本過程。其中步驟2b8b中屬性約束表達(dá)式求值過程類似于一般表達(dá)式求值過程,這里不作詳細(xì)介紹。需要注意的是,由于不同角色間存在屬性間的值引用(屬性映射),因而需要對表達(dá)式中引用屬性求值,方法是在約束檢查過程中維護(hù)一個屬性上下文,屬性上下文以屬性的全局唯一標(biāo)識作為鍵存儲屬性值或?qū)傩砸?,在求值過程中遇到屬性引用時只要通過屬性的標(biāo)識在屬性上下文中遞歸查找直到找到最終屬性值即可。
最后應(yīng)當(dāng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對其限制;盡管參照較佳實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解依然可以對本發(fā)明的具體實(shí)施方式
進(jìn)行修改或者對部分技術(shù)特征進(jìn)行等同替換;而不脫離本發(fā)明技術(shù)方案的精神,其均應(yīng)涵蓋在本發(fā)明請求保護(hù)的技術(shù)方案范圍當(dāng)中。
權(quán)利要求
1.一種分布式信任管理系統(tǒng),其特征在于包括屬性權(quán)威模塊,用于根據(jù)策略簽發(fā)屬性證書,并向外提供信任證查詢;信任證管理模塊,與所述屬性權(quán)威模塊相連,用于通過屏蔽本地信任證查詢和遠(yuǎn)端信任證查詢的差異為上層應(yīng)用提供統(tǒng)一的信任證查詢接口,并對所有查找到的信任證進(jìn)行解析、驗(yàn)證和驗(yàn)簽操作;信任證圖構(gòu)建模塊,與所述信任證管理模塊相連,用于利用前向搜索算法及后向搜索算法構(gòu)建信任證圖;引擎接口模塊,與所述信任證圖構(gòu)建模塊相連,用于接收用戶請求調(diào)用信任證圖構(gòu)建模塊,并負(fù)責(zé)提取指定節(jié)點(diǎn)間的所有路徑把結(jié)果返回上層應(yīng)用;本地信任證存儲模塊,與所述信任證管理模塊相連,用于存儲本地的信任證。
2.根據(jù)權(quán)利要求1所述的分布式信任管理系統(tǒng),其特征在于所述信任證管理模塊包括遠(yuǎn)端信任證查詢接口單元,與所述屬性權(quán)威模塊相連,用于對遠(yuǎn)端屬性權(quán)威模塊進(jìn)行分布式信任證查找;本地信任證加載單元,與所述本地信任證存儲模塊相連,用于從所述本地信任證存儲模塊加載相匹配的本地信任證;信任證解析驗(yàn)證單元,與所述遠(yuǎn)端信任證查詢接口單元和所述本地信任證加載單元相連,用于對信任證進(jìn)行解析、驗(yàn)證證書文件格式和驗(yàn)證證書數(shù)字簽名的操作;信任證書緩存管理單元,與所述信任證解析驗(yàn)證單元和所述信任證圖構(gòu)建模塊相連,用于對解析驗(yàn)證后的信任證進(jìn)行統(tǒng)一的緩存管理;
3.根據(jù)權(quán)利要求1所述的分布式信任管理系統(tǒng),其特征在于所述信任證圖構(gòu)建模塊包括前向信任證圖構(gòu)建單元,與所述信任證管理模塊相連,用前向搜索算法構(gòu)建信任證圖;后向信任證圖構(gòu)建單元,與所述信任證管理模塊相連,用后向搜索算法構(gòu)建信任證圖;約束檢查單元,與所述前向信任證圖構(gòu)建單元、所述后向信任證圖構(gòu)建單元相連,用于在所述前向信任證圖構(gòu)建單元和所述后向信任證構(gòu)建單元的信任證構(gòu)建過程中進(jìn)行委托深度約束檢查和屬性約束檢查;在所述約束檢查單元中包括委托深度約束檢查子單元,與所述前向信任證圖構(gòu)建單元、所述后向信任證圖構(gòu)建單元相連,用于信任證圖構(gòu)建過程中進(jìn)行委托深度約束檢查;屬性約束檢查子單元,所述后向信任證圖構(gòu)建單元相連,用于在后向信任證圖構(gòu)建過程中進(jìn)行屬性約束檢查。
4.根據(jù)權(quán)利要求1所述的分布式信任管理系統(tǒng),其特征在于所述引擎模塊包括信任證圖路徑提取單元,與所述信任證圖構(gòu)建模塊相連,用于從構(gòu)建出的信任證圖中被指定的節(jié)點(diǎn)之間的所有信任路徑,然后在每個路徑返回該路徑所涉及的所有信任證的集合;信任證圖構(gòu)建接口單元,與所述信任證圖構(gòu)建模塊相連,用于接收上層應(yīng)用的信任證鏈發(fā)現(xiàn)指令調(diào)用所述信任證圖構(gòu)建模塊構(gòu)建信任證圖。
5.一種獲取分布式信任證鏈的方法,其特征在于包括以下步驟步驟1、引擎接口模塊接收輸入的信任證鏈構(gòu)造的請求;步驟2、信任證圖構(gòu)建模塊接收所述引擎接口模塊發(fā)送的構(gòu)建信任證圖的請求后,構(gòu)造信任證圖;步驟3、所述引擎接口模塊獲取所述約束檢查后的信任證圖,根據(jù)請求提取指定節(jié)點(diǎn)間的所有路徑并輸出。
6.根據(jù)權(quán)利要求5所述的獲取分布式信任證鏈的方法,其特征在于所述步驟2中所述構(gòu)造信任證具體為使用前向搜索算法構(gòu)造信任證步驟2a、初始化一個空的節(jié)點(diǎn)隊(duì)列;步驟2b、以起始節(jié)點(diǎn)的角色創(chuàng)建一個節(jié)點(diǎn)并且加入隊(duì)列中;步驟2c、取隊(duì)列中第一個節(jié)點(diǎn);步驟2d、判斷所取節(jié)點(diǎn)的角色是否是一個普通代理角色,如果是則執(zhí)行步驟2e,否則執(zhí)行步驟2h;步驟2e、查找所有與角色相關(guān)的連接授權(quán)和交授權(quán);步驟2f、為所有已經(jīng)完全滿足的屬連接授權(quán)和交授權(quán)創(chuàng)建節(jié)點(diǎn)若圖中還沒有該節(jié)點(diǎn)則把節(jié)點(diǎn)加入圖和隊(duì)列中;步驟2g、把本角色作為部分解加入到所有未被完全滿足的連接授權(quán)或交授權(quán)中;步驟2h、查找節(jié)點(diǎn)的角色的所有授權(quán)證書;步驟2i、所有找到的證書所表示的邊和所找到的證書的授權(quán)角色如果還沒有加入圖中則創(chuàng)建節(jié)點(diǎn)并且加入圖中和隊(duì)列中;步驟2j、判斷隊(duì)列是否為空,如果隊(duì)列空則構(gòu)造過程完成,否則執(zhí)行步驟2c。
7.根據(jù)權(quán)利要求5所述的獲取分布式信任證鏈的方法,其特征在于所述步驟2中所述構(gòu)造信任證具體為使用前向搜索算法構(gòu)造信任證步驟2a’、初始化一個空的節(jié)點(diǎn)隊(duì)列;步驟2b’、以目標(biāo)角色創(chuàng)建一個節(jié)點(diǎn)并且加入隊(duì)列中;步驟2c’、取隊(duì)列中第一個節(jié)點(diǎn);步驟2d’、判斷節(jié)點(diǎn)授權(quán)類型,如果是簡單授權(quán)則執(zhí)行步驟2h’,否則執(zhí)行2e’;步驟2e,、判斷當(dāng)前代理深度是否滿足深度約束要求,如果滿足則執(zhí)行步驟2f’,否則執(zhí)行步驟2j’;步驟2f’、查找角色的所有成員證書及代理證書;步驟2g’、為所有找到的證書角色表達(dá)式創(chuàng)建節(jié)點(diǎn),同時把不在圖中的節(jié)點(diǎn)加入到圖中和隊(duì)列中,并執(zhí)行步驟2j’;步驟2h’、按本節(jié)點(diǎn)到原節(jié)點(diǎn)的順序檢查本節(jié)點(diǎn)與源節(jié)點(diǎn)間的所有屬性約束,如果滿足所有屬性約束則執(zhí)行步驟2i’,否則執(zhí)行步驟2j’;步驟2i’、把源節(jié)點(diǎn)與本節(jié)點(diǎn)間的路徑中相關(guān)的所有證書加入到解集合中;步驟2j’、判斷隊(duì)列是否為空,如果隊(duì)列為空則算法過程結(jié)束,否則執(zhí)行步驟2c’。
8.根據(jù)權(quán)利要求6或7所述的獲取分布式信任證鏈的方法,其特征在于證書查找的步驟如下步驟3a、本地信任證加載單元從本地信任證存儲模塊查找本地信任證,判斷是否能找到匹配的信任證,是則執(zhí)行步驟3d,否則執(zhí)行步驟3b;步驟3b、調(diào)用遠(yuǎn)程信任證查詢接口單元,向遠(yuǎn)端屬性權(quán)威模塊提交查找匹配信任證的請求;步驟3c、所述遠(yuǎn)程信任證查詢接口單元從遠(yuǎn)端屬性權(quán)威模塊中接收匹配的全部信任證;步驟3d、信任證解析驗(yàn)證單元對所述信任證進(jìn)行解析、檢查證書格式以及驗(yàn)證數(shù)字簽名,并將通過驗(yàn)證的信任證保存在本地緩存中。
9.根據(jù)權(quán)利要求7所述的獲取分布式信任證鏈的方法,其特征在于所述步驟2f及步驟2i之前還包括委托深度約束檢查的步驟,具體為當(dāng)創(chuàng)建下級節(jié)點(diǎn)時,把所維護(hù)的剩余委托深度值減去1,再與自身的深度約束比較取最小值,然后把所得最小值傳遞給下級節(jié)點(diǎn)作為下級節(jié)點(diǎn)的剩余委托深度,如果當(dāng)前節(jié)點(diǎn)的剩余委托深度值大于等于0,則通過深度約束檢查,否則不能通過深度約束檢查。
10.根據(jù)權(quán)利要求8所述的獲取分布式信任證鏈的方法,其特征在于所述步驟2h’之前還包括屬性約束檢查的步驟,具體為步驟4a、取剩余路徑中第一個節(jié)點(diǎn);步驟4b、對證書的屬性約束表達(dá)式求值;步驟4c、通過屬性約束表達(dá)式請求結(jié)果判斷是否通過屬性約束,如果通過屬性約束則執(zhí)行步驟2b8d,否則不滿足約束并結(jié)束本過程;步驟4d、把證書中定義的所有屬性及屬性引用(即屬性映射),以屬性的全局唯一標(biāo)識為鍵,屬性的值或引用作為值存入屬性上下文中;步驟4e、判斷路徑中是否還有沒有處理的節(jié)點(diǎn),如果有則執(zhí)行步驟2b8a,否則滿足約束并結(jié)束本過程。
全文摘要
本發(fā)明涉及一種分布式信任管理系統(tǒng),包括順次連接的屬性權(quán)威模塊、信任證管理模塊、信任證圖構(gòu)建模塊、引擎接口模塊,以及本地信任證存儲模塊,與信任證管理模塊相連。本發(fā)明還涉及一種獲取分布式信任證鏈的方法包括接收信任證鏈發(fā)現(xiàn)請求;根據(jù)請求構(gòu)造信任證圖;提取信任證圖中指定節(jié)點(diǎn)間的所有路徑,即信任證鏈,并輸出。本發(fā)明在RTML的基礎(chǔ)上加入了深度及屬性約束,增強(qiáng)了系統(tǒng)管理的靈活性,并且使信任證鏈發(fā)現(xiàn)算法可以進(jìn)行剪枝,提高了算法的效率。在信任證查找中本發(fā)明引入了緩存管理機(jī)制屏蔽了本地信任證查詢與遠(yuǎn)端信任證查詢的差異,并且提高了查找性能,從而進(jìn)一步提高了系統(tǒng)性能。
文檔編號H04L29/06GK1791115SQ20051013254
公開日2006年6月21日 申請日期2005年12月26日 優(yōu)先權(quán)日2005年12月26日
發(fā)明者懷進(jìn)鵬, 胡春明, 李建欣, 盧偉勤, 李沁 申請人:北京航空航天大學(xué)