專利名稱:用于應用服務器的基于令牌的細粒度訪問控制系統及方法
技術領域:
本發明涉及一種用于應用服務器的基于令牌的細粒度訪問控制系統及其實現方法,屬于網絡通信技術領域。
背景技術:
下一代網絡是一種采用分層、開放的體系結構,以分組交換技術為基礎、可同時支持語音、視頻、數據、文本和圖像等多媒體業務的新型融合網絡。下一代網絡的主要技術優勢是各個網絡實體之間采用開放的協議或API接口,有利于打破傳統電信網封閉的格局,實現多種異構網絡間的融合。
應用服務器是一種面向下一代網絡的業務提供系統,其主要功能是提供業務邏輯執行環境。業務運行在業務執行環境中,業務執行環境運行在計算機平臺上。在本發明中,業務表示一個為客戶提供服務的應用程序,這里的客戶是人,或者是其它程序。一個業務能夠提供的服務包括網上定票、查詢股票信息、查詢業務的計費信息、建立多方多媒體會議、提供移動用戶位置信息等。
隨著網絡技術的發展和網上應用的日益增加,越來越多的業務和交易通過計算機網絡進行,隨之而來的泄密、黑客等信息安全問題對電子商務和電子政務的影響日益凸現,當前信息系統的安全已經成為業界和用戶關注的熱點。
信息安全技術包括有密碼技術、身份認證、訪問控制、入侵檢測、風險分析與評估等諸多方面。在實際應用中,這些安全技術相互支持與協作,各自解決信息安全問題的某一方面。但是,目前,人們關注的重點是密碼技術、身份認證、入侵檢測等,訪問控制技術沒有得應有的重視。事實上,訪問控制技術是信息安全系統中一個不可或缺的安全措施,是應用服務器安全保護措施中的重要組成部分,對保護主機硬件系統和應用軟件系統的安全都有重要意義。
訪問控制技術起源于70年代,當時主要用于管理大型主機系統上共享數據的授權訪問。隨著計算機技術和應用的發展,特別是網絡應用的發展,該技術的思想和方法迅速應用于信息系統的各個領域。在30年的發展過程中,先后出現了多種重要的訪問控制技術,其基本目標都是防止非法用戶進入系統和合法用戶對系統資源的非法使用。為此,訪問控制通常以用戶身份認證為前提,并在此基礎上實施各種訪問控制策略來控制和規范合法用戶在系統中的行為。
訪問控制系統通常包括主體(subject)發出訪問或存取操作要求的主動方;客體(object)主體調用的程序或欲存取的數據對象;安全訪問策略決定主體訪問客體的一套規則。
目前,被廣泛接受的主流訪問控制技術主要有自主訪問控制、強制訪問控制和基于角色的訪問控制三種,下面分別介紹之。
自主訪問控制(DAC,Discretionary Access Control)基本思想是系統中的主體可以自主地將其擁有的對客體的訪問權限全部或部分地授予其它主體。其實現方法一般是建立系統訪問控制矩陣。傳統的自主訪問控制安全保護能力有限。盡管DAC已經在許多系統中得以實現(例如UNIX),然而DAC的一個致命弱點是授予的訪問權可以傳遞。一旦訪問權被傳遞出去將難以控制,訪問權的管理相當困難,會帶來嚴重的安全問題;而且,無論使用哪一種形式的DAC,所帶來的系統開銷都是相當昂貴、難以支付,再者,效率相當低劣,很難滿足大型應用、特別是網絡應用的需要。
強制訪問控制(MAC,Mandatory Access Control)源于對信息機密性的要求和防止特洛伊木馬之類的攻擊,MAC通過無法回避的存取限制來阻止直接或間接的非法入侵。系統中的主/客體都由安全管理員(SO,Security Officer)被強制分配一個固定的安全屬性,該安全屬性決定一個主體是否能夠訪問某個客體,用戶或用戶進程不能改變自身或其它主/客體的安全屬性。強制訪問控制系統中的每個主體都被授予一個安全證書,每個客體則被指定為一定的敏感級別。訪問控制的兩個關鍵規則是不向上讀和不向下寫,即信息流只能從低安全級向高安全級流動,任何違反非循環信息流的行為都是被禁止的。
MAC起初主要用于軍方的應用中,并且常與DAC結合使用,主體只有通過了DAC與MAC的檢查后,才能訪問某個客體。由于MAC對客體施加了更嚴格的訪問控制,因而可以防止特洛伊木馬之類的程序偷竊受保護的信息,同時MAC對用戶意外泄漏機密信息的可能性也有預防能力。但是,如果用戶惡意泄漏信息,仍然可能無能為力;而且,由于MAC增加了不能回避的訪問限制,影響系統的靈活性,尤其是對細粒度的訪問控制,MAC不能滿足要求。另一方面,雖然MAC作為一種多級訪問控制系統,增強了信息的機密性,但不能實施完整性控制;由于網上信息更需要完整性,影響了MAC的網上應用。
隨著網絡的迅速發展,尤其是Intranet的興起,對訪問控制服務的質量提出更高要求,上述兩種訪問控制技術很難滿足這些要求。DAC將賦予或取消訪問權限的一部分權利留給用戶個人,使得管理員很難確定用戶擁有的訪問權限能夠訪問哪些資源,不利于實現統一的全局訪問控制。而MAC過于偏重保密,對系統連續工作能力、授權的可管理性等其他方面考慮不足。因此,90年代以后出現一種基于角色的訪問控制(RBAC,Role-Based Access Control)技術。
在RBAC中,引入了角色的重要概念。所謂“角色”是一個或一群用戶在組織內可執行的操作的集合。RBAC的基本思想是授權給用戶的訪問權限,通常由用戶在一個組織中擔當的角色來確定。例如,一個銀行包含的角色有出納員、會計師和貸款員等。由于他們的職能不同,所擁有的訪問權限顯然也各不相同。RBAC根據用戶在組織內擔任的角色進行訪問授權與控制。也就是說,傳統的訪問控制直接將訪問主體和客體相聯系,而RBAC在中間加入了角色,通過角色溝通主體與客體。在RBAC中,雖然用戶標識對于身份認證和審計記錄十分有用,但真正決定訪問權限的是該用戶對應的角色標識。RBAC對訪問權限的授權由管理員進行統一管理,而且,授權規定是強加給用戶的,用戶只能被動接受,不能自主決定。用戶也不能自主地將訪問權限傳給他人。這是一種非自主型訪問控制。目前,雖然RBAC已經在某些系統中開始得到應用,但是,RBAC仍然處于發展階段,尚未出現成熟的產品,如何應用仍然是一個相當復雜的問題。
發明內容
有鑒于此,本發明的目的是提供一種用于應用服務器的基于令牌的細粒度訪問控制系統,該系統能夠合理、高效地對訪問進行控制,提高應用服務器的安全性。
本發明的另一目的是提供一種用于應用服務器的訪問控制方法,該方法不僅能夠對各種訪問操作進行有效控制,提高系統安全性;而且,工作效率高,在對系統進行安全保護的同時,盡量減少其對系統正常處理操作的影響。
為了達到上述目的,本發明提供了一種用于應用服務器的基于令牌的細粒度訪問控制系統,該系統包括有業務單元,由為客戶提供服務的應用程序組成,該業務單元需要訪問應用服務器中的資源和/或能力;資源/能力單元,由至少包括各種文件資源、網絡資源、數據庫資源與其它資源和/或能力組成;其特征在于該系統還包括有業務代理單元,由保證安全的代碼組成,分別與業務單元、資源/能力單元和訪問控制單元進行通信連接,用于代理業務訪問資源/能力單元;訪問控制單元,由順序連接的訪問控制檢查器、系統安全控制器和安全策略管理器組成,用于在主體訪問客體時進行基于令牌的細粒度訪問控制;控制訪問的令牌與數據存儲單元,包括有緩存本系統的訪問控制結果、以提高訪問控制效率的檢查結果緩存表、保存訪問每個客體的不同權限所對應的令牌的訪問權限令牌表、保存主體所擁有的令牌列表的主體令牌表、保存持有令牌的主體標識列表的令牌索引表,以及至少包括系統安全策略定義的其他安全控制表,其中檢查結果緩存表同時連接訪問控制單元中的三個部件,訪問權限令牌表、主體令牌表、令牌索引表和其他安全控制表都只與訪問控制單元中的系統安全控制器和安全策略管理器構成通信連接,用于配合訪問控制單元完成基于令牌的細粒度訪問控制。
所述控制訪問的令牌與數據存儲單元中的令牌和數據的描述方式包括但不限于擴展標記語言XML或其它高級程序語言設計的數據結構、或數據庫表單;所述令牌和數據的存儲形式至少包括內存、或文件、或數據庫;存儲方式是集中式和/或分布式。
所述令牌是主體訪問客體所必需的憑證,即只有當主體具備對特定客體進行特定訪問所需的令牌,訪問才能夠成功;否則,該訪問會被系統拒絕;所述令牌的分配、保存和檢查都由系統統一管理。
所述令牌格式包括令牌標識和系統證書兩部分,其中令牌標識是系統統一分配的、用于唯一標識該令牌的字符串;系統證書是系統簽署的安全證書,該證書格式采用X.509標準,或可被基于公鑰的軟件共享的其它格式;所述X.509是規定公鑰證書的格式及相關驗證算法的公鑰基礎結構標準(PKI,public keyinfrastructure),證書內的系統簽名由該系統特定算法生成。
所述細粒度是訪問控制的粒度性能,體現在主、客體兩個方面該系統的訪問控制令牌是按照每個客體的每個權限分別發放的,以實現客體訪問的細粒度控制;該系統對于主體的控制可以從業務級細化精確到對象的方法級,實現主體訪問的細粒度控制。
所述訪問控制檢查器用于接收業務代理的訪問請求,并在檢查結果緩存表中檢索該訪問請求的訪問控制檢查結果;如果在檢查結果緩存表中檢索到與該請求對應的檢查結果記錄,則將檢索到的檢查結果記錄直接返回給業務代理;如果在檢查結果緩存表中沒有檢索到與該訪問請求對應的檢查結果記錄,則將檢查結果傳送給系統安全控制器繼續進行驗證,并將系統安全控制器的驗證結果返回給業務代理;同時將本次檢查結果更新到檢查結果緩存表中;所述系統安全控制器為該系統訪問控制的核心控制器,用于提供最終的安全訪問合法性的檢查驗證功能,以及至少包括根據訪問控制檢查結果、更新檢查結果緩存表和管理系統關鍵數據的其它安全性能的維護執行功能;
所述安全策略管理器用于執行系統的安全訪問控制策略,并定時清除檢查結果緩存表;所述安全訪問控制策略由系統動態配置并存貯在其它安全控制表中。
本發明的另一目的是這樣實現的一種用于應用服務器的基于令牌的細粒度訪問控制方法,其特征在于包括下述操作步驟A、在業務加載、或更新、或終止時,先對系統令牌進行初始化;B、在業務訪問系統資源/能力的過程中,基于令牌對訪問進行安全檢查控制;C、在系統安全控制器對訪問進行檢查之后、或檢查結果緩存表滿時、或檢查結果緩存表保存的檢查結果過期時、或業務終止時,分別對檢查結果緩存表進行更新。
所述步驟A初始化系統令牌的操作進一步包括下述步驟A1、應用服務器與業務進行訪問控制能力的協商;A2、根據協商結果,為本次協商涉及到的所有權限創建新的令牌列表,調用令牌生成算法創建新的令牌;A3、根據協商結果及新的令牌列表,對該業務的主體令牌表進行初始化,所述主體令牌表記錄了該業務的所有主體擁有的令牌;A4、根據協商結果及令牌列表,在令牌索引表中插入或更新令牌索引數據,以便將持有各個令牌的主體標識記錄到每個令牌對應的記錄中去;并根據令牌索引表中記錄的主體標識找到該標識對應的主體令牌表,然后更新已擁有該令牌的業務的主體令牌表;A5、根據協商結果及令牌列表,更新訪問權限令牌表,所述權限令牌表記錄了對客體進行訪問所需要的令牌;A6、業務每次更新時,根據更新后的業務重復執行步驟A1~A5的操作,對該業務相關聯的系統令牌進行更新;A7、業務終止時,系統安全控制器更新并清除檢查結果緩存表、訪問權限令牌表、主體令牌表、令牌索引表和其它安全控制表中與該業務相關的記錄。
所述步驟A2中所述令牌生成算法包括下列步驟A21、已有的令牌采用原令牌標識,新創建的令牌采用能夠保證所分配的標識具有唯一性的算法自動分配令牌標識;A22、創建令牌摘要消息,該令牌摘要消息由順序排列的令牌標識、客體標識、權限描述、擁有該令牌的所有主體標識的各個字符段組成;A23、對令牌摘要消息進行散列,并采用包括但不限于信息-摘要算法MD5(message-digest algorithm 5)或安全散列算法SHA(Secure Hash Algorithm)對令牌摘要消息進行運算;A24、用系統密鑰對散列運算結果進行加密,產生系統簽名;A25、按照系統證書的規定格式,用系統簽名和系統相關信息創建系統證書;A26、按照系統規定的令牌格式,用令牌標識和生成的系統證書創建令牌。
所述步驟B基于令牌對訪問進行細粒度控制的操作進一步包括下述步驟B1、業務將訪問資源/能力的請求發送給業務代理,以便由業務代理代表業務對資源/能力進行訪問;B2、業務代理將訪問請求發送給訪問控制檢查器,驗證該請求的合法性;B3、訪問控制檢查器對檢查結果緩存表進行檢索,再根據檢索結果采取相應操作;B4、如果在檢查結果緩存表命中,即檢索到與本次訪問請求對應的檢查結果記錄,就將該檢查結果返回給業務代理,跳轉到步驟B6;B5、如果在檢查結果緩存表沒有命中,即沒有找到與本次訪問請求對應的檢查結果記錄,就將該訪問請求發送給系統安全控制器再次進行檢查,并由系統安全控制器將其檢查結果經訪問控制檢查器返回給業務代理;B6、業務代理根據檢查結果進行相應操作如果檢查結果為允許訪問,則業務代理執行該訪問操作,并將執行結果返回給業務;如果檢查結果為不允許訪問,則業務代理拒絕該訪問請求,并將拒絕響應返回給業務。
所述步驟B5中系統安全控制器對訪問請求再次進行檢查的操作進一步包括下述步驟B51、系統安全控制器檢查訪問權限令牌表,查詢執行該訪問操作需要何種令牌;B52、系統安全控制器檢查主體令牌表,查看該訪問請求的主體是否具有步驟B51檢索出來的執行該訪問操作所需令牌,再根據檢索結果采取相應的后續操作;B53、如果具有該令牌,即令牌匹配,則檢查結果為允許訪問,系統安全控制器將允許訪問的檢查結果更新到檢查結果緩存表中,并將驗證成功的消息返回給訪問控制檢查器,訪問控制檢查器再將該結果返回給業務代理;B54、如果不具有該令牌,即令牌不匹配,則檢查結果為拒絕訪問,系統安全控制器將拒絕訪問的檢查結果更新到檢查結果緩存表中;并將驗證失敗的消息返回給訪問控制檢查器,訪問控制檢查器再將該結果返回給業務代理。
所述步驟C對檢查結果緩存表進行更新的操作進一步包括下述步驟C1、系統安全控制器將每次檢查的結果更新到檢查結果緩存表中,并打上當前時間戳;C2、當檢查結果緩存表存儲的內容滿時,由安全策略管理器根據系統安全策略刪除檢查結果緩存表中緩存的檢查結果記錄;C3、安全策略管理器根據系統安全管理策略,定時清除檢查結果緩存表中緩存的過期檢查結果記錄;C4、當一個業務被終止時,系統安全控制器將檢查結果緩存表中所有與該業務相關的檢查結果全部清除。
本發明的優點和效果是(1)在應用服務器的訪問控制系統中設置了用于代表業務訪問資源/能力的業務代理。在應用服務器中,業務可由第三方編寫,而業務代理則是應用服務器自身提供的。通過業務代理的引入,對資源進行訪問控制以及實際的資源訪問操作都是由保證安全的實體——業務代理來完成,提高了系統的安全性。
(2)在應用服務器的訪問控制系統中還設置了分別獨立完成對訪問請求進行審核檢查的訪問控制檢查器和系統安全控制器,業務代理只需要根據訪問控制檢查器返回的檢查結果來進行操作。因此,實現了訪問請求的安全檢查和訪問操作本身的分離,提高了系統的安全性和可維護性。
(3)本發明系統設置了用于保存訪問控制檢查結果的檢查結果緩存表,并且,查詢該檢查結果緩存表的操作簡單、高效,大大提高了該訪問控制系統的判斷效率。該系統還設置了用于執行系統動態配置的安全策略的安全策略管理器,而安全策略的動態可配置性,提高了系統的靈活性。
(4)本發明采用基于令牌對訪問進行細粒度控制的方法。令牌的引入,首先滿足了控制訪問的要求,提高了系統的安全性;其次,令牌可以大大減少該訪問控制系統本身的空間要求。
(5)本發明采用的對檢查結果緩存表進行定時更新的機制,實現了檢查結果緩存表的動態及時更新,提高了檢查結果緩存表的命中率,進而提高安全訪問檢索操作的速度;還能夠保證檢查結果緩存表中數據的真實可靠性,確保系統的安全。
圖1是本發明訪問控制系統的結構組成示意圖。
圖2是本發明的令牌格式示意圖。
圖3是本發明訪問控制方法操作流程方框圖。
圖4是本發明的令牌生成算法流程方框圖。
圖5是本發明的基于令牌對訪問進行細粒度控制方法操作流程方框圖。
圖6是本發明中的系統安全控制器對訪問請求進行檢查,并將檢查結果返回給訪問控制檢查器的操作流程方框圖。
圖7是本發明基于令牌對訪問進行細粒度控制過程中的消息交互圖。
具體實施例方式
為使本發明的目的、技術方案和優點更加清楚,下面結合附圖對本發明作進一步的詳細描述。
本發明是一種用于應用服務器的基于令牌的細粒度訪問控制系統及其實現方法。該訪問控制系統和方法必須滿足下一代網絡中應用服務器對于訪問控制的下述要求首先,應用服務器是下一代網絡中的業務執行平臺,訪問控制系統必須對應用服務器中任何主體對客體的每一次訪問都能夠進行有效控制,從而保證系統的安全性;并且,希望應用服務器能夠提供細粒度的訪問控制能力。另外,應用服務器要向用戶提供從企業級到電信級的服務,因此,要求該訪問控制系統的控制訪問的各項操作必須有較高的工作效率,以便盡量減少系統正常處理各項業務的效率和滿足用戶需求。最后,該訪問控制系統必須確保自身的安全和工作可靠。
參見圖1,本發明是一種用于應用服務器的基于令牌的細粒度訪問控制系統,該系統包括有由為客戶提供服務的應用程序組成的業務單元101,該業務單元101需要訪問應用服務器中的資源和/或能力;由保證安全的代碼組成的業務代理單元102,用于代理業務訪問資源/能力單元,該業務代理單元102分別與業務單元101、資源/能力單元130和訪問控制單元110進行通信連接;由至少包括各種文件資源、網絡資源、數據庫資源與其它資源和/或能力組成的系統資源/能力單元130;由順序連接的訪問控制檢查器、系統安全控制器和安全策略管理器組成的訪問控制單元110,用于在主體訪問客體時進行基于令牌的細粒度訪問控制;由緩存本系統的訪問控制結果、以提高訪問控制效率的檢查結果緩存表、保存訪問每個客體的不同權限所對應的令牌的訪問權限令牌表、保存主體所擁有的令牌列表的主體令牌表、保存持有令牌的主體標識列表的令牌索引表,以及至少包括系統安全策略定義的其他安全控制表組成的控制訪問的令牌與數據存儲單元120,用于配合訪問控制單元完成基于令牌的細粒度訪問控制;其中檢查結果緩存表同時連接訪問控制單元中的三個部件,訪問權限令牌表、主體令牌表、令牌索引表和其他安全控制表都只與訪問控制單元中的系統安全控制器和安全策略管理器構成通信連接。該令牌與數據存儲單元120中的令牌和數據的描述方式包括但不限于擴展標記語言XML或其它高級程序語言設計的數據結構、或數據庫表單;令牌和數據的存儲形式至少包括內存、或文件、或數據庫;存儲方式是集中式和/或分布式。
訪問控制單元110是該系統的控制核心,下面介紹三個組件的功能及操作用于接收并檢查業務代理的訪問請求的訪問控制檢查器,首先根據檢查結果緩存表檢查該訪問請求的合法性如果在檢查結果緩存表中檢索到與該訪問請求對應的檢查結果記錄,則該檢查結果記錄表明該次訪問是否合法,并將檢索到的檢查結果記錄直接返回給業務代理;如果在檢查結果緩存表中沒有檢索到與該訪問請求對應的檢查結果記錄,則將訪問請求轉發給系統安全控制器繼續進行檢查,并將系統安全控制器的驗證結果返回給業務代理;同時將本次檢查結果更新到檢查結果緩存表中。
作為系統訪問控制核心的系統安全控制器能夠提供安全訪問合法性的最終檢查結果,并維護執行系統的其它安全功能;也就是說,當訪問控制檢查器從檢查結果緩存表中檢索不到該訪問請求所對應的檢查結果記錄時,將由系統安全控制器來最終決定該次訪問是否合法;系統安全控制器還能夠根據訪問控制檢查結果來及時更新檢查結果緩存表,以及管理系統關鍵數據等。
安全策略管理器,用于執行系統保存在其它安全控制表中、并進行動態配置的安全訪問控制策略,以及定時清除檢查結果緩存表等。
本發明是基于令牌的訪問控制系統,所謂令牌是主體對客體進行訪問所必需的一種憑證,主體只有具備對特定客體進行特定訪問所需的令牌,訪問才能夠成功,否則,該訪問會被系統拒絕。
參見圖2,本發明令牌的格式是特定的由令牌標識(Token ID)和系統證書兩部分組成。其中令牌標識是系統統一分配的、用于唯一標識該令牌的字符串;系統證書是系統簽署的安全證書(Certificate),采用可被其它基于公鑰的軟件共享的X.509或其它證書格式,證書內的系統簽名由該系統特定算法生成。
本發明的細粒度的訪問控制特性主要體現在兩方面第一,該系統的訪問控制令牌是按每個客體的每個權限分別發放的,實現了客體訪問的細粒度控制;第二,該系統對于主體的控制可以從業務級細化精確到對象的方法級,實現了主體訪問的細粒度控制。
參見圖3,本發明用于應用服務器的基于令牌的細粒度訪問控制方法包括三個操作步驟A、在業務加載、或更新、或終止時,先對系統令牌進行初始化;B、在業務訪問系統資源/能力的過程中,基于令牌對訪問進行安全檢查控制;C、在系統安全控制器對訪問進行檢查之后、或檢查結果緩存表滿時、或檢查結果緩存表保存的檢查結果過期時、或業務終止時,分別對檢查結果緩存表進行更新。
下面結合附圖具體描述這三個步驟。
其中步驟A初始化系統令牌的操作進一步包括下述步驟A1、應用服務器與業務進行訪問控制能力的協商;A2、根據協商結果,為本次協商涉及到的所有權限創建新的令牌列表,調用令牌生成算法創建新的令牌;參見圖4,具體說明令牌生成算法的操作步驟(A21)已有的令牌采用原令牌標識,新創建的令牌系統采用能夠保證所分配的標識唯一性的算法自動分配令牌標識;(A22)創建令牌摘要消息,該令牌摘要消息由順序排列的令牌標識、客體標識、權限描述、擁有該令牌的所有主體標識的各個字符段組成;(A23)對令牌摘要消息進行散列,系統采用MD5或SHA或其它散列算法對令牌摘要消息進行運算;(A24)用系統密鑰對散列運算結果進行加密,產生系統簽名;(A25)按照系統證書的規定格式,用系統簽名和系統相關信息創建系統證書;(A26)按照系統規定的令牌格式,用令牌標識和生成的系統證書創建令牌。
A3、根據協商結果及產生的新的令牌列表,對該業務的主體令牌表進行初始化,所述主體令牌表記錄了該業務的所有主體擁有的令牌;A4、根據協商結果及產生的令牌列表,在令牌索引表中插入或更新令牌索引數據,以便將持有各個令牌的主體標識記錄到每個令牌對應的記錄中去;并根據令牌索引表中記錄的主體標識找到該標識對應的主體令牌表,然后更新已擁有該令牌的業務的主體令牌表;A5、根據協商結果及產生的令牌列表,更新訪問權限令牌表,該權限令牌表記錄了對客體進行訪問所需要的令牌;A6、業務每次更新時,根據更新后的業務重復執行上述步驟A1~A5的操作,對該業務相關聯的系統令牌進行更新;A7、業務終止時,系統安全控制器更新并清除檢查結果緩存表、訪問權限令牌表、主體令牌表、令牌索引表和其它安全控制表中與該業務相關的記錄。
參見圖5,具體說明步驟B基于令牌對訪問進行細粒度控制的操作步驟B1、業務將訪問資源/能力的請求發送給業務代理,以便由業務代理代表業務對資源/能力進行訪問;B2、業務代理將訪問請求發送給訪問控制檢查器,以驗證該請求的合法性;B3、訪問控制檢查器對檢查結果緩存表進行檢索,再根據檢索結果采取相應操作;B4、如果在檢查結果緩存表命中,即檢索到與本次訪問請求對應的檢查結果記錄,就將該檢查結果返回給業務代理,跳轉到步驟B6;
B5、如果在檢查結果緩存表沒有命中,即沒有找到與本次訪問請求對應的檢查結果記錄,就將該訪問請求發送給系統安全控制器再次進行檢查,并由系統安全控制器將其檢查結果經訪問控制檢查器返回給業務代理;B6、業務代理根據檢查結果進行相應操作如果檢查結果為允許訪問,則業務代理執行該訪問操作,并將執行結果返回給業務;如果檢查結果為不允許訪問,則業務代理拒絕該訪問請求,并將拒絕響應返回給業務。
參見圖6,具體說明上述步驟B5中系統安全控制器對訪問請求再次進行檢查的操作(B51)系統安全控制器檢查訪問權限令牌表,查詢執行該訪問操作需要何種令牌;(B52)系統安全控制器檢查主體令牌表,查看該訪問請求的主體是否具有步驟B51檢索出來的執行該訪問操作所需令牌,再根據檢索結果采取相應操作;(B53)如果具有該令牌,即令牌匹配,則檢查結果為允許訪問,系統安全控制器將允許訪問的檢查結果更新到檢查結果緩存表中,并將驗證成功的消息返回給訪問控制檢查器,訪問控制檢查器再將該結果返回給業務代理;(B54)如果不具有該令牌,即令牌不匹配,則檢查結果為拒絕訪問,系統安全控制器將拒絕訪問的檢查結果更新到檢查結果緩存表中;并將驗證失敗的消息返回給訪問控制檢查器,訪問控制檢查器再將該結果返回給業務代理。
圖7是采用消息交互圖的形式對本發明系統基于令牌的細粒度訪問控制的處理過程進行了說明,圖中各個步驟的含義和圖5及圖6是一致的,不再贅述。
本發明的步驟C對檢查結果緩存表進行更新的操作包括下述步驟C1、系統安全控制器將每次檢查的結果更新到檢查結果緩存表中,并打上當前時間戳;C2、當檢查結果緩存表存儲的內容滿時,由安全策略管理器根據系統安全策略刪除檢查結果緩存表中緩存的檢查結果記錄;
C3、安全策略管理器根據系統安全管理策略,定時清除檢查結果緩存表中緩存的過期檢查結果記錄;C4、當一個業務被終止時,系統安全控制器將檢查結果緩存表中所有與該業務相關的檢查結果全部清除。
權利要求
1.一種用于應用服務器的基于令牌的細粒度訪問控制系統,包括有業務單元,由為客戶提供服務的應用程序組成,該業務單元需要訪問應用服務器中的資源和/或能力;資源/能力單元,由至少包括各種文件資源、網絡資源、數據庫資源與其它資源和/或能力組成;其特征在于該系統還包括有業務代理單元,由保證安全的代碼組成,分別與業務單元、資源/能力單元和訪問控制單元進行通信連接,用于代理業務訪問資源/能力單元;訪問控制單元,由順序連接的訪問控制檢查器、系統安全控制器和安全策略管理器組成,用手在主體訪問客體時進行基于令牌的細粒度訪問控制;控制訪問的令牌與數據存儲單元,包括有緩存本系統的訪問控制結果、以提高訪問控制效率的檢查結果緩存表、保存訪問每個客體的不同權限所對應的令牌的訪問權限令牌表、保存主體所擁有的令牌列表的主體令牌表、保存持有令牌的主體標識列表的令牌索引表,以及至少包括系統安全策略定義的其他安全控制表,其中檢查結果緩存表同時連接訪問控制單元中的三個部件,訪問權限令牌表、主體令牌表、令牌索引表和其他安全控制表都只與訪問控制單元中的系統安全控制器和安全策略管理器構成通信連接,用于配合訪問控制單元完成基于令牌的細粒度訪問控制。
2.根據權利要求1所述的訪問控制系統,其特征在于所述控制訪問的令牌與數據存儲單元中的令牌和數據的描述方式包括但不限于擴展標記語言XML或其它高級程序語言設計的數據結構、或數據庫表單;所述令牌和數據的存儲形式至少包括內存、或文件、或數據庫;存儲方式是集中式和/或分布式。
3.根據權利要求1或2所述的訪問控制系統,其特征在于所述令牌是主體訪問客體所必需的憑證,即只有當主體具備對特定客體進行特定訪問所需的令牌,訪問才能夠成功;否則,該訪問會被系統拒絕;所述令牌的分配、保存和檢查都由系統統一管理。
4.根據權利要求1或2所述的訪問控制系統,其特征在于所述令牌格式包括令牌標識和系統證書兩部分,其中令牌標識是系統統一分配的、用于唯一標識該令牌的字符串;系統證書是系統簽署的安全證書,該證書格式采用X.509標準,或可被基于公鑰的軟件共享的其它格式;所述X.509是規定公鑰證書的格式及相關驗證算法的公鑰體系基礎結構標準,證書內的系統簽名由該系統特定算法生成。
5.根據權利要求1所述的訪問控制系統,其特征在于所述細粒度是訪問控制的粒度性能,體現在主、客體兩個方面該系統的訪問控制令牌是按照每個客體的每個權限分別發放的,以實現客體訪問的細粒度控制;該系統對于主體的控制可以從業務級細化精確到對象的方法級,實現主體訪問的細粒度控制。
6.根據權利要求1所述的訪問控制系統,其特征在于所述訪問控制檢查器用于接收業務代理的訪問請求,并在檢查結果緩存表中檢索該訪問請求的訪問控制檢查結果;如果在檢查結果緩存表中檢索到與該請求對應的檢查結果記錄,則將檢索到的檢查結果記錄直接返回給業務代理;如果在檢查結果緩存表中沒有檢索到與該訪問請求對應的檢查結果記錄,則將訪問請求傳送給系統安全控制器繼續進行驗證,并將系統安全控制器的驗證結果返回給業務代理;同時將本次檢查結果更新到檢查結果緩存表中;所述系統安全控制器為該系統訪問控制的核心控制器,用于提供最終的安全訪問合法性的檢查驗證功能,以及至少包括根據訪問控制檢查結果、更新檢查結果緩存表和管理系統關鍵數據的其它安全性能的維護執行功能;所述安全策略管理器用于執行系統的安全訪問控制策略,并定時清除檢查結果緩存表;所述安全訪問控制策略由系統動態配置并存貯在其它安全控制表中。
7.一種用于應用服務器的基于令牌的細粒度訪問控制方法,其特征在于包括下述操作步驟A、在業務加載、或更新、或終止時,先對系統令牌進行初始化;B、在業務訪問系統資源/能力的過程中,基于令牌對訪問進行安全檢查控制;C、在系統安全控制器對訪問進行檢查之后、或檢查結果緩存表滿時、或檢查結果緩存表保存的檢查結果過期時、或業務終止時,分別對檢查結果緩存表進行更新。
8.根據權利要求7所述的訪問控制方法,其特征在于所述步驟A初始化系統令牌的操作進一步包括下述步驟A1、應用服務器與業務進行訪問控制能力的協商;A2、根據協商結果,為本次協商涉及到的所有權限創建新的令牌列表,調用令牌生成算法創建新的令牌;A3、根據協商結果及新的令牌列表,對該業務的主體令牌表進行初始化,所述主體令牌表記錄了該業務的所有主體擁有的令牌;A4、根據協商結果及令牌列表,在令牌索引表中插入或更新令牌索引數據,以便將持有各個令牌的主體標識記錄到每個令牌對應的記錄中去;并根據令牌索引表中記錄的主體標識找到該標識對應的主體令牌表,然后更新已擁有該令牌的業務的主體令牌表;A5、根據協商結果及令牌列表,更新訪問權限令牌表,所述權限令牌表記錄了對客體進行訪問所需要的令牌;A6、業務每次更新時,根據更新后的業務重復執行步驟A1~A5的操作,對該業務相關聯的系統令牌進行更新;A7、業務終止時,系統安全控制器更新并清除檢查結果緩存表、訪問權限令牌表、主體令牌表、令牌索引表和其它安全控制表中與該業務相關的記錄。
9.根據權利要求8所述的訪問控制方法,其特征在于所述步驟A2中所述令牌生成算法包括下列步驟A21、已有的令牌采用原令牌標識,新創建的令牌采用能夠保證所分配的標識具有唯一性的算法自動分配令牌標識;A22、創建令牌摘要消息,該令牌摘要消息由順序排列的令牌標識、客體標識、權限描述、擁有該令牌的所有主體標識的各個字符段組成;A23、對令牌摘要消息進行散列,并采用包括但不限于信息-摘要算法MD5或安全散列算法SHA對令牌摘要消息進行運算;A24、用系統密鑰對散列運算結果進行加密,產生系統簽名;A25、按照系統證書的規定格式,用系統簽名和系統相關信息創建系統證書;A26、按照系統規定的令牌格式,用令牌標識和生成的系統證書創建令牌。
10.根據權利要求7所述的訪問控制方法,其特征在于所述步驟B基于令牌對訪問進行細粒度控制的操作進一步包括下述步驟B1、業務將訪問資源/能力的請求發送給業務代理,以便由業務代理代表業務對資源/能力進行訪問;B2、業務代理將訪問請求發送給訪問控制檢查器,驗證該請求的合法性;B3、訪問控制檢查器對檢查結果緩存表進行檢索,再根據檢索結果采取相應操作;B4、如果在檢查結果緩存表命中,即檢索到與本次訪問請求對應的檢查結果記錄,就將該檢查結果返回給業務代理,跳轉到步驟B6;B5、如果在檢查結果緩存表沒有命中,即沒有找到與本次訪問請求對應的檢查結果記錄,就將該訪問請求發送給系統安全控制器再次進行檢查,并由系統安全控制器將其檢查結果經訪問控制檢查器返回給業務代理;B6、業務代理根據檢查結果進行相應操作如果檢查結果為允許訪問,則業務代理執行該訪問操作,并將執行結果返回給業務;如果檢查結果為不允許訪問,則業務代理拒絕該訪問請求,并將拒絕響應返回給業務。
11.根據權利要求10所述的訪問控制方法,其特征在于所述步驟B5中系統安全控制器對訪問請求再次進行檢查的操作進一步包括下述步驟B51、系統安全控制器檢查訪問權限令牌表,查詢執行該訪問操作需要何種令牌;B52、系統安全控制器檢查主體令牌表,查看該訪問請求的主體是否具有步驟B51檢索出來的執行該訪問操作所需令牌,再根據檢索結果采取相應的后續操作;B53、如果具有該令牌,即令牌匹配,則檢查結果為允許訪問,系統安全控制器將允許訪問的檢查結果更新到檢查結果緩存表中,并將驗證成功的消息返回給訪問控制檢查器,訪問控制檢查器再將該結果返回給業務代理;B54、如果不具有該令牌,即令牌不匹配,則檢查結果為拒絕訪問,系統安全控制器將拒絕訪問的檢查結果更新到檢查結果緩存表中;并將驗證失敗的消息返回給訪問控制檢查器,訪問控制檢查器再將該結果返回給業務代理。
12.根據權利要求7所述的訪問控制方法,其特征在于所述步驟C對檢查結果緩存表進行更新的操作進一步包括下述步驟C1、系統安全控制器將每次檢查的結果更新到檢查結果緩存表中,并打上當前時間戳;C2、當檢查結果緩存表存儲的內容滿時,由安全策略管理器根據系統安全策略刪除檢查結果緩存表中緩存的檢查結果記錄;C3、安全策略管理器根據系統安全管理策略,定時清除檢查結果緩存表中緩存的過期檢查結果記錄;C4、當一個業務被終止時,系統安全控制器將檢查結果緩存表中所有與該業務相關的檢查結果全部清除。
全文摘要
一種用于應用服務器的基于令牌的細粒度訪問控制系統及方法,該系統包括需要訪問應用服務器中資源/能力的業務單元,由保證安全的代碼組成的業務代理單元,由各種文件資源、網絡資源、數據庫資源和其它資源和/或能力組成的系統資源/能力單元,由順序連接的訪問控制檢查器、系統安全控制器和安全策略管理器組成的訪問控制單元,以及由檢查結果緩存表、訪問權限令牌表、主體令牌表、令牌索引表和其他安全控制表組成的控制訪問的令牌與數據存儲單元,各部件相互配合完成基于令牌的細粒度訪問控制。該方法不僅能夠有效控制各種訪問操作,提高應用服務器的安全性;而且,效率高,在對系統進行安全保護的同時,盡量減少其對系統正常處理操作的影響。
文檔編號H04L9/00GK1633084SQ20041010347
公開日2005年6月29日 申請日期2004年12月28日 優先權日2004年12月28日
發明者楊放春, 鄒華, 李立, 蘇森, 孫其博, 徐鵬, 龍湘明, 李靜林 申請人:北京郵電大學