專利名稱:安全授權查詢的制作方法
安全授權查詢本申請是申請人于2007年9月5日提交的、申請?zhí)枮椤?00780033322. 4”(國際申請?zhí)枮椤癙CT/US2007/077641”)的、發(fā)明名稱為“安全授權查詢”的發(fā)明專利申請的分案申請。計算機和其他電子設備遍布人們的職業(yè)和個人生活。在職業(yè)設置中,人們在項目協(xié)作期間交換和共享機密信息。在個人設置中,人們參與電子商務以及個人信息的傳輸。在這些和其他眾多情況中,電子安全措施被認為是重要的。電子安全措施范例可令職業(yè)信息保持機密以及個人信息保持私密。電子安全措施范例可涉及某種水平的加密和/或針對諸如病毒、蠕蟲和間諜軟件等惡意軟件的保護。信息的加密以及針對惡意軟件的保護歷來受到極大的關注,尤其是近幾年來。然而,控制對信息的訪問是保護電子信息安全性同等重要的方面。對于其中受益于電子信息的共享和/或傳送的情形尤其如此。在這樣的情形中,某些人被準許訪問,而其他人要被排除在外。訪問控制自早期的共享系統(tǒng)以來就是共享計算機和應用程序服務器的共同特征。存在用于控制對信息的訪問的多種不同的方法。它們在組合對請求對某一資源的訪問的實體的認證以及授權所允許的訪問的機制方面享有共同的基礎。認證機制包括口令、 Kerberos,以及χ. 509證書。其目的在于允許進行資源控制的實體肯定地標識進行請求的實體或它所需的關于實體的信息。授權示例包括訪問控制列表(ACL)以及基于策略的機制,諸如可擴展訪問控制標記語言(XACML)或特權和角色管理基礎架構(PERMIS)。這些機制定義哪些實體可訪問給定的資源,諸如文件系統(tǒng)中的文件、硬件設備、數(shù)據(jù)庫信息等。它們通過提供關于請求者的認證信息以及所允許的對資源的訪問之間的映射來執(zhí)行這種授權。隨著計算機系統(tǒng)越來越普遍地連接到諸如因特網(wǎng)等大型網(wǎng)絡上,這些機制被證實在處理日益發(fā)展的訪問控制要求方面稍有限制和不靈活。地理上散布的用戶和計算機資源的系統(tǒng),包括橫跨多個行政區(qū)域的那些系統(tǒng)尤其提出了當前部署的技術解決不好的多個挑戰(zhàn)。MM在一示例實現(xiàn)中,一分支安全方案具有不允許使用否定的第一層和允許使用否定的第二層。在另一示例實現(xiàn)中,一授權查詢表將各個資源專用操作映射到相應的相關聯(lián)授權查詢。在又一示例實現(xiàn)中,允許授權查詢具有否定,但不允許個別斷言具有否定。提供本概述以便以簡化的形式介紹將在以下詳細描述中進一步描述的一些概念。 該概述不旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。而且,其它方法、系統(tǒng)、方案、裝置、設備、介質(zhì)、過程、API、安排、協(xié)議等的實現(xiàn)也在此得到描述。附圖簡述在各圖中使用相同的數(shù)字來引用相同和/或?qū)姆矫?、特征和組件。
3
圖1是示出其中可以實現(xiàn)示例安全方案的示例一般環(huán)境的框圖。圖2是示出具有兩個設備以及多個示例安全相關組件的示例安全環(huán)境的框圖。圖3是示出其中在安全相關組件之間交換示例安全相關數(shù)據(jù)的圖2的示例安全環(huán)境的框圖。圖4是可用于本文所述的安全相關實現(xiàn)的示例設備的框圖。圖5是示出用于一般安全方案的示例斷言格式的框圖。圖6是示出具有第一層和第二層的示例分支安全方案的框圖。圖7是示出示例授權查詢查明和示例授權查詢求值的一般框圖。圖8是示出響應于資源訪問請求的示例授權查詢查明的更具體的框圖。圖9是示出給定斷言上下文情況下的示例授權查詢求值的更具體的框圖。圖10是示出用于查明授權查詢并對其求值的方法的示例的流程圖。詳細描述示例安全環(huán)境圖1是示出其中可以實現(xiàn)示例安全方案100的示例一般環(huán)境的框圖。安全方案100 表示進行保護的集成方法。如圖所示,安全方案100包括多個安全概念安全令牌100(A)、 安全策略100⑶、以及求值引擎100 (C)。一般,安全令牌100 (A)、安全策略100⑶共同提供對求值引擎100(c)的輸入。求值引擎100(C)接受輸入,并產(chǎn)生指示應許可還是拒絕對某一資源的訪問的授權輸出。在所述實現(xiàn)中,安全方案100可由一個或多個設備102覆蓋和/或與其集成,這些設備由硬件、軟件、固件、其某種組合等組成。如圖所示,“d”個設備在一個或多個網(wǎng)絡104 上互連,“d”是某一整數(shù)。更具體地,設備102 (1)、設備102 (2)、設備102 (3)...設備102 (d) 能夠經(jīng)由網(wǎng)絡104通信。每一設備102可以是能夠?qū)崿F(xiàn)安全方案100的至少一部分的任何設備。這樣的設備的示例包括但不限于計算機(例如,客戶機計算機、服務器計算機、個人計算機、工作站、臺式機、膝上型計算機、掌上型計算機等)、游戲機(例如,控制臺、便攜式游戲設備等)、 機頂盒、電視機、消費電子產(chǎn)品(例如,DVD播放器/記錄器、攝錄像一體機、數(shù)碼錄像機 (DVR)等)、個人數(shù)字助理(PDA)、移動電話、便攜式媒體播放器、其某種組合等。一個示例電子設備在以下具體參考圖4描述。網(wǎng)絡104可由鏈接在一起和/或覆蓋在彼此之上的任何一個或多個網(wǎng)絡形成。網(wǎng)絡104的示例包括但不限于因特網(wǎng)、電話網(wǎng)絡、以太網(wǎng)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、有線電視網(wǎng)絡、光纖網(wǎng)絡、數(shù)字用戶線(DSL)網(wǎng)絡、蜂窩網(wǎng)絡、Wi-Fi 網(wǎng)絡、WiMAX 網(wǎng)絡、虛擬專用網(wǎng)(VPN)、其某種組合等。網(wǎng)絡104可包括多個域、一個或多個網(wǎng)格網(wǎng)絡等。這些網(wǎng)絡或網(wǎng)絡組合中的每一個可根據(jù)任何聯(lián)網(wǎng)標準操作。如圖所示,設備102(1)對應于正與之交互的用戶106。設備102(2)對應于正在其上執(zhí)行的服務108。設備102(3)與資源110相關聯(lián)。資源110可以是設備102(3)的一部分,或與設備102(3)分開。用戶106、服務108以及諸如任何給定設備102等機器形成非窮舉的示例實體列表。實體隨時可能希望訪問資源110。安全方案100確保被正確認證和授權的實體被許可訪問資源110,而阻止其他實體訪問資源110。
圖2是示出具有兩個設備102 (A)和102 (B)以及多個示例安全相關組件的示例安全環(huán)境200的框圖。安全環(huán)境200還包括授權機構202,諸如安全令牌服務(STS)授權機構。設備102(A)對應于實體208。設備102(B)與資源110相關聯(lián)。盡管安全方案100可在更復雜的環(huán)境中實現(xiàn),但使用該相對簡單的兩個設備的安全環(huán)境200來描述示例安全相關組件。如圖所示,設備102(A)包括兩個安全相關組件安全令牌204和應用程序210。 安全令牌204包括一個或多個斷言206。設備102(B)包括五個安全相關組件授權上下文 212、資源保衛(wèi)214、審計日志216、授權引擎218和安全策略220。安全策略220包括信任和授權策略222、授權查詢表2M和審計策略226。每一設備102可被不同地配置,且仍能夠?qū)崿F(xiàn)安全方案100的全部或一部分。例如,設備102(A)可具有多個安全令牌204和/或應用程序210。作為另一示例,設備102 (B) 可不包括審計日志216或?qū)徲嫴呗?26。其它配置也是可能的。在所述實現(xiàn)中,授權機構202向?qū)嶓w208發(fā)放具有斷言206的安全令牌204。斷言 206在以下描述,包括在題為“安全策略斷言語言示例特征”一節(jié)中。實體208從而與安全令牌204相關聯(lián)。在操作中,實體208希望依靠安全令牌204使用應用程序210來訪問資源 110。資源保衛(wèi)214接收訪問資源110的請求,并有效地管理與設備102(B)的其他安全相關組件的認證和授權過程。如其名所指示,信任和授權策略222包括針對在安全環(huán)境200 內(nèi)信任實體和授權動作的策略。信任和授權策略222可例如包括安全策略斷言(未在圖2 明確示出)。授權查詢表2M將諸如訪問請求等所請求的動作映射到適當?shù)氖跈嗖樵儭徲嫴呗? 描繪與在安全環(huán)境200中實現(xiàn)安全方案100有關的審計責任和審計任務。授權上下文212從安全令牌204收集斷言206,它用于認證進行請求的實體,授權上下文212還從信任和授權策略222收集安全策略斷言。這些收集的斷言在授權上下文 212中形成斷言上下文。因此,授權上下文212可包括除各種斷言以外的其他信息。來自授權上下文212的斷言上下文和來自授權查詢表2M的授權查詢被提供給授權引擎218。使用斷言上下文和授權查詢,授權引擎218作出授權決策。資源保衛(wèi)214基于授權決策而響應訪問請求。審計日志216包含審計信息,諸如所請求的資源110的標識和 /或由授權引擎218執(zhí)行的算法求值邏輯。圖3是示出其中在安全相關組件之間交換示例安全相關數(shù)據(jù)的示例安全環(huán)境200 的框圖。交換安全相關數(shù)據(jù)以支持示例訪問請求操作。在此示例訪問請求操作中,實體208 希望使用應用程序210訪問資源110,并用安全令牌204指示其這樣做的授權。因此,應用程序210向資源保衛(wèi)214發(fā)送訪問請求*。在圖3的該描述中,星號(即“*”)指示所述安全相關數(shù)據(jù)在圖3中明確示出。在所述實現(xiàn)中,實體208用令牌*——安全令牌204向資源保衛(wèi)214認證*它自己。資源保衛(wèi)214將該令牌斷言*轉(zhuǎn)發(fā)到授權上下文212。這些令牌斷言是安全令牌204 的斷言206(圖2)。安全策略220向資源保衛(wèi)214提供授權查詢表*。授權查詢表是從授權查詢表模塊2M得到的。發(fā)送到資源保衛(wèi)214的授權查詢表可被限于與當前訪問請求直接相關的一個或多個部分。策略斷言是由安全策略220從信任和授權策略222提取的。策略斷言可包括信任
5相關斷言和授權相關斷言兩者。安全策略220將策略斷言*轉(zhuǎn)發(fā)到授權上下文212。授權上下文212將令牌斷言和策略斷言組合成斷言上下文。如由帶圈的“A”所示,從授權上下文212向授權引擎218提供斷言上下文*。根據(jù)授權查詢表查明授權查詢。資源保衛(wèi)214向授權引擎218提供授權查詢(授權查詢*)。授權引擎218在求值算法中使用授權查詢和斷言上下文來產(chǎn)生授權決策。授權決策(授權決策*)被返回給資源保衛(wèi)214。實體208是否被資源保衛(wèi)214準許訪問*資源 110取決于該授權決策。如果授權決策是肯定的,則訪問被準許。另一方面,如果由授權引擎218發(fā)出的授權決策是否定的,則資源保衛(wèi)214不準許實體208訪問資源110。授權過程還可使用補充授權過程的語義來審計。審計可能需要監(jiān)視授權過程和/ 或存儲如授權引擎218邏輯地執(zhí)行的求值算法等任何中間和/或最終產(chǎn)品。為此,安全策略220向授權引擎218提供來自審計策略2 的審計策略*。至少當請求審計時,可從授權引擎218向?qū)徲嬋罩?16轉(zhuǎn)發(fā)含有審計信息的審計記錄*?;蛘?,審計信息可經(jīng)由資源保衛(wèi) 214例如作為授權決策的一部分或單獨地路由到審計日志216。圖4是可用于本文所述的安全相關實現(xiàn)的示例設備102的框圖。多個設備102能夠跨一個或多個網(wǎng)絡104通信。如圖所示,兩個設備102 (A/B)和102(d)能夠經(jīng)由網(wǎng)絡104 參與通信交換。盡管具體示出兩個設備102,但是也可以取決于實現(xiàn)利用一個或多于兩個設備 102。一般而言,設備102可標識任何計算機或能夠進行處理的設備,諸如客戶機或服務器設備;工作站或其他通用計算機設備;PDA ;移動電話;游戲平臺;娛樂設備;以上參考圖1列出的設備之一;其某種組合等。如圖所示,設備102包括一個或多個輸入/輸出(I/ 0)接口 404、至少一個處理器406以及一個或多個介質(zhì)408。介質(zhì)408包含處理器可執(zhí)行指令 410。在所述設備102的實現(xiàn)中,I/O接口 404可包括(i)用于跨網(wǎng)絡104通信的網(wǎng)絡接口,(ii)用于在顯示屏上顯示信息的顯示設備接口,(iii) 一個或多個人機接口等。(i) 網(wǎng)絡接口的示例包括網(wǎng)卡、調(diào)制解調(diào)器、一個或多個端口等。( )顯示設備接口的示例包括圖形驅(qū)動器、顯卡、屏幕或監(jiān)視器的硬件或軟件驅(qū)動器等。打印設備接口可類似地作為I/O 接口 404的一部分被包括。(iii)人機接口的示例包括那些以有線或無線方式與人機接口設備402 (例如,鍵盤、遙控器、鼠標或其他圖形定點設備等)通信的接口。通常,處理器406能夠執(zhí)行、運行、和/或以其它方式實現(xiàn)諸如處理器可執(zhí)行指令 410等處理器可執(zhí)行指令。介質(zhì)408由一個或多個處理器可訪問介質(zhì)組成。換言之,介質(zhì) 408可包括可由處理器406執(zhí)行以由設備102實現(xiàn)功能的執(zhí)行的處理器可執(zhí)行指令410。因此,安全相關實現(xiàn)的實行可以在處理器可執(zhí)行指令的通用上下文中描述。一般而言,處理器可執(zhí)行指令包括例程、程序、應用程序、代碼、模塊、協(xié)議、對象、組件、元數(shù)據(jù)及其定義、數(shù)據(jù)結構、應用程序編程接口(API)、模式等,它們執(zhí)行和/或完成特定的任務,和/ 或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。處理器可執(zhí)行指令可以位于單獨的存儲介質(zhì)中,由不同的處理器執(zhí)行,和/或通過各種傳輸介質(zhì)傳播或存在于各種傳輸介質(zhì)上。處理器406可以使用任何適用的能進行處理的技術來實現(xiàn)。介質(zhì)408可以是作為設備102的一部分被包括的和/或能被設備102訪問的任何可用介質(zhì)。其包括易失性和非易失性介質(zhì)、可移動和不可移動介質(zhì)以及存儲和傳輸介質(zhì)(例如,無線或有線通信信道)。例如,介質(zhì)408可以包括用于處理器可執(zhí)行指令410的長期大容量存儲的磁盤/閃存/光介質(zhì)陣列,用于當前正在執(zhí)行的指令的短期存儲的隨機存取存儲器(RAM),用于傳輸通信(例如,安全相關數(shù)據(jù))的網(wǎng)絡104上的鏈路等。如具體示出的,介質(zhì)408至少包括處理器可執(zhí)行指令410。一般而言,處理器可執(zhí)行指令410在由處理器406執(zhí)行時使設備102能執(zhí)行本文所述的各種功能,包括在各個流程圖中所示的那些動作。僅作為示例,處理器可執(zhí)行指令410可包括安全令牌204、其斷言 206的至少其中之一、授權上下文模塊212、資源保衛(wèi)214、審計日志216、授權引擎218、安全策略220(例如,信任和授權策略222、授權查詢表2 和/或?qū)徲嫴呗? 等),其某種組合等。盡管未在圖4中明確示出,但處理器可執(zhí)行指令410還可包括應用程序210和/或資源110。安全策略斷言語言示例特征本節(jié)描述了安全策略斷言語言(SecPAL)的實現(xiàn)的示例特征。本節(jié)的kcPAL實現(xiàn)是以相對非正式的方式描述的,且僅作為示例。它具有解決創(chuàng)建端對端解決方案時所涉及的大量安全策略和安全令牌職責的能力。作為示例而非限制,這些安全策略和安全令牌職責包括描述顯式信任關系;表達安全令牌發(fā)放策略;提供包含身份、屬性、能力和/或委托策略的安全令牌;表達資源授權和委托策略等。在所述實現(xiàn)中,SecPAL是用于以靈活且易處理的方式表達安全措施的聲明性的基于邏輯的語言。它可以是綜合的,且它可提供用于表達信任關系、授權策略、委托策略、身份和屬性斷言、能力斷言、撤銷、審計要求等的統(tǒng)一機制。該統(tǒng)一性在使安全方案可理解且可分析方面提供切實的好處。該統(tǒng)一機制還通過允許避免、至少顯著減少不同安全技術之間的語義轉(zhuǎn)換和調(diào)停的需求而提高安全保證。SecPAL實現(xiàn)可包括以下示例特征的任何一個[1] SecPAL可相對容易地理解。它可使用允許其斷言作為英語語句閱讀的定義句法。而且,其語法可以是限制性的,使其僅要求用戶理解少數(shù)具有清楚定義的語義的主語-動詞-賓語(例如,主語-動詞短語)構造。 最后,用于基于斷言的集合對可推斷事實求值的算法可依賴于少數(shù)相對簡單的規(guī)則。[2] SecPAL可在其實現(xiàn)中利用行業(yè)標準基礎架構以便于其在現(xiàn)有系統(tǒng)中的采用和集成。例如,可使用可擴展標記語言(XML)句法,這是來自形式模型的直接映射。這允許使用標準語法分析器和句法正確性確認工具。它也允許對完整性、來源證明和機密性使用W3C XML數(shù)字簽名和加密標準。[3] SecPAL可通過支持分布式策略授權和合成而允許分布式策略管理。這允許靈活地適應不同的操作模型管控,其中基于所分派的管理責任來創(chuàng)作策略或策略的部分。使用標準方法來數(shù)字地簽署和加密策略對象使其能夠安全分發(fā)。W] SecPAL允許高效且安全的求值。對輸入的簡單的句法檢查足以確保求值將會終止并產(chǎn)生正確的答案。[5]SecPAL可提供用于支持所要求的策略、授權決策、審計和用于身份管理的公鑰基礎架構(PKI)的訪問控制要求的完整解決方案。相反,大多數(shù)其他方法僅能關注和解決這些安全問題范圍內(nèi)的一個子集。[6] SecPAL出于多個目的可以具有充分的表達力,這些目的包括但不限于處理網(wǎng)格環(huán)境和其他類型的分布式系統(tǒng)的安全問題。以維護語言語義和求值性質(zhì)同時允許適應特定系統(tǒng)的需求的方式來啟用可擴展性。圖5是示出用于一般安全方案的示例斷言格式500的框圖。在本文其他部分描述的實現(xiàn)中使用的安全方案斷言可以不同于示例斷言格式500。然而,斷言格式500是安全方案斷言的一個示例格式的基本圖示,且它提供理解一般安全方案的各個方面的所述示例實現(xiàn)的基礎。如在斷言格式500的最上行所示,概況層的示例斷言包括主體(principal)部分 502、說(say)部分504以及主張(claim)部分506。文字上,概括層的斷言格式500可被表示為主體說主張。在斷言格式500的下一行,主張部分506被分成示例組成部分。因此,示例主張部分506包括事實(fact)部分508,如果(if)部分510,“n”個條件事實[.n部分508 (1. · · η) 以及c部分512。下標“η”表示某一整數(shù)值。如圖例5 所示,c部分512表示約束部分。 盡管僅示出單個約束,但c部分512實際上可表示多個約束(例如,Cl,...,Cm)。如果部分 510右側(cè)的條件事實部分508(1... η)和約束512(1... m)的集合可被稱為前提。文字上,主張部分506可表示為事實如果事實事實n,c。因此,整個斷言格式500在文字上可如下表示主體說如果事實1;...事實n,c,則事實。然而,斷言可被簡化為主體說事實。在斷言的這一縮寫的三部分形式中,略去了以如果部分510開始并延及c 部分512的條件部分。每一事實部分508還可被細分成其各個組成部分。示例組成部分有e部分514和動詞短語部分516。如圖例5M所示,e部分514表示表達式部分。文字上,事實部分508 可表示為e動詞短語。每一 e即表達式部分514可采用兩個示例選擇之一。這兩個示例表達式選擇是 常量514 (c)和變量514 (ν)。主體可歸入常量514 (c)和/或變量514 (ν)。每一動詞短語部分516也可采用三個示例選擇之一。這三個示例動詞短語選擇是謂詞部分518繼之以一個或多個ei...n部分514(1... η)、能夠斷言(can assert)部分 520繼之以事實部分508、以及別名部分522繼之以表達式部分514。文字上,這三個動詞短語選擇分別可被表示為謂詞ei...en、能夠斷言事實、以及別名e。整數(shù)“n”可對事實 508(1. · ·η)和表達式514(1. · · η)取不同的值。一般,SecPAL語句是安全主體作出的斷言形式的。安全主體一般由密鑰標識,以使其可跨系統(tǒng)邊界認證。在其最簡單的形式中,斷言陳述,主體相信事實是有效的(例如, 如由包括事實部分508的主張506所表示)。他們也陳述,如果一個或多個其他事實有效且滿足某組條件,則一事實有效(例如,如由從事實部分508延及如果部分510以及條件事實部分508 (1. . . η)到c部分512的主張506所表示)。也可能存在沒有任何約束512的條件事實508 (1. . . η)和/或沒有任何條件事實508 (1. . . η)的約束512。在所述實現(xiàn)中,事實是關于主體的陳述。在本節(jié)中此處描述了四種示例類型的事實陳述。首先,事實可陳述,主體具有用“動作動詞”對資源行使動作的權利。示例動作動詞包括但不限于調(diào)用、發(fā)送、讀取、列表、執(zhí)行、寫入、修改、追加、刪除、安裝、擁有等。資源可由統(tǒng)一資源指示符(URI)或任何其他方法標識。其次,事實可使用“擁有”動詞來表達主體標識符與一個或多個屬性之間的綁定。 示例屬性包括但不限于電子郵件名、通用名、組名、角色頭銜、帳戶名、域名服務器/服務 (DNS)名、網(wǎng)際協(xié)議(IP)地址、設備名、應用程序名、組織名、服務名、帳戶標識/標識符 (ID)等。第三種示例類型的事實是可使用“別名”動詞定義兩個主體標識符來表示同一主體。“限定詞”或事實限定詞可作為以上三種事實類型的任一種的一部分而被包括。限定詞使得斷言者能指示如果認為事實有效則它相信應成立的環(huán)境參數(shù)(例如,時間、主體位置等)。這樣的陳述可基于這些限定詞的值在斷言者和依賴方的有效性檢查之間清楚地分開。第四種示例類型的事實由“能夠斷言”動詞定義。這種“能夠斷言”動詞提供用于表達信任關系和委托的靈活且強大的機制。例如,它允許一個主體(A)陳述其相信第二主體(B)斷言的某些類型的事實的意愿。例如,給定斷言“A說B能夠斷言事實O”以及“B 說事實0”,可得到A相信事實()有效的結論從而可推斷“A說事實()”。這樣的信任和委托斷言可以是(i)無邊界的且是傳遞的以許可下游委托,或者 (ii)有邊界的以阻止下游委托。盡管可對“能夠斷言”類型事實應用限定詞,但對這些“能夠斷言”類型事實省略對限定詞的支持可顯著地簡化給定安全方案的語義和求值安全性質(zhì)。在所述實現(xiàn)中,可陳述具體的事實,或可使用變量寫出策略表達式。變量是類型化的,且可以是無限制的(例如,允許匹配正確類型的任何具體值)或有限制的(例如,要求基于指定的模式匹配具體值的子集)。安全授權決策基于針對來自適用的安全策略(例如,安全策略220)和安全令牌 (例如,一個或多個安全令牌204)的斷言集合(例如,斷言上下文)的授權查詢的求值算法(例如,可在授權引擎218處進行的那些算法)。授權查詢是組合事實和/或條件的邏輯表達式,其可能會變得相當復雜。這些邏輯表達式例如包括對事實的與、或和/或非邏輯運算,帶有或不帶有伴隨的條件和/或約束。該對授權查詢的方法提供用于定義在對給定動作授權之前什么是必須已知且有效的靈活機制。查詢模板(例如來自授權查詢表224)形成總的安全方案的一部分,且允許對不同類型的訪問請求和其他操作/動作聲明性地陳述適當?shù)氖跈嗖樵儭0踩跈嗖樵兊氖纠龑崿F(xiàn)現(xiàn)有的安全策略語言遵循兩種方法之一。某些阻止以任何方式在任何時間使用否定。該方法的確減少了可能因否定而引起的伴隨的不一致性和不確定性。然而,它由于呈現(xiàn)了眾多太難以處理的安全情形且某些安全情形根本無法處理而也有局限性。另一方法對否定的使用沒有施加限制。盡管該方法更為靈活,但它呈現(xiàn)了建立難解甚至非確定性的安全策略的可能性。相比,所述實現(xiàn)創(chuàng)建了具有多層的安全方案。在一分支安全方案實現(xiàn)中,例如有兩層。第一層禁止使用否定。這可例如使用對句法的確認來實施。第二層允許使用否定。該分支安全方案將確保安全斷言易處理且可確定的安全性和確定性與處理排他安全規(guī)則的靈活性組合在一起。圖6是示出具有第一層和第二層的示例分支安全方案600的框圖。如圖所示,第一層包括斷言層602,第二層包括查詢層604。斷言層602包括多個斷言606和句法確認器 614。查詢層604包括具有多個部分的示例授權查詢616。這多個部分的示例包括但不限于所斷言的事實608以及邏輯運算符610和612。在所述實現(xiàn)中,斷言層602以斷言606填充。斷言606可以是斷言層處任何類型的聲明性安全陳述。斷言606的示例包括但不限于令牌斷言和策略斷言。(這兩個斷言類型在圖7中分開且明確地示出。)在安全斷言606內(nèi)不允許否定。句法確認器614分析每一斷言606以檢查是否存在否定。如果在給定斷言606內(nèi)存在否定,則拒絕或不允許給定斷言606。查詢層604以諸如示例授權查詢616等授權查詢填充。查詢層606的授權查詢被允許包括否定,諸如非運算符612。授權查詢可按照任何方式結構化。盡管未在圖6中明確示出,但授權查詢一般可包括一個或多個邏輯約束。在示例授權查詢616中,查詢被結構化成布爾邏輯運算。這樣的布爾邏輯運算可包括任何數(shù)目的所斷言的事實608、任何數(shù)目的邏輯運算符等。這些所斷言的事實、邏輯運算符等可按照任何方式組合。示例邏輯運算符包括但不限于與、或、非等。如圖所示,示例授權查詢616包括三個所斷言的事實608、兩個與運算符610、一個非運算符612。所斷言的事實608是否為真取決于是否可推斷出有效的匹配斷言606。當該匹配判斷過程完成之后,即對得到的邏輯布爾運算求值。在示例授權查詢616的情況中,在應用與運算符610之前,對最右端的所斷言的事實608的真/假判定應用非運算符612。如果整個布爾運算求值為真,則授權決策是肯定的。如果布爾運算的總的求值為假,則授權決策是否定的。斷言606和授權查詢(例如,示例授權查詢616)之間的示例相互關系以下在圖 7-10的描述中呈現(xiàn)。響應于請求來查明授權查詢,該請求可包括一個或多個斷言606或以其他方式與這些斷言相關聯(lián)。然后結合包括斷言606在內(nèi)的總的斷言上下文對授權查詢求值。斷言上下文一般包括令牌斷言和策略斷言。圖7是示出示例授權查詢查明和示例授權查詢求值的一般框圖700。框圖700包括來自圖2和3的多個安全相關組件。如圖所示,它包括授權上下文212、資源保衛(wèi)214、授權引擎218以及安全策略220。安全策略220包含授權查詢表224。授權引擎218包括求值算法708。在所述實現(xiàn)中,授權上下文212包括斷言上下文702。斷言上下文702是斷言606 的集合。具體地,斷言上下文702包括令牌斷言606T和策略斷言606P。令牌斷言606T從安全令牌(例如,圖2和3的安全令牌204)得到。安全令牌可作為資源訪問請求的一部分和/或隨之一起傳遞。策略斷言606P從信任和授權策略(例如,安全策略220 (圖2)的信任和授權策略222模塊)得到。斷言上下文702被轉(zhuǎn)發(fā)到資源保衛(wèi)214。向資源保衛(wèi)214呈現(xiàn)請求704。請求704 是訪問某一資源的請求。資源保衛(wèi)214將請求轉(zhuǎn)換成操作。該操作被提供給授權查詢表 224。授權查詢表2M將資源專用操作映射到授權查詢。在一示例實現(xiàn)中,每一操作與單個授權查詢相關聯(lián)。響應于所提供的操作,安全策略220查明相關聯(lián)的授權查詢706,并將授權查詢706返回到資源保衛(wèi)214。使用授權查詢表2M查明授權查詢706在本文中以下具體參考圖8進一步描述。因此,資源保衛(wèi)214包括斷言上下文702和授權查詢706兩者。資源保衛(wèi)214將斷言上下文702和授權查詢706轉(zhuǎn)發(fā)到授權引擎218的求值算法708。求值算法708包括能夠結合斷言上下文702對授權查詢706求值的邏輯。該邏輯可用硬件、軟件、固件、其某種組合等實現(xiàn)。因此,斷言上下文702在求值算法708中應用于授權查詢706。在邏輯分析之后,
10求值算法708產(chǎn)生授權決策710。結合斷言上下文702對授權查詢706求值在本文中以下具體參考圖9進一步描述。一般而言,具有如本文所述的特征的安全語言使得復雜的訪問控制準則能以聲明性的方式編寫起來相對簡單且理解起來相對簡單。它與展示基于輸入策略和經(jīng)認證的請求者數(shù)據(jù)推斷的有效事實集的任何授權算法兼容。如本文中進一步描述的,它基于結合斷言上下文與授權決策算法組合的授權查詢的概念。在所述實現(xiàn)中,一般,授權查詢包括所斷言的事實集以及約束。所斷言的事實是“A 說事實”形式的。它們表達可以(例如,從斷言上下文)推斷匹配的有效斷言的要求。如果這一匹配的有效斷言已知,則所斷言的事實得到滿足,且求值為布爾值真;否則,它求值為假。(在某些實現(xiàn)中,事實的斷言者可基于求值上下文隱含地已知。在這些情況中,它可被略去。)約束是返回布爾值的表達式。它可包括在所斷言的事實以及對環(huán)境值(例如,時間、位置等)的引用中使用的變量。約束一般用于表達變量等同性和不等同性。每一查詢中存在至少一個所斷言的事實。如果存在多個所斷言的事實,則它們可使用諸如與、或和非等邏輯運算符組合??扇芜x的約束與所斷言的事實進行邏輯與。該方法的結果是基本訪問控制策略可按照關于每一主體被授權的訪問的肯定陳述來寫出,而不顧及較高層的結構要求。因此,在多主體策略中,可編寫陳述每一主體對資源應潛在具有何種權限的每一策略。這樣的安全策略就添加新策略陳述不會移除任何現(xiàn)有的訪問權限而言是單調(diào)的。而且,可編寫指示主體對資源集具有何種權限的肯定訪問策略而不必顧慮潛在的沖突或不一致性。授權查詢提供用于組合這些訪問控制規(guī)則的較高層語義。例如,如果為對“R)o”準許讀訪問而要求(i)用戶具有電子郵件地址“fabrikam. com”,以及(ii)應用程序具有代碼摘要值“ABC”,則訪問控制規(guī)則可寫為如下A說如果ρ擁有r {(電子郵件名,*ifabrikam. com)}則ρ讀FooA說如果ρ擁有r {摘要,ABC}則ρ讀為確保用戶和應用程序均是經(jīng)認證的請求者,一個示例授權查詢?yōu)锳說vl讀與A說vl擁有r {(電子郵件名,*)}與A說v2讀與A說v2擁有(摘要,*)}類似地,為要求具有電子郵件地址“fabrikam. com"的兩個授權的主體請求訪問 “Foo”,可寫出以下安全策略A說如果ρ擁有r {(電子郵件名,*ifabrikam. com)}則ρ讀Foo,且它可與以下授權查詢組合A 說 pi 讀 Foo 與 A 說 ρ2 讀 Foo 與(pi ! = p2)。在以上授權查詢中,指示“pi”變量不等于“p2”變量的部分是約束。拒絕或排除可使用該方法來適當處理。例如,如果給定組A的成員能讀訪問R)o, 且組B的成員能讀訪問Bar,但不允許同時訪問??捎脦в腥缦碌膬蓚€策略斷言的安全策略啟用所需訪問A說如果ρ擁有r {組,A}則ρ讀A說如果ρ擁有r {組,B}則ρ讀Bar0然后可使用以下授權查詢實施排除
(A說ν讀Foo或A說ν讀BAR)與非(Α說ν讀與A說ν讀BAR)。以類似方式,可排除同時承擔兩個角色、同時對給定資源具有多個訪問權(例如, 讀和刪除)等。圖8是示出響應于資源訪問請求704的示例授權查詢查明800的更具體的框圖。 如圖所示,授權查詢查明800包括具有所標識的資源802的請求704、轉(zhuǎn)換功能804、操作 806、授權查詢表2M和授權查詢706。授權查詢查明800涉及接收請求704作為輸入,以及產(chǎn)生相關聯(lián)的授權查詢706作為輸出。在所述實現(xiàn)中,請求704是訪問某一所標識的資源802的請求。請求704經(jīng)由轉(zhuǎn)換功能804被轉(zhuǎn)換成資源專用操作806。該轉(zhuǎn)換功能804例如可由資源保衛(wèi)214(圖7)執(zhí)行。資源專用操作的示例作為示例而非限制包括(i)對文件讀和/或?qū)懀? )通過通信端口發(fā)送數(shù)據(jù),(iii)利用處理器,(iv)執(zhí)行應用程序等。一般而言,操作806被提供給授權查詢表224。例如,安全策略220可負責將操作 806應用于授權查詢表2M并檢索相關聯(lián)的授權查詢706。作為結果產(chǎn)生授權查詢706,并將其返回給資源保衛(wèi)214。更具體地,授權查詢表2M包括多個字段808。每一字段808將資源專用操作映射到相關聯(lián)的授權查詢模板。如圖所示,在授權查詢表224中有“f”個字段808(1)、 808 (2)... 808 (f),f是某一整數(shù)。檢索到的授權查詢模板被返回給資源保衛(wèi)214。資源保衛(wèi) 214然后執(zhí)行代入過程以產(chǎn)生授權查詢706。換言之,為創(chuàng)建授權查詢706,資源保衛(wèi)214將實際進行請求的主體、實際所請求的資源等代入相關聯(lián)授權查詢模板的預定的相應槽中。圖9是示出給定斷言上下文702*情況下的示例授權查詢求值708*的更具體的框圖。如以上參考圖7概括描述,求值算法708接收授權查詢706和斷言上下文702。在圖9 的具體示例授權求值708*中,結合具體示例斷言上下文702*對具體示例授權查詢706*求值。實際斷言上下文702、授權查詢706和求值算法708可與這些示例不同。如圖所示,示例授權查詢求值708*包括示例斷言上下文702*、示例授權查詢706*、 得到的布爾運算910和答案912。斷言上下文702*包括(i)三個令牌斷言606Τ_1、606Τ_2 和606Τ-3,以及(ii)兩個策略斷言606P-1和606P-2。示例授權查詢706*包括三個所斷言的事實608-1、608-2和608-3 ;兩個與運算符610 ;—個非運算符612 ;以及一個約束902。在求值期間,授權引擎218(圖7)試圖確定是否可對授權查詢706*的每一所斷言的事實608推斷有效的匹配斷言606。該匹配判定過程可以是迭代的、遞歸的、和/或在一個有效斷言導致另一可能有效的斷言時為分叉的。在某一預定時間段之后,匹配判斷過程收斂。圖9的示例授權查詢求值708*示出了便于大體理解對授權查詢求值的概念基礎的簡化的求值算法。更具體且技術上準確的說明以下在圖9的描述之后呈現(xiàn)。而且,一個示例實現(xiàn)的相對嚴格的邏輯描述在本文中以下在圖10的描述之后呈現(xiàn)。在示例授權查詢求值708*中,授權引擎208確定令牌斷言606T-2是有效的且匹配904所斷言的事實608-1。還確定策略斷言606P-2是有效的且匹配906所斷言的事實 608-2,令牌斷言606T-3是有效的且匹配908所斷言的事實608-3。盡管令牌斷言606T-1 和策略斷言606P-1未明確匹配特定的所斷言的事實608,但它們可能已在匹配判定過程中使用了。另外,關于約束902作出真/假判斷。
12
在匹配判斷過程之后和/或期間,執(zhí)行真/假替換過程以創(chuàng)建布爾運算910。如果特定的所斷言的事實608具有匹配的有效斷言606,則用“真”替換特定的所斷言的事實 608。如果不是,則用“假”替換該特定的所斷言的事實608。同樣地,用其確定的“真”或 “假”狀態(tài)替換任何約束902。盡管未對授權查詢706*明確示出,但約束902與授權查詢的其余部分進行邏輯與。例如,授權查詢求值708*、授權查詢706*在文字上可如下表示所斷言的事實 608-1,與運算符610,所斷言的事實608-2,與運算符610,非運算符612,所斷言的事實 608-3,以及約束902。在替換過程之后,得到的布爾運算在文字上可如下表示真與真與非真與真。這可縮減成真與真與假與真,這是邏輯假。結果,布爾運算910的答案912為“假”。因此,授權決策710是拒絕請求。另一方面,如果例如對所斷言的事實608-3沒有匹配908斷言606,則布爾運算910將被縮減成 真與真與真與真,這是邏輯真。在這種情況中,答案912將為“真”,且授權決策710將是允許請求。盡管未明確示出或描述,但存在布爾運算910將求值為邏輯假的其他排列(例如, 如果確定對所斷言的事實608-2沒有有效且匹配906的斷言606)。此處描述用于對授權查詢求值的技術上更為準確的示例實現(xiàn)。首先,一次一個地對授權查詢內(nèi)的所斷言的事實求值,而不必在完整的替換過程之前一次對所有事實進行。 其次,授權查詢內(nèi)單個所斷言的事實的求值返回使該所斷言的事實為真的變量代入集。因此,一般而言,所返回的值不是立即為真/假狀態(tài),因為事實實際上被表示具有關于給定變量代入的真/假狀態(tài)。如果授權查詢內(nèi)的兩個所斷言的事實之間的連接詞為與(如圖9的示例中的情況),則左邊事實所返回的值(即,該代入集)被應用于右邊的事實。之后,按需對右邊的事實求值。得到的代入集然后通過代入合成來組合。對整個授權查詢求值的結果是代入集, 代入集的每一代入能夠使授權查詢?yōu)檎?。圖10是示出用于查明授權查詢并對其求值的方法的示例的流程圖1000。流程圖 1000包括十一(11)個框1002-1022。盡管可在其他環(huán)境中以及采用各種硬件/軟件/固件組合來執(zhí)行流程圖1000的動作,但使用圖1-9的某些特征、組件和方面來示出該方法的示例。例如,資源保衛(wèi)214、授權查詢表2 和/或授權引擎218可單獨或共同實現(xiàn)流程圖 1000的動作。在所述實現(xiàn)中,在框1002,接收訪問資源的請求。例如,可接收標識資源802的請求704。在框1004,將請求轉(zhuǎn)換成對資源的操作。例如,資源保衛(wèi)214可將請求704轉(zhuǎn)換 804成資源專用操作806。在框1006,操作被提供給授權查詢表。例如,資源專用操作806可被提供給授權查詢表224。在框1008,查明與該操作相關聯(lián)的授權查詢。例如,可定位包括資源專用操作 806的字段808。然后可從所定位的字段806檢索相關聯(lián)的授權查詢。更具體地,檢索到的授權查詢可包括授權查詢模板?;谟烧埱笳咛峁┑陌踩钆?,相關聯(lián)的授權查詢模板通過將實際的主體、資源等代入到授權查詢模板的預定相應槽中而被轉(zhuǎn)化成授權查詢。在一示例實現(xiàn)中,了解來自請求704的實際變量信息的資源保衛(wèi) 214通過代入執(zhí)行該轉(zhuǎn)化。在框1010,在求值算法中組合斷言上下文和授權查詢。例如,斷言上下文702和授
13權查詢706可被共同提交給求值算法708。在框1012,在匹配判定過程中,斷言上下文的有效斷言被匹配到授權查詢的所斷言的事實。例如,在匹配判定過程中,被發(fā)現(xiàn)為有效的、可從斷言上下文702推斷(即,原始存在于其中和/或以其他方式從其得到)的一個或多個令牌斷言606T和/或策略斷言 606P可試圖匹配904/906/908到所斷言的事實608。還分析授權查詢706的任何約束部分 902以確定它們是真還是假。如以上在技術描述中所述,可單獨和/或順序分析每一斷言。在框1014,響應于匹配判定過程執(zhí)行對授權查詢的真/假替換。例如,在布爾運算 910中,被確定為具有有效匹配斷言606的所斷言的事實608可用真替換,而未被確定為具有有效匹配斷言606的所斷言的事實608可用假替換。應理解,框1014的動作可按照與框 1012的動作的執(zhí)行全部或部分重疊的方式執(zhí)行。在框1016,對授權查詢邏輯求值。例如,可作為求值算法708的一部分對布爾運算 910邏輯求值,以確定其答案為真還是假。應理解,布爾運算910的結果無需用真或假狀態(tài)替換每一所斷言的事實608和/或約束902就可被確定,而且確實被確定。在框1018,確定授權查詢邏輯求值是否為“真”。如果是,則框1020處的授權決策是該請求被準許。另一方面,如果確定授權查詢邏輯求值為“假”,則框1022處的授權決策是請求被拒絕。應理解,可能具有“真”狀態(tài)的授權查詢的算法求值可返回使授權查詢?yōu)?“真”的一組變量。也可從相對嚴格的邏輯觀點描述安全授權查詢。在安全授權查詢的所述邏輯實現(xiàn)中,通過查詢包含本地以及導入的斷言的斷言上下文來決定授權請求。在一示例實現(xiàn)中,授權可包括A說事實形式的原子查詢和約束c的集合。這些原子查詢和約束由包括否定在內(nèi)的邏輯連接詞組合。示例邏輯連接詞包括以下
q = e說事實 Qi' Q2
Qi 或 Q2
非(q)c得到的查詢語言比其中僅考慮原子查詢的其他基于邏輯的語言表達力更強。例如,可通過將原子查詢與否定和約束組合來表達責任的分離、閾值和拒絕策略。在語言的斷言層不允許否定,因為將否定和遞歸語言耦合會導致語義的歧義,且通常導致計算更為復雜甚至不可判定。通過將否定的使用限于授權查詢層(而非將這些特征添加到斷言語言本身),將否定與遞歸有效地分開,從而繞開了與否定通常相關聯(lián)的問題。查詢的語義由關系JC力卜?限定。以下,令AC為斷言上下文。而且,令θ為代入,令ε為空代入。令Dom(e)為代入θ的域。如果X是句法短語,則令Vars (X)為X中出現(xiàn)的變量集。授權查詢的示例形式語義如下AC,θ 說事實如果θΘ說事實θ可從AC推斷,且(的 ^ Vars{_e 後事勢ACfixQ1卜仍,仍如果JC^1卜仍且JCj2卜仍仏」C,0卜引或仍如果乂C々卜仍或」C,0卜豹
1權利要求
1.一種實現(xiàn)具有第一層和第二層的分支安全方案的設備,其中所述第一層不允許使用否定,所述第二層許可使用否定。
2.如權利要求1所述的設備,其特征在于,所述第一層包括斷言層。
3.如權利要求2所述的設備,其特征在于,所述斷言層由令牌斷言和策略斷言來填充。
4.如權利要求2所述的設備,其特征在于,所述分支安全方案包括不允許包含否定的任何斷言的句法確認器。
5.如權利要求1所述的設備,其特征在于,所述第二層包括查詢層。
6.如權利要求5所述的設備,其特征在于,所述查詢層由至少從所斷言的事實和邏輯運算符形成的授權查詢來填充;其中所述邏輯運算符包括與、或和非;且其中每一授權查詢與一資源專用操作相關聯(lián)。
7.如權利要求1所述的設備,其特征在于,所述第一層包括由斷言填充的斷言層;所述第二層包括由至少從所斷言的事實形成的授權查詢填充的查詢層;且其中所述分支安全方案通過試圖將來自所述斷言層的有效斷言匹配到特定的授權查詢的一個或多個所斷言的事實而對所述特定的授權查詢求值。
全文摘要
在一示例實現(xiàn)中,一分支安全方案具有不允許使用否定的第一層和允許使用否定的第二層。在另一示例實現(xiàn)中,一授權查詢表將各個資源專用操作映射到相應的相關聯(lián)授權查詢。在又一示例實現(xiàn)中,允許授權查詢具有否定,但不允許個別斷言具有否定。
文檔編號G06F21/00GK102176226SQ201110162110
公開日2011年9月7日 申請日期2007年9月5日 優(yōu)先權日2006年9月8日
發(fā)明者A·D·戈登, B·B·迪拉韋, C·富爾內(nèi), M·Y·貝克 申請人:微軟公司