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