專利名稱:安全授權(quán)查詢的制作方法
安全授權(quán)査詢
背景
計(jì)算機(jī)和其他電子設(shè)備遍布人們的職業(yè)和個(gè)人生活。在職業(yè)設(shè)置中,人 們在項(xiàng)目協(xié)作期間交換和共享機(jī)密信息。在個(gè)人設(shè)置中,人們參與電子商務(wù) 以及個(gè)人信息的傳輸。在這些和其他眾多情況中,電子安全措施被認(rèn)為是重 要的。
電子安全措施范例可令職業(yè)信息保持機(jī)密以及個(gè)人信息保持私密。電子 安全措施范例可涉及某種水平的加密和/或針對諸如病毒、蠕蟲和間諜軟件等惡 意軟件的保護(hù)。信息的加密以及針對惡意軟件的保護(hù)歷來受到極大的關(guān)注, 尤其是近幾年來。
然而,控制對信息的訪問是保護(hù)電子信息安全性同等重要的方面。對于 其中受益于電子信息的共享和/或傳送的情形尤其如此。在這樣的情形中,某 些人被準(zhǔn)許訪問,而其他人要被排除在外。
訪問控制自早期的共享系統(tǒng)以來就是共享計(jì)算機(jī)和應(yīng)用程序服務(wù)器的共 同特征。存在用于控制對信息的訪問的多種不同的方法。它們在組合對請 求對某一資源的訪問的實(shí)體的認(rèn)證以及授權(quán)所允許的訪問的機(jī)制方面享有共
同的基礎(chǔ)。認(rèn)證機(jī)制包括口令、Kerberos、以及x.509證書。其目的在于 允許進(jìn)行資源控制的實(shí)體肯定地標(biāo)識(shí)進(jìn)行請求的實(shí)體或它所需的關(guān)于實(shí)體的
f曰息。
授權(quán)示例包括訪問控制列表(ACL)以及基于策略的機(jī)制,諸如可擴(kuò)展訪 問控制標(biāo)記語言(XACML)或特權(quán)和角色管理基礎(chǔ)架構(gòu)(PERMIS)。 這些 機(jī)制定義哪些實(shí)體可訪問給定的資源,諸如文件系統(tǒng)中的文件、硬件設(shè)備、數(shù) 據(jù)庫信息等。它們通過提供關(guān)于請求者的認(rèn)證信息以及所允許的對資源的訪 問之間的映射來執(zhí)行這種授權(quán)。
隨著計(jì)算機(jī)系統(tǒng)越來越普遍地連接到諸如因特網(wǎng)等大型網(wǎng)絡(luò)上,這些機(jī)制 被證實(shí)在處理日益發(fā)展的訪問控制要求方面稍有限制和不靈活。地理上散布
5的用戶和計(jì)算機(jī)資源的系統(tǒng),包括橫跨多個(gè)行政區(qū)域的那些系統(tǒng)尤其提出了當(dāng) 前部署的技術(shù)解決不好的多個(gè)挑戰(zhàn)。
概述
在一示例實(shí)現(xiàn)中,一分支安全方案具有不允許使用否定的第一層和允許使 用否定的第二層。在另一示例實(shí)現(xiàn)中, 一授權(quán)査詢表將各個(gè)資源專用操作映 射到相應(yīng)的相關(guān)聯(lián)授權(quán)査詢。在又一示例實(shí)現(xiàn)中,允許授權(quán)查詢具有否定, 但不允許個(gè)別斷言具有否定。
提供本概述以便以簡化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一 些概念。該概述不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不 旨在用于幫助確定所要求保護(hù)的主題的范圍。而且,其它方法、系統(tǒng)、方案、
裝置、設(shè)備、介質(zhì)、過程、API、安排、協(xié)議等的實(shí)現(xiàn)也在此得到描述。 附圖簡述
在各圖中使用相同的數(shù)字來引用相同和/或?qū)?yīng)的方面、特征和組件。
圖1是示出其中可以實(shí)現(xiàn)示例安全方案的示例一般環(huán)境的框圖。 圖2是示出具有兩個(gè)設(shè)備以及多個(gè)示例安全相關(guān)組件的示例安全環(huán)境的 框圖。
圖3是示出其中在安全相關(guān)組件之間交換示例安全相關(guān)數(shù)據(jù)的圖2的示例 安全環(huán)境的框圖。
圖4是可用于本文所述的安全相關(guān)實(shí)現(xiàn)的示例設(shè)備的框圖。
圖5是示出用于一般安全方案的示例斷言格式的框圖。
圖6是示出具有第一層和第二層的示例分支安全方案的框圖。
圖7是示出示例授權(quán)查詢查明和示例授權(quán)査詢求值的一般框圖。
圖8是示出響應(yīng)于資源訪問請求的示例授權(quán)查詢査明的更具體的框圖。
圖9是示出給定斷言上下文情況下的示例授權(quán)查詢求值的更具體的框圖。
圖IO是示出用于査明授權(quán)査詢并對其求值的方法的示例的流程圖。
詳細(xì)描述示伊皮全絲
圖1是示出其中可以實(shí)現(xiàn)示例安全方案100的示例一般環(huán)境的框圖。安 全方案IOO表示進(jìn)行保護(hù)的集成方法。如圖所示,安全方案IOO包括多個(gè)安 全概念安全令牌IOO(A)、安全策略IOO(B)、以及求值引擎IOO(C)。 一般, 安全令牌100(A)、安全策略100(B)共同提供對求值引擎100(C)的輸入。求 值引擎100(C)接受輸入,并產(chǎn)生指示應(yīng)許可還是拒絕對某一資源的訪問的授權(quán) 輸出。
在所述實(shí)現(xiàn)中,安全方案100可由一個(gè)或多個(gè)設(shè)備102覆蓋和/或與其集 成,這些設(shè)備由硬件、軟件、固件、其某種組合等組成。如圖所示,"d" 個(gè)設(shè)備在一個(gè)或多個(gè)網(wǎng)絡(luò)104上互連,"d"是某一整數(shù)。更具體地,設(shè)備 102(1)、設(shè)備102(2)、設(shè)備102(3)...設(shè)備102(d)能夠經(jīng)由網(wǎng)絡(luò)104通信。
每一設(shè)備102可以是能夠?qū)崿F(xiàn)安全方案100的至少一部分的任何設(shè)備。 這樣的設(shè)備的示例包括但不限于計(jì)算機(jī)(例如,客戶機(jī)計(jì)算機(jī)、服務(wù)器計(jì)算 機(jī)、個(gè)人計(jì)算機(jī)、工作站、臺(tái)式機(jī)、膝上型計(jì)算機(jī)、掌上型計(jì)算機(jī)等)、游戲 機(jī)(例如,控制臺(tái)、便攜式游戲設(shè)備等)、機(jī)頂盒、電視機(jī)、消費(fèi)電子產(chǎn)品(例 如,DVD播放器/記錄器、攝錄像一體機(jī)、數(shù)碼錄像機(jī)(DVR)等)、個(gè)人數(shù) 字助理(PDA)、移動(dòng)電話、便攜式媒體播放器、其某種組合等。 一個(gè)示例 電子設(shè)備在以下具體參考圖4描述。
網(wǎng)絡(luò)104可由鏈接在一起和/或覆蓋在彼此之上的任何一個(gè)或多個(gè)網(wǎng)絡(luò)形 成。網(wǎng)絡(luò)104的示例包括但不限于因特網(wǎng)、電話網(wǎng)絡(luò)、以太網(wǎng)、局域網(wǎng) (LAN)、廣域網(wǎng)(WAN)、有線電視網(wǎng)絡(luò)、光纖網(wǎng)絡(luò)、數(shù)字用戶線(DSL) 網(wǎng)絡(luò)、蜂窩網(wǎng)絡(luò)、\¥^;@網(wǎng)絡(luò)、WiMAX②網(wǎng)絡(luò)、虛擬專用網(wǎng)(VPN)、其某種 組合等。網(wǎng)絡(luò)104可包括多個(gè)域、 一個(gè)或多個(gè)網(wǎng)格網(wǎng)絡(luò)等。這些網(wǎng)絡(luò)或網(wǎng) 絡(luò)組合中的每一個(gè)可根據(jù)任何聯(lián)網(wǎng)標(biāo)準(zhǔn)操作。
如圖所示,設(shè)備102(1)對應(yīng)于正與之交互的用戶106。 設(shè)備102(2)對應(yīng) 于正在其上執(zhí)行的服務(wù)108。 設(shè)備102(3)與資源110相關(guān)聯(lián)。資源110可 以是設(shè)備102(3)的一部分,或與設(shè)備102(3)分開。
用戶106、服務(wù)108以及諸如任何給定設(shè)備102等機(jī)器形成非窮舉的示例 實(shí)體列表。實(shí)體隨時(shí)可能希望訪問資源110。 安全方案100確保被正確認(rèn)證和授權(quán)的實(shí)體被許可訪問資源110,而阻止其他實(shí)體訪問資源110。
圖2是示出具有兩個(gè)設(shè)備102(A)和102(B)以及多個(gè)示例安全相關(guān)組件的 示例安全環(huán)境200的框圖。安全環(huán)境200還包括授權(quán)機(jī)構(gòu)202,諸如安全令 牌服務(wù)(STS)授權(quán)機(jī)構(gòu)。設(shè)備102(A)對應(yīng)于實(shí)體208。 設(shè)備102(B)與資 源110相關(guān)聯(lián)。盡管安全方案100可在更復(fù)雜的環(huán)境中實(shí)現(xiàn),但使用該相對 簡單的兩個(gè)設(shè)備的安全環(huán)境200來描述示例安全相關(guān)組件。
如圖所示,設(shè)備102(A)包括兩個(gè)安全相關(guān)組件安全令牌204和應(yīng)用程 序210。 安全令牌204包括一個(gè)或多個(gè)斷言206。 設(shè)備102(B)包括五個(gè)安 全相關(guān)組件授權(quán)上下文212、資源保衛(wèi)214、審計(jì)日志216、授權(quán)引擎218 和安全策略220。 安全策略220包括信任和授權(quán)策略222、授權(quán)査詢表224 和審計(jì)策略226。
每一設(shè)備102可被不同地配置,且仍能夠?qū)崿F(xiàn)安全方案100的全部或一部 分。例如,設(shè)備102(A)可具有多個(gè)安全令牌204和/或應(yīng)用程序210。 作為 另一示例,設(shè)備102(B)可不包括審計(jì)日志216或?qū)徲?jì)策略226。 其它配置也 是可能的。
在所述實(shí)現(xiàn)中,授權(quán)機(jī)構(gòu)202向?qū)嶓w208發(fā)放具有斷言206的安全令牌 204。 斷言206在以下描述,包括在題為"安全策略斷言語言示例特征"一 節(jié)中。實(shí)體208從而與安全令牌204相關(guān)聯(lián)。在操作中,實(shí)體208希望依 靠安全令牌204使用應(yīng)用程序210來訪問資源110。
資源保衛(wèi)214接收訪問資源IIO的請求,并有效地管理與設(shè)備102(B)的其 他安全相關(guān)組件的認(rèn)證和授權(quán)過程。如其名所指示,信任和授權(quán)策略222包 括針對在安全環(huán)境200內(nèi)信任實(shí)體和授權(quán)動(dòng)作的策略。信任和授權(quán)策略222 可例如包括安全策略斷言(未在圖2明確示出)。授權(quán)査詢表224將諸如訪 問請求等所請求的動(dòng)作映射到適當(dāng)?shù)氖跈?quán)査詢。審計(jì)策略226描繪與在安全 環(huán)境200中實(shí)現(xiàn)安全方案100有關(guān)的審計(jì)責(zé)任和審計(jì)任務(wù)。
授權(quán)上下文212從安全令牌204收集斷言206,它用于認(rèn)證進(jìn)行請求的實(shí) 體,授權(quán)上下文212還從信任和授權(quán)策略222收集安全策略斷言。這些收集 的斷言在授權(quán)上下文212中形成斷言上下文。因此,授權(quán)上下文212可包括 除各種斷言以外的其他信息。
8來自授權(quán)上下文212的斷言上下文和來自授權(quán)查詢表224的授權(quán)查詢被提 供給授權(quán)引擎218。 使用斷言上下文和授權(quán)查詢,授權(quán)引擎218作出授權(quán)決 策。資源保衛(wèi)214基于授權(quán)決策而響應(yīng)訪問請求。審計(jì)日志216包含審計(jì) 信息,諸如所請求的資源110的標(biāo)識(shí)和/或由授權(quán)引擎218執(zhí)行的算法求值邏輯。
圖3是示出其中在安全相關(guān)組件之間交換示例安全相關(guān)數(shù)據(jù)的示例安全 環(huán)境200的框圖。交換安全相關(guān)數(shù)據(jù)以支持示例訪問請求操作。在此示例 訪問請求操作中,實(shí)體208希望使用應(yīng)用程序210訪問資源110,并用安全令 牌204指示其這樣做的授權(quán)。因此,應(yīng)用程序210向資源保衛(wèi)214發(fā)送訪問 請求*。 在圖3的該描述中,星號(即"*")指示所述安全相關(guān)數(shù)據(jù)在圖3 中明確示出。
在所述實(shí)現(xiàn)中,實(shí)體208用令牌*——安全令牌204向資源保衛(wèi)214認(rèn)證* 它自己。資源保衛(wèi)214將該令牌斷言*轉(zhuǎn)發(fā)到授權(quán)上下文212。 這些令牌斷 言是安全令牌204的斷言206 (圖2)。 安全策略220向資源保衛(wèi)214提供 授權(quán)查詢表*。 授權(quán)査詢表是從授權(quán)查詢表模塊224得到的。發(fā)送到資源 保衛(wèi)214的授權(quán)査詢表可被限于與當(dāng)前訪問請求直接相關(guān)的一個(gè)或多個(gè)部分。
策略斷言是由安全策略220從信任和授權(quán)策略222提取的。策略斷言可 包括信任相關(guān)斷言和授權(quán)相關(guān)斷言兩者。安全策略220將策略斷言*轉(zhuǎn)發(fā)到 授權(quán)上下文212。授權(quán)上下文212將令牌斷言和策略斷言組合成斷言上下文。 如由帶圈的"A"所示,從授權(quán)上下文212向授權(quán)引擎218提供斷言上下文*。
根據(jù)授權(quán)査詢表查明授權(quán)查詢。資源保衛(wèi)214向授權(quán)引擎218提供授權(quán) 查詢(授權(quán)查詢*)。 授權(quán)引擎218在求值算法中使用授權(quán)查詢和斷言上下 文來產(chǎn)生授權(quán)決策。授權(quán)決策(授權(quán)決策*)被返回給資源保衛(wèi)214。 實(shí)體 208是否被資源保衛(wèi)214準(zhǔn)許訪問*資源IIO取決于該授權(quán)決策。如果授權(quán)決 策是肯定的,則訪問被準(zhǔn)許。另一方面,如果由授權(quán)引擎218發(fā)出的授權(quán)決 策是否定的,則資源保衛(wèi)214不準(zhǔn)許實(shí)體208訪問資源110。
授權(quán)過程還可使用補(bǔ)充授權(quán)過程的語義來審計(jì)。審計(jì)可能需要監(jiān)視授權(quán) 過程和/或存儲(chǔ)如授權(quán)引擎218邏輯地執(zhí)行的求值算法等任何中間和/或最終產(chǎn) 品。為此,安全策略220向授權(quán)引擎218提供來自審計(jì)策略226的審計(jì)策略 *。 至少當(dāng)請求審計(jì)時(shí),可從授權(quán)引擎218向?qū)徲?jì)日志216轉(zhuǎn)發(fā)含有審計(jì)信息的審計(jì)記錄*。 或者,審計(jì)信息可經(jīng)由資源保衛(wèi)214例如作為授權(quán)決策的 一部分或單獨(dú)地路由到審計(jì)日志216。
圖4是可用于本文所述的安全相關(guān)實(shí)現(xiàn)的示例設(shè)備102的框圖。多個(gè)設(shè) 備102能夠跨一個(gè)或多個(gè)網(wǎng)絡(luò)104通信。如圖所示,兩個(gè)設(shè)備102(A/B)和 102(d)能夠經(jīng)由網(wǎng)絡(luò)104參與通信交換。盡管具體示出兩個(gè)設(shè)備102,但是 也可以取決于實(shí)現(xiàn)利用一個(gè)或多于兩個(gè)設(shè)備102。
一般而言,設(shè)備102可標(biāo)識(shí)任何計(jì)算機(jī)或能夠進(jìn)行處理的設(shè)備,諸如客戶 機(jī)或服務(wù)器設(shè)備;工作站或其他通用計(jì)算機(jī)設(shè)備;PDA;移動(dòng)電話;游戲平臺(tái); 娛樂設(shè)備;以上參考圖l列出的設(shè)備之一;其某種組合等。如圖所示,設(shè)備 102包括一個(gè)或多個(gè)輸入/輸出(I/0)接口 404、至少一個(gè)處理器406以及一個(gè)或 多個(gè)介質(zhì)408。 介質(zhì)408包含處理器可執(zhí)行指令410。
在所述設(shè)備102的實(shí)現(xiàn)中,I/O接口 404可包括(i)用于跨網(wǎng)絡(luò)104通信的 網(wǎng)絡(luò)接口, (ii)用于在顯示屏上顯示信息的顯示設(shè)備接口, (iii)一個(gè)或多個(gè)人機(jī) 接口等。(i)網(wǎng)絡(luò)接口的示例包括網(wǎng)卡、調(diào)制解調(diào)器、一個(gè)或多個(gè)端口等。(ii) 顯示設(shè)備接口的示例包括圖形驅(qū)動(dòng)器、顯卡、屏幕或監(jiān)視器的硬件或軟件驅(qū)動(dòng) 器等。打印設(shè)備接口可類似地作為I/O接口 404的一部分被包括。(iii)人 機(jī)接口的示例包括那些以有線或無線方式與人機(jī)接口設(shè)備402 (例如,鍵盤、 遙控器、鼠標(biāo)或其他圖形定點(diǎn)設(shè)備等)通信的接口。
通常,處理器406能夠執(zhí)行、運(yùn)行、和/或以其它方式實(shí)現(xiàn)諸如處理器可 執(zhí)行指令410等處理器可執(zhí)行指令。介質(zhì)408由一個(gè)或多個(gè)處理器可訪問介 質(zhì)組成。換言之,介質(zhì)408可包括可由處理器406執(zhí)行以由設(shè)備102實(shí)現(xiàn)功 能的執(zhí)行的處理器可執(zhí)行指令410。
因此,安全相關(guān)實(shí)現(xiàn)的實(shí)行可以在處理器可執(zhí)行指令的通用上下文中描 述。 一般而言,處理器可執(zhí)行指令包括例程、程序、應(yīng)用程序、代碼、模塊、 協(xié)議、對象、組件、元數(shù)據(jù)及其定義、數(shù)據(jù)結(jié)構(gòu)、應(yīng)用程序編程接口 (API)、 模式等,它們執(zhí)行和/或完成特定的任務(wù),和/或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。處 理器可執(zhí)行指令可以位于單獨(dú)的存儲(chǔ)介質(zhì)中,由不同的處理器執(zhí)行,和/或通過 各種傳輸介質(zhì)傳播或存在于各種傳輸介質(zhì)上。
處理器406可以使用任何適用的能進(jìn)行處理的技術(shù)來實(shí)現(xiàn)。介質(zhì)408可以是作為設(shè)備102的一部分被包括的和/或能被設(shè)備102訪問的任何可用介 質(zhì)。其包括易失性和非易失性介質(zhì)、可移動(dòng)和不可移動(dòng)介質(zhì)以及存儲(chǔ)和傳輸
介質(zhì)(例如,無線或有線通信信道)。例如,介質(zhì)408可以包括用于處理器 可執(zhí)行指令410的長期大容量存儲(chǔ)的磁盤/閃存/光介質(zhì)陣列,用于當(dāng)前正在執(zhí) 行的指令的短期存儲(chǔ)的隨機(jī)存取存儲(chǔ)器(RAM),用于傳輸通信(例如,安全 相關(guān)數(shù)據(jù))的網(wǎng)絡(luò)104上的鏈路等。
如具體示出的,介質(zhì)408至少包括處理器可執(zhí)行指令410。 一般而言, 處理器可執(zhí)行指令410在由處理器406執(zhí)行時(shí)使設(shè)備102能執(zhí)行本文所述的各 種功能,包括在各個(gè)流程圖中所示的那些動(dòng)作。僅作為示例,處理器可執(zhí)行 指令410可包括安全令牌204、其斷言206的至少其中之一、授權(quán)上下文模塊 212、資源保衛(wèi)214、審計(jì)日志216、授權(quán)引擎218、安全策略220 (例如,信 任和授權(quán)策略222、授權(quán)査詢表224和/或?qū)徲?jì)策略226等),其某種組合等。 盡管未在圖4中明確示出,但處理器可執(zhí)行指令410還可包括應(yīng)用程序210和 /或資源110。
安全貴夠銜,語訪,密
本節(jié)描述了安全策略斷言語言(SecPAL)的實(shí)現(xiàn)的示例特征。本節(jié)的 SecPAL實(shí)現(xiàn)是以相對非正式的方式描述的,且僅作為示例。它具有解決創(chuàng) 建端對端解決方案時(shí)所涉及的大量安全策略和安全令牌職責(zé)的能力。作為示 例而非限制,這些安全策略和安全令牌職責(zé)包括描述顯式信任關(guān)系;表達(dá) 安全令牌發(fā)放策略;提供包含身份、屬性、能力和/或委托策略的安全令牌;表 達(dá)資源授權(quán)和委托策略等。
在所述實(shí)現(xiàn)中,SecPAL是用于以靈活且易處理的方式表達(dá)安全措施的聲 明性的基于邏輯的語言。它可以是綜合的,且它可提供用于表達(dá)信任關(guān)系、 授權(quán)策略、委托策略、身份和屬性斷言、能力斷言、撤銷、審計(jì)要求等的統(tǒng)一 機(jī)制。該統(tǒng)一性在使安全方案可理解且可分析方面提供切實(shí)的好處。該統(tǒng) 一機(jī)制還通過允許避免、至少顯著減少不同安全技術(shù)之間的語義轉(zhuǎn)換和調(diào)停的 需求而提高安全保證。
SecPAL實(shí)現(xiàn)可包括以下示例特征的任何一個(gè)[l]SecPAL可相對容易 地理解。它可使用允許其斷言作為英語語句閱讀的定義句法。而且,其語法可以是限制性的,使其僅要求用戶理解少數(shù)具有清楚定義的語義的主語-動(dòng) 詞-賓語(例如,主語-動(dòng)詞短語)構(gòu)造。最后,用于基于斷言的集合對可推
斷事實(shí)求值的算法可依賴于少數(shù)相對簡單的規(guī)則。SecPAL可在其實(shí)現(xiàn)中利用行業(yè)標(biāo)準(zhǔn)基礎(chǔ)架構(gòu)以便于其在現(xiàn)有系統(tǒng)中 的采用和集成。例如,可使用可擴(kuò)展標(biāo)記語言(XML)句法,這是來自形式 模型的直接映射。這允許使用標(biāo)準(zhǔn)語法分析器和句法正確性確認(rèn)工具。它 也允許對完整性、來源證明和機(jī)密性使用W3CXML數(shù)字簽名和加密標(biāo)準(zhǔn)。SecPAL可通過支持分布式策略授權(quán)和合成而允許分布式策略管理。 這允許靈活地適應(yīng)不同的操作模型管控,其中基于所分派的管理責(zé)任來創(chuàng)作策 略或策略的部分。使用標(biāo)準(zhǔn)方法來數(shù)字地簽署和加密策略對象使其能夠安全 分發(fā)。[4]SecPAL允許高效且安全的求值。對輸入的簡單的句法檢査足以 確保求值將會(huì)終止并產(chǎn)生正確的答案。SecPAL可提供用于支持所要求的策略、授權(quán)決策、審計(jì)和用于身份管 理的公鑰基礎(chǔ)架構(gòu)(PKI)的訪問控制要求的完整解決方案。相反,大多數(shù) 其他方法僅能關(guān)注和解決這些安全問題范圍內(nèi)的一個(gè)子集。[6]SecPAL出于 多個(gè)目的可以具有充分的表達(dá)力,這些目的包括但不限于處理網(wǎng)格環(huán)境和其 他類型的分布式系統(tǒng)的安全問題。以維護(hù)語言語義和求值性質(zhì)同時(shí)允許適應(yīng) 特定系統(tǒng)的需求的方式來啟用可擴(kuò)展性。
圖5是示出用于一般安全方案的示例斷言格式500的框圖。在本文其他 部分描述的實(shí)現(xiàn)中使用的安全方案斷言可以不同于示例斷言格式500。然而, 斷言格式500是安全方案斷言的一個(gè)示例格式的基本圖示,且它提供理解一般 安全方案的各個(gè)方面的所述示例實(shí)現(xiàn)的基礎(chǔ)。
如在斷言格式500的最上行所示,概況層的示例斷言包括主體 (principal)部分502、說(say)部分504以及主張(claim)部分506。 文 字上,概括層的斷言格式500可被表示為主沐說主/《。
在斷言格式500的下一行,主張部分506被分成示例組成部分。因此, 示例主張部分506包括事實(shí)(fact)部分508,如果(if)部分510, "n" 個(gè)條件事實(shí)部分508(1...n)以及c部分512。下標(biāo)"n"表示某一整數(shù)值。 如圖例524所示,c部分512表示約束部分。盡管僅示出單個(gè)約束,但c部
12分512實(shí)際上可表示多個(gè)約束(例如,Cl, ...,cw)。 如果部分510右側(cè)的條 件事實(shí)部分508(1...n)和約束512(1…m)的集合可被稱為前提。
文字上,主張部分506可表示為,實(shí)如果事,1,...事實(shí)11," 因此, 整個(gè)斷言格式500在文字上可如下表示主沐說如果事實(shí),,...事實(shí)n, c,則事
實(shí)。然而,斷言可被簡化為主沐說事實(shí)。在斷言的這一縮寫的三部分
形式中,略去了以如果部分510開始并延及c部分512的條件部分。
每一事實(shí)部分508還可被細(xì)分成其各個(gè)組成部分。示例組成部分有e
部分514和動(dòng)詞短語部分516。 如圖例524所示,e部分514表示表達(dá)式部
分。文字上,事實(shí)部分508可表示為e動(dòng)諒短語。
每一 e即表達(dá)式部分514可采用兩個(gè)示例選擇之一。這兩個(gè)示例表達(dá)式
選擇是常量514(c)和變量514(v)。主體可歸入常量514(c)和/或變量514(v)。 每一動(dòng)詞短語部分516也可釆用三個(gè)示例選擇之一。這三個(gè)示例動(dòng)詞短
語選擇是謂詞部分518繼之以一個(gè)或多個(gè)ei...n部分514(1…n)、能夠斷言 (can assert)部分520繼之以事實(shí)部分508、以及別名部分522繼之以表達(dá)式
部分514。 文字上,這三個(gè)動(dòng)詞短語選擇分別可被表示為謂詞e, ... e 、
能夠斷言^^、以及別名e。整數(shù)"n"可對事實(shí)508(1...n)和表達(dá)式514(1…n)
取不同的值。
一般,SecPAL語句是安全主體作出的斷言形式的。安全主體一般由密 鑰標(biāo)識(shí),以使其可跨系統(tǒng)邊界認(rèn)證。在其最簡單的形式中,斷言陳述,主體 相信事實(shí)是有效的(例如,如由包括事實(shí)部分508的主張506所表示)。他 們也陳述,如果一個(gè)或多個(gè)其他事實(shí)有效且滿足某組條件,則一事實(shí)有效(例 如,如由從事實(shí)部分508延及如果部分510以及條件事實(shí)部分508(1...n)到c 部分512的主張506所表示)。也可能存在沒有任何約束512的條件事實(shí) 508(1...n)和/或沒有任何條件事實(shí)508(1…n)的約束512。
在所述實(shí)現(xiàn)中,事實(shí)是關(guān)于主體的陳述。在本節(jié)中此處描述了四種示例 類型的事實(shí)陳述。首先,事實(shí)可陳述,主體具有用"動(dòng)作動(dòng)詞"對資源行使 動(dòng)作的權(quán)利。示例動(dòng)作動(dòng)詞包括但不限于調(diào)用、發(fā)送、讀取、列表、執(zhí)行、 寫入、修改、追加、刪除、安裝、擁有等。資源可由統(tǒng)一資源指示符(URI) 或任何其他方法標(biāo)識(shí)。
13其次,事實(shí)可使用"擁有"動(dòng)詞來表達(dá)主體標(biāo)識(shí)符與一個(gè)或多個(gè)屬性之間 的綁定。示例屬性包括但不限于電子郵件名、通用名、組名、角色頭銜、 帳戶名、域名服務(wù)器/服務(wù)(DNS)名、網(wǎng)際協(xié)議(IP)地址、設(shè)備名、應(yīng)用程 序名、組織名、服務(wù)名、帳戶標(biāo)識(shí)/標(biāo)識(shí)符(ID)等。第三種示例類型的事 實(shí)是可使用"別名"動(dòng)詞定義兩個(gè)主體標(biāo)識(shí)符來表示同一主體。
"限定詞"或事實(shí)限定詞可作為以上三種事實(shí)類型的任一種的一部分而被 包括。限定詞使得斷言者能指示如果認(rèn)為事實(shí)有效則它相信應(yīng)成立的環(huán)境參 數(shù)(例如,時(shí)間、主體位置等)。這樣的陳述可基于這些限定詞的值在斷言 者和依賴方的有效性檢査之間清楚地分開。
第四種示例類型的事實(shí)由"能夠斷言"動(dòng)詞定義。這種"能夠斷言"動(dòng) 詞提供用于表達(dá)信任關(guān)系和委托的靈活且強(qiáng)大的機(jī)制。例如,它允許一個(gè)主
體(A)陳述其相信第二主體(B)斷言的某些類型的事實(shí)的意愿。例如,
給定斷言"^說^能夠斷言^^r/'以及"^說^^r/',可得到A相信事實(shí)()
有效的結(jié)論從而可推斷"J說事^T/'。
這樣的信任和委托斷言可以是(i)無邊界的且是傳遞的以許可下游委托, 或者(ii)有邊界的以阻止下游委托。盡管可對"能夠斷言"類型事實(shí)應(yīng)用 限定詞,但對這些"能夠斷言"類型事實(shí)省略對限定詞的支持可顯著地簡化給 定安全方案的語義和求值安全性質(zhì)。
在所述實(shí)現(xiàn)中,可陳述具體的事實(shí),或可使用變量寫出策略表達(dá)式。變 量是類型化的,且可以是無限制的(例如,允許匹配正確類型的任何具體值) 或有限制的(例如,要求基于指定的模式匹配具體值的子集)。
安全授權(quán)決策基于針對來自適用的安全策略(例如,安全策略220)和安 全令牌(例如, 一個(gè)或多個(gè)安全令牌204)的斷言集合(例如,斷言上下文) 的授權(quán)查詢的求值算法(例如,可在授權(quán)引擎218處進(jìn)行的那些算法)。授 權(quán)查詢是組合事實(shí)和/或條件的邏輯表達(dá)式,其可能會(huì)變得相當(dāng)復(fù)雜。這些邏 輯表達(dá)式例如包括對事實(shí)的與、或和/或非邏輯運(yùn)算,帶有或不帶有伴隨的條件 和/或約束。
該對授權(quán)查詢的方法提供用于定義在對給定動(dòng)作授權(quán)之前什么是必須已 知且有效的靈活機(jī)制。查詢模板(例如來自授權(quán)査詢表224)形成總的安全方案的一部分,且允許對不同類型的訪問請求和其他操作/動(dòng)作聲明性地陳述適 當(dāng)?shù)氖跈?quán)查詢。
安全微產(chǎn)餘游示鄉(xiāng)觀
現(xiàn)有的安全策略語言遵循兩種方法之一。某些阻止以任何方式在任何時(shí) 間使用否定。該方法的確減少了可能因否定而引起的伴隨的不一致性和不確 定性。然而,它由于呈現(xiàn)了眾多太難以處理的安全情形且某些安全情形根本 無法處理而也有局限性。另一方法對否定的使用沒有施加限制。盡管該方 法更為靈活,但它呈現(xiàn)了建立難解甚至非確定性的安全策略的可能性。
相比,所述實(shí)現(xiàn)創(chuàng)建了具有多層的安全方案。在一分支安全方案實(shí)現(xiàn)中, 例如有兩層。第一層禁止使用否定。這可例如使用對句法的確認(rèn)來實(shí)施。 第二層允許使用否定。該分支安全方案將確保安全斷言易處理且可確定的安
全性和確定性與處理排他安全規(guī)則的靈活性組合在一起。
圖6是示出具有第一層和第二層的示例分支安全方案600的框圖。如圖 所示,第一層包括斷言層602,第二層包括査詢層604。 斷言層602包括多 個(gè)斷言606和句法確認(rèn)器614。 查詢層604包括具有多個(gè)部分的示例授權(quán)査 詢616。 這多個(gè)部分的示例包括但不限于所斷言的事實(shí)608以及邏輯運(yùn)算 符610和612。
在所述實(shí)現(xiàn)中,斷言層602以斷言606填充。斷言606可以是斷言層處 任何類型的聲明性安全陳述。斷言606的示例包括但不限于令牌斷言和策 略斷言。(這兩個(gè)斷言類型在圖7中分開且明確地示出。)在安全斷言606 內(nèi)不允許否定。句法確認(rèn)器614分析每一斷言606以檢查是否存在否定。如 果在給定斷言606內(nèi)存在否定,則拒絕或不允許給定斷言606。
查詢層604以諸如示例授權(quán)查詢616等授權(quán)査詢填充。查詢層606的授 權(quán)查詢被允許包括否定,諸如非運(yùn)算符612。 授權(quán)査詢可按照任何方式結(jié)構(gòu) 化。盡管未在圖6中明確示出,但授權(quán)查詢一般可包括一個(gè)或多個(gè)邏輯約束。
在示例授權(quán)查詢616中,查詢被結(jié)構(gòu)化成布爾邏輯運(yùn)算。這樣的布爾邏 輯運(yùn)算可包括任何數(shù)目的所斷言的事實(shí)608、任何數(shù)目的邏輯運(yùn)算符等。這 些所斷言的事實(shí)、邏輯運(yùn)算符等可按照任何方式組合。示例邏輯運(yùn)算符包括 但不限于與、或、非等。如圖所示,示例授權(quán)查詢616包括三個(gè)所斷言的事實(shí)608、兩個(gè)與運(yùn)算符610、 一個(gè)非運(yùn)算符612。
所斷言的事實(shí)608是否為真取決于是否可推斷出有效的匹配斷言606。 當(dāng)該匹配判斷過程完成之后,即對得到的邏輯布爾運(yùn)算求值。在示例授權(quán)查 詢616的情況中,在應(yīng)用與運(yùn)算符610之前,對最右端的所斷言的事實(shí)608的 真/假判定應(yīng)用非運(yùn)算符612。如果整個(gè)布爾運(yùn)算求值為真,則授權(quán)決策是肯 定的。如果布爾運(yùn)算的總的求值為假,則授權(quán)決策是否定的。
斷言606和授權(quán)查詢(例如,示例授權(quán)查詢616)之間的示例相互關(guān)系以 下在圖7-10的描述中呈現(xiàn)。響應(yīng)于請求來查明授權(quán)査詢,該請求可包括一 個(gè)或多個(gè)斷言606或以其他方式與這些斷言相關(guān)聯(lián)。然后結(jié)合包括斷言606 在內(nèi)的總的斷言上下文對授權(quán)查詢求值。斷言上下文一般包括令牌斷言和策 略斷言。
圖7是示出示例授權(quán)査詢查明和示例授權(quán)查詢求值的一般框圖700。 框 圖700包括來自圖2和3的多個(gè)安全相關(guān)組件。如圖所示,它包括授權(quán)上下 文212、資源保衛(wèi)214、授權(quán)引擎218以及安全策略220。 安全策略220包含 授權(quán)查詢表224。 授權(quán)引擎218包括求值算法708。
在所述實(shí)現(xiàn)中,授權(quán)上下文212包括斷言上下文702。 斷言上下文702 是斷言606的集合。具體地,斷言上下文702包括令牌斷言606T和策略斷 言606P。 令牌斷言606T從安全令牌(例如,圖2和3的安全令牌204)得 到。安全令牌可作為資源訪問請求的一部分和/或隨之一起傳遞。策略斷言 606P從信任和授權(quán)策略(例如,安全策略220 (圖2)的信任和授權(quán)策略222 模塊)得到。
斷言上下文702被轉(zhuǎn)發(fā)到資源保衛(wèi)214。向資源保衛(wèi)214呈現(xiàn)請求704。 請求704是訪問某一資源的請求。資源保衛(wèi)214將請求轉(zhuǎn)換成操作。該操 作被提供給授權(quán)查詢表224。 授權(quán)查詢表224將資源專用操作映射到授權(quán)查 詢。在一示例實(shí)現(xiàn)中,每一操作與單個(gè)授權(quán)査詢相關(guān)聯(lián)。響應(yīng)于所提供的 操作,安全策略220查明相關(guān)聯(lián)的授權(quán)査詢706,并將授權(quán)査詢706返回到資 源保衛(wèi)214。 使用授權(quán)查詢表224査明授權(quán)查詢706在本文中以下具體參考 圖8進(jìn)一步描述。
因此,資源保衛(wèi)214包括斷言上下文702和授權(quán)查詢706兩者。資源保
16衛(wèi)214將斷言上下文702和授權(quán)查詢706轉(zhuǎn)發(fā)到授權(quán)引擎218的求值算法708。 求值算法708包括能夠結(jié)合斷言上下文702對授權(quán)查詢706求值的邏輯。該 邏輯可用硬件、軟件、固件、其某種組合等實(shí)現(xiàn)。
因此,斷言上下文702在求值算法708中應(yīng)用于授權(quán)査詢706。 在邏輯 分析之后,求值算法708產(chǎn)生授權(quán)決策710。 結(jié)合斷言上下文702對授權(quán)査 詢706求值在本文中以下具體參考圖9進(jìn)一步描述。
一般而言,具有如本文所述的特征的安全語言使得復(fù)雜的訪問控制準(zhǔn)則能 以聲明性的方式編寫起來相對簡單且理解起來相對簡單。它與展示基于輸入 策略和經(jīng)認(rèn)證的請求者數(shù)據(jù)推斷的有效事實(shí)集的任何授權(quán)算法兼容。如本文 中進(jìn)一步描述的,它基于結(jié)合斷言上下文與授權(quán)決策算法組合的授權(quán)査詢的概 念。
在所述實(shí)現(xiàn)中, 一般,授權(quán)查詢包括所斷言的事實(shí)集以及約束。所斷言 的事實(shí)是"J說事^實(shí)"形式的。它們表達(dá)可以(例如,從斷言上下文)推斷 匹配的有效斷言的要求。如果這一匹配的有效斷言己知,則所斷言的事實(shí)得 到滿足,且求值為布爾值真;否則,它求值為假。(在某些實(shí)現(xiàn)中,事實(shí)的 斷言者可基于求值上下文隱含地已知。在這些情況中,它可被略去。)約 束是返回布爾值的表達(dá)式。它可包括在所斷言的事實(shí)以及對環(huán)境值(例如, 時(shí)間、位置等)的引用中使用的變量。約束一般用于表達(dá)變量等同性和不等 同性。
每一查詢中存在至少一個(gè)所斷言的事實(shí)。如果存在多個(gè)所斷言的事實(shí), 則它們可使用諸如與、或和非等邏輯運(yùn)算符組合??扇芜x的約束與所斷言的 事實(shí)進(jìn)行邏輯與。
該方法的結(jié)果是基本訪問控制策略可按照關(guān)于每一主體被授權(quán)的訪問的 肯定陳述來寫出,而不顧及較高層的結(jié)構(gòu)要求。因此,在多主體策略中,可 編寫陳述每一主體對資源應(yīng)潛在具有何種權(quán)限的每一策略。這樣的安全策略 就添加新策略陳述不會(huì)移除任何現(xiàn)有的訪問權(quán)限而言是單調(diào)的。而且,可編 寫指示主體對資源集具有何種權(quán)限的肯定訪問策略而不必顧慮潛在的沖突或 不一致性。授權(quán)査詢提供用于組合這些訪問控制規(guī)則的較高層語義。
例如,如果為對"Foo"準(zhǔn)許讀訪問而要求(0用戶具有電子郵件地址
17"fabrikam.com",以及(ii)應(yīng)用程序具有代碼摘要值"ABC",則訪問控制 規(guī)則可寫為如下
力說如果p擁有淑斧名,承(^/^r汰a肌com))則/ 讀尸oo ^說如果擁有K撒要,^SQ則讀Foo
為確保用戶和應(yīng)用程序均是經(jīng)認(rèn)證的請求者, 一個(gè)示例授權(quán)査詢?yōu)?爿說W讀Foo與爿說v/擁有r((冶f漱伴名,*)}與Z說度Foo與乂說 激有{(摘要,*)}
類似地,為要求具有電子郵件地址"fabrikam.com"的兩個(gè)授權(quán)的主體請 求訪問"Foo",可寫出以下安全策略
^說如果; 擁有^ 斧名,承(g/^r汰aw,cow))則;?讀Foo,
且它可與以下授權(quán)査詢組合
爿說讀Foo與」說; 2讀尸oo與(/ / !=; 2)。
在以上授權(quán)查詢中,指示"pl"變量不等于"p2"變量的部分是約束。
拒絕或排除可使用該方法來適當(dāng)處理。例如,如果給定組^的成員能讀 訪問Foo,且組S的成員能讀訪問5ar,但不允許同時(shí)訪問??捎脦в腥缦?的兩個(gè)策略斷言的安全策略啟用所需訪問
^說如果;?擁有〃{教^則;?讀Foo
^說如果p擁有K教,則則讀
然后可使用以下授權(quán)查詢實(shí)施排除
04說v讀Foo或X說v讀A4i )與非04說v讀Foo與^說v讀BJi )。
以類似方式,可排除同時(shí)承擔(dān)兩個(gè)角色、同時(shí)對給定資源具有多個(gè)訪問權(quán) (例如,讀和刪除)等。
圖8是示出響應(yīng)于資源訪問請求704的示例授權(quán)查詢查明800的更具體的 框圖。如圖所示,授權(quán)查詢査明800包括具有所標(biāo)識(shí)的資源802的請求704、 轉(zhuǎn)換功能804、操作806、授權(quán)查詢表224和授權(quán)查詢706。 授權(quán)查詢査明 800涉及接收請求704作為輸入,以及產(chǎn)生相關(guān)聯(lián)的授權(quán)査詢706作為輸出。
在所述實(shí)現(xiàn)中,請求704是訪問某一所標(biāo)識(shí)的資源802的請求。請求 704經(jīng)由轉(zhuǎn)換功能804被轉(zhuǎn)換成資源專用操作806。 該轉(zhuǎn)換功能804例如可 由資源保衛(wèi)214 (圖7)執(zhí)行。資源專用操作的示例作為示例而非限制包括(0對文件讀和/或?qū)懀?ii)通過通信端口發(fā)送數(shù)據(jù),(iii)利用處理器,(iv)
執(zhí)行應(yīng)用程序等。
一般而言,操作806被提供給授權(quán)査詢表224。 例如,安全策略220可 負(fù)責(zé)將操作806應(yīng)用于授權(quán)查詢表224并檢索相關(guān)聯(lián)的授權(quán)查詢706。 作為 結(jié)果產(chǎn)生授權(quán)查詢706,并將其返回給資源保衛(wèi)214。
更具體地,授權(quán)査詢表224包括多個(gè)字段808。 每一字段808將資源專 用操作映射到相關(guān)聯(lián)的授權(quán)查詢模板。如圖所示,在授權(quán)査詢表224中有 "f"個(gè)字段808(1)、 808(2) ... 808(f), f是某一整數(shù)。檢索到的授權(quán)査詢模 板被返回給資源保衛(wèi)214。 資源保衛(wèi)214然后執(zhí)行代入過程以產(chǎn)生授權(quán)查詢 706。 換言之,為創(chuàng)建授權(quán)査詢706,資源保衛(wèi)214將實(shí)際進(jìn)行請求的主體、 實(shí)際所請求的資源等代入相關(guān)聯(lián)授權(quán)査詢模板的預(yù)定的相應(yīng)槽中。
圖9是示出給定斷言上下文702*情況下的示例授權(quán)查詢求值708*的更具 體的框圖。如以上參考圖7概括描述,求值算法708接收授權(quán)査詢706和斷 言上下文702。 在圖9的具體示例授權(quán)求值708*中,結(jié)合具體示例斷言上下 文702*對具體示例授權(quán)査詢706*求值。實(shí)際斷言上下文702、授權(quán)查詢706 和求值算法708可與這些示例不同。
如圖所示,示例授權(quán)查詢求值708*包括示例斷言上下文702*、示例授權(quán) 查詢706*、得到的布爾運(yùn)算910和答案912。 斷言上下文702*包括(i)三 個(gè)令牌斷言606T-l、606T-2和606T-3,以及(ii)兩個(gè)策略斷言606P-1和606P-2。 示例授權(quán)查詢706*包括三個(gè)所斷言的事實(shí)608-1、 608-2和608-3;兩個(gè)與運(yùn)算 符610; —個(gè)非運(yùn)算符612;以及一個(gè)約束902。
在求值期間,授權(quán)引擎218 (圖7)試圖確定是否可對授權(quán)査詢706*的每 一所斷言的事實(shí)608推斷有效的匹配斷言606。 該匹配判定過程可以是迭代 的、遞歸的、和/或在一個(gè)有效斷言導(dǎo)致另一可能有效的斷言時(shí)為分叉的。在 某一預(yù)定時(shí)間段之后,匹配判斷過程收斂。
圖9的示例授權(quán)査詢求值708*示出了便于大體理解對授權(quán)査詢求值的概 念基礎(chǔ)的簡化的求值算法。更具體且技術(shù)上準(zhǔn)確的說明以下在圖9的描述之 后呈現(xiàn)。而且, 一個(gè)示例實(shí)現(xiàn)的相對嚴(yán)格的邏輯描述在本文中以下在圖10 的描述之后呈現(xiàn)。在示例授權(quán)査詢求值708*中,授權(quán)引擎208確定令牌斷言606T-2是有效 的且匹配904所斷言的事實(shí)608-1 。 還確定策略斷言606P-2是有效的且匹配 906所斷言的事實(shí)608-2,令牌斷言606T-3是有效的且匹配908所斷言的事實(shí) 608-3。盡管令牌斷言606T-1和策略斷言606P-1未明確匹配特定的所斷言的 事實(shí)608,但它們可能己在匹配判定過程中使用了。 另外,關(guān)于約束902作 出真/假判斷。
在匹配判斷過程之后和/或期間,執(zhí)行真/假替換過程以創(chuàng)建布爾運(yùn)算910。 如果特定的所斷言的事實(shí)608具有匹配的有效斷言606,則用"真"替換特定 的所斷言的事實(shí)608。如果不是,則用"假"替換該特定的所斷言的事實(shí)608。 同樣地,用其確定的"真"或"假"狀態(tài)替換任何約束902。 盡管未對授權(quán) 查詢706*明確示出,但約束902與授權(quán)查詢的其余部分進(jìn)行邏輯與。
例如,授權(quán)查詢求值708*、授權(quán)查詢706*在文字上可如下表示所斷言 的事實(shí)608-1,與運(yùn)算符610,所斷言的事實(shí)608-2,與運(yùn)算符610,非運(yùn)算符612, 所斷言的事實(shí)608-3,以及約束902。在替換過程之后,得到的布爾運(yùn)算在文 字上可如下表示真與真與非真與真。這可縮減成真與真與假與真,這 是邏輯假。
結(jié)果,布爾運(yùn)算910的答案912為"假"。因此,授權(quán)決策710是拒絕 請求。另一方面,如果例如對所斷言的事實(shí)608-3沒有匹配908斷言606, 則布爾運(yùn)算910將被縮減成真與真與真與真,這是邏輯真。在這種情況 中,答案912將為"真",且授權(quán)決策710將是允許請求。盡管未明確示出 或描述,但存在布爾運(yùn)算910將求值為邏輯假的其他排列(例如,如果確定對 所斷言的事實(shí)608-2沒有有效且匹配906的斷言606)。
此處描述用于對授權(quán)查詢求值的技術(shù)上更為準(zhǔn)確的示例實(shí)現(xiàn)。首先,一 次一個(gè)地對授權(quán)查詢內(nèi)的所斷言的事實(shí)求值,而不必在完整的替換過程之前一 次對所有事實(shí)進(jìn)行。其次,授權(quán)査詢內(nèi)單個(gè)所斷言的事實(shí)的求值返回使該所 斷言的事實(shí)為真的變量代入集。因此, 一般而言,所返回的值不是立即為真 /假狀態(tài),因?yàn)槭聦?shí)實(shí)際上被表示具有關(guān)于給定變量代入的真/假狀態(tài)。
如果授權(quán)查詢內(nèi)的兩個(gè)所斷言的事實(shí)之間的連接詞為與(如圖9的示例中 的情況),則左邊事實(shí)所返回的值(即,該代入集)被應(yīng)用于右邊的事實(shí)。之
20后,按需對右邊的事實(shí)求值。得到的代入集然后通過代入合成來組合。對 整個(gè)授權(quán)査詢求值的結(jié)果是代入集,代入集的每一代入能夠使授權(quán)査詢?yōu)檎妗?圖IO是示出用于査明授權(quán)查詢并對其求值的方法的示例的流程圖1000。
流程圖1000包括十一(11)個(gè)框1002-1022。 盡管可在其他環(huán)境中以及采用各 種硬件/軟件/固件組合來執(zhí)行流程圖1000的動(dòng)作,但使用圖1-9的某些特征、 組件和方面來示出該方法的示例。例如,資源保衛(wèi)214、授權(quán)查詢表224和/ 或授權(quán)引擎218可單獨(dú)或共同實(shí)現(xiàn)流程圖1000的動(dòng)作。
在所述實(shí)現(xiàn)中,在框1002,接收訪問資源的請求。例如,可接收標(biāo)識(shí) 資源802的請求704。 在框1004,將請求轉(zhuǎn)換成對資源的操作。例如,資 源保衛(wèi)214可將請求704轉(zhuǎn)換804成資源專用操作806。
在框1006,操作被提供給授權(quán)查詢表。例如,資源專用操作806可被 提供給授權(quán)査詢表224。 在框1008,査明與該操作相關(guān)聯(lián)的授權(quán)查詢。例 如,可定位包括資源專用操作806的字段808。 然后可從所定位的字段806 檢索相關(guān)聯(lián)的授權(quán)查詢。
更具體地,檢索到的授權(quán)査詢可包括授權(quán)査詢模板?;谟烧埱笳咛峁?的安全令牌,相關(guān)聯(lián)的授權(quán)查詢模板通過將實(shí)際的主體、資源等代入到授權(quán)査 詢模板的預(yù)定相應(yīng)槽中而被轉(zhuǎn)化成授權(quán)查詢。在一示例實(shí)現(xiàn)中,了解來自請 求704的實(shí)際變量信息的資源保衛(wèi)214通過代入執(zhí)行該轉(zhuǎn)化。
在框1010,在求值算法中組合斷言上下文和授權(quán)查詢。例如,斷言上 下文702和授權(quán)査詢706可被共同提交給求值算法708。
在框1012,在匹配判定過程中,斷言上下文的有效斷言被匹配到授權(quán)査 詢的所斷言的事實(shí)。例如,在匹配判定過程中,被發(fā)現(xiàn)為有效的、可從斷言 上下文702推斷(即,原始存在于其中和/或以其他方式從其得到)的一個(gè)或多 個(gè)令牌斷言606T和/或策略斷言606P可試圖匹配904/906/908到所斷言的事實(shí) 608。 還分析授權(quán)査詢706的任何約束部分902以確定它們是真還是假。如 以上在技術(shù)描述中所述,可單獨(dú)和/或順序分析每一斷言。
在框1014,響應(yīng)于匹配判定過程執(zhí)行對授權(quán)査詢的真/假替換。例如, 在布爾運(yùn)算910中,被確定為具有有效匹配斷言606的所斷言的事實(shí)608可用 真替換,而未被確定為具有有效匹配斷言606的所斷言的事實(shí)608可用假替換。應(yīng)理解,框1014的動(dòng)作可按照與框1012的動(dòng)作的執(zhí)行全部或部分重疊的方式 執(zhí)行。
在框1016,對授權(quán)査詢邏輯求值。例如,可作為求值算法708的一部 分對布爾運(yùn)算910邏輯求值,以確定其答案為真還是假。應(yīng)理解,布爾運(yùn)算 910的結(jié)果無需用真或假狀態(tài)替換每一所斷言的事實(shí)608和/或約束902就可被 確定,而且確實(shí)被確定。
在框1018,確定授權(quán)查詢邏輯求值是否為"真"。如果是,則框1020 處的授權(quán)決策是該請求被準(zhǔn)許。另一方面,如果確定授權(quán)查詢邏輯求值為 "假",則框1022處的授權(quán)決策是請求被拒絕。應(yīng)理解,可能具有"真" 狀態(tài)的授權(quán)査詢的算法求值可返回使授權(quán)査詢?yōu)?真"的一組變量。
也可從相對嚴(yán)格的邏輯觀點(diǎn)描述安全授權(quán)査詢。在安全授權(quán)查詢的所述 邏輯實(shí)現(xiàn)中,通過查詢包含本地以及導(dǎo)入的斷言的斷言上下文來決定授權(quán)請 求。在一示例實(shí)現(xiàn)中,授權(quán)可包括J說事—實(shí)形式的原子查詢和約束c的集合。 這些原子查詢和約束由包括否定在內(nèi)的邏輯連接詞組合。示例邏輯連接詞包 括以下
《:=e說享實(shí)
I《/,《2 I《/或& I非(9) I c
得到的査詢語言比其中僅考慮原子?xùn)嗽兊钠渌谶壿嫷恼Z言表達(dá)力更 強(qiáng)。例如,可通過將原子查詢與否定和約束組合來表達(dá)責(zé)任的分離、閾值和 拒絕策略。在語言的斷言層不允許否定,因?yàn)閷⒎穸ê瓦f歸語言耦合會(huì)導(dǎo)致 語義的歧義,且通常導(dǎo)致計(jì)算更為復(fù)雜甚至不可判定。通過將否定的使用限 于授權(quán)査詢層(而非將這些特征添加到斷言語言本身),將否定與遞歸有效地 分開,從而繞開了與否定通常相關(guān)聯(lián)的問題。
查詢的語義由關(guān)系JC刀卜《限定。以下,令JC為斷言上下文。而且, 令0為代入,令e為空代入。令Dow(0為代入e的域。如果X是句法短 語,則令^w(^)為X中出現(xiàn)的變量集。授權(quán)查詢的示例形式語義如下
22」C"卜e說事實(shí) 如果W說事實(shí)e可從^C推斷,
v4C,Ae2卜w,w 如果^C,A卜^且v4C刀2卜《^i
」C"卜&或《2 如果卜^或」C,e卜《2
^C,s卜非(W 如果^C,e卜《不成立且0
JC,e卜c 如果F^5fc) = 0^ c是有效的。
給定查詢《和授權(quán)上下文」c,授權(quán)算法返回代入e的集合,使得^c,e卜
《。如果查詢不包含變量(ground),則答案集或者為空(意味著"不",請求 被拒絕)或包含空代入e的單元素集(意味著"是",請求被準(zhǔn)許)。如果 査詢包含變量,則答案集中的代入是使查詢?yōu)檎娴淖兞抠x值。
關(guān)于授權(quán)査詢表,它們可以是本地安全策略的一部分,且可與命令性代碼 保持分開。該表通過將參數(shù)化的方法名映射到查詢而提供對授權(quán)查詢的接 口。 在請求時(shí),資源保衛(wèi)調(diào)用由該表映射到授權(quán)査詢的方法(例如,代替直 接發(fā)出査詢),該査詢?nèi)缓笥糜诓樵償嘌陨舷挛摹?br>
例如,授權(quán)查詢表可包含以下示例映射
canAuthorizePayment(請求者,支/力
,邀^說譜求者擁有5a"&Mfl"ageW£)"
非(,遭員說鑌求孝已啟動(dòng)支/力。
如果A/ce試圖對支付尸qymw"7授權(quán),則資源保衛(wèi)調(diào)用 canAuthorizePayment04/,ce, _Pa_ywew"7), 這角蟲發(fā)以下查詢 ,潘_^說擁有^m&Mawager/D /c/, 非(,^^說力/ce已啟動(dòng)Paywe""7)。
得到的答案集(例如,或者是請求應(yīng)被拒絕的情況下的空集,或者是 的變量賦值)被返回給資源保衛(wèi),后者然后可實(shí)施策略。
也可從相對嚴(yán)格的邏輯觀點(diǎn)描述安全授權(quán)査詢的形式求值。以下描述假 定存在另一算法,該算法返回對其從授權(quán)上下文^C可推斷出"e說事實(shí)"形 式的給定陳述的代入集。這樣的算法例如可依賴于將^C轉(zhuǎn)換成諸如Datalog 等另一邏輯語言。對授權(quán)查詢定義函數(shù)^^/^"&c,如下
爿W/^"^cfe說/a"」={61 W說事實(shí)0可從推斷血,/^4muc (非(《))
{ e } 如果 raMfe)= 0且」"http://^"&cfe)= 00 如果 ^^fe)= 0且^W/^"^c(^" 0未定義,其他
v4"^4"&c(c)= {e}如果&^(^)= 0且 c有效
=0如果FwVc戶0且c不是有效的=未定義,其他
以下定理示出v4w^4"&c是用于對安全授權(quán)查詢求值的算法。該定理表示授權(quán)查詢求值的有限性、可靠性和完全性對所有安全斷言上下文^C和安全授權(quán)查詢《,
1. Zw^4"^cf^被定義且是有限的,且
2. ^卜《當(dāng)且僅當(dāng)ee爿w^4"&c W。
圖1-10中的設(shè)備、動(dòng)作、方面、特征、功能、過程、模塊、數(shù)據(jù)結(jié)構(gòu)、協(xié)議、組件等都在分為多個(gè)框的示意圖中得到闡明。然而,描述和/或示出圖1-10的次序、互連、相互關(guān)系、布局等不旨在被解釋為限制,任何數(shù)目的這些框可按照任何方式被修改、組合、重新排列、增加、省略等,以實(shí)現(xiàn)用于安全授權(quán)査詢的一個(gè)或多個(gè)系統(tǒng)、方法、設(shè)備、過程、介質(zhì)、裝置、API、協(xié)議、安排等。
盡管系統(tǒng)、介質(zhì)、設(shè)備、方法、過程、裝置、機(jī)制、方案、途徑、進(jìn)程、安排、以及其它實(shí)現(xiàn)都用專用于結(jié)構(gòu)、邏輯、算法、以及功能特征和/或示意圖的語言加以描述,但是應(yīng)該理解在所附權(quán)利要求中定義的本發(fā)明不必限于以上描述的具體特征或動(dòng)作。相反,上述具體特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式公開的。
權(quán)利要求
1. 一種包括包含授權(quán)查詢表的安全方案的系統(tǒng),其中所述授權(quán)查詢表包括多個(gè)字段,每一字段將資源專用操作映射到相關(guān)聯(lián)的授權(quán)查詢。
2. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述相關(guān)聯(lián)的授權(quán)查詢包括含有一個(gè)或多個(gè)預(yù)定空槽的相關(guān)聯(lián)的授權(quán)查詢模板。
3. 如權(quán)利要求2所述的系統(tǒng),其特征在于,所述安全方案通過將與所述資 源專用操作有關(guān)的實(shí)際主體或?qū)嶋H資源中的至少一個(gè)代入所述一個(gè)或多個(gè)預(yù) 定空槽而將所述授權(quán)查詢模板轉(zhuǎn)換成所述授權(quán)査詢。
4. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述安全方案結(jié)合具有多個(gè)斷 言的斷言上下文來對所述相關(guān)聯(lián)的授權(quán)查詢求值,所述多個(gè)斷言中的至少一個(gè) 斷言與所述資源專用操作相關(guān);且其中所述安全方案還包括不允許具有否定元 素的任何斷言的句法確認(rèn)器。
5. 如權(quán)利要求4所述的系統(tǒng),其特征在于,所述授權(quán)査詢表包括含有包括 否定運(yùn)算符的授權(quán)査詢的至少一個(gè)字段。
6. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述安全方案向授權(quán)引擎提供 所述相關(guān)聯(lián)的授權(quán)查詢和具有多個(gè)斷言的斷言上下文,所述斷言上下文包括多 個(gè)斷言,至少一個(gè)斷言與所述資源專用操作相關(guān);且其中所述授權(quán)引擎結(jié)合所 述斷言上下文對所述相關(guān)聯(lián)的授權(quán)查詢求值以作出授權(quán)決策。
7. 如權(quán)利要求6所述的系統(tǒng),其特征在于,所述相關(guān)聯(lián)的授權(quán)査詢包括多 個(gè)所斷言的事實(shí);且其中所述授權(quán)引擎試圖將從所述斷言上下文推斷出的有效 斷言匹配到所述相關(guān)聯(lián)的授權(quán)査詢的所斷言的事實(shí)。
8. 如權(quán)利要求7所述的系統(tǒng),其特征在于,所述相關(guān)聯(lián)的授權(quán)查詢的各個(gè)所斷言的事實(shí)在可從所述斷言上下文推斷出有效的匹配斷言時(shí)可用"真"布爾 狀態(tài)來有效地替換,而在不能從所述斷言上下文推斷出有效匹配斷言時(shí)可用 "假"布爾狀態(tài)來有效地替換。
9. 如權(quán)利要求8所述的系統(tǒng),其特征在于,如果可用"真"布爾狀態(tài)來有 效地替換個(gè)別所斷言的事實(shí),則所述授權(quán)引擎產(chǎn)生能夠使所述個(gè)別所斷言的事 實(shí)為真的變量代入集。
10. —種在安全方案中有授權(quán)査詢表的方法,所述方法包括 向所述授權(quán)查詢表提供資源專用操作;以及使用所述授權(quán)查詢表查明與所述資源專用操作相關(guān)聯(lián)的授權(quán)查詢。
11. 如權(quán)利要求IO所述的方法,其特征在于,還包括 在資源保衛(wèi)模塊處接收代表主體訪問標(biāo)識(shí)的資源的請求;以及 在所述資源保衛(wèi)模塊處將所述請求轉(zhuǎn)換成所述資源專用操作; 其中所述提供和所述查明是由安全策略模塊實(shí)現(xiàn)的。
12. 如權(quán)利要求11所述的方法,其特征在于,所查明的授權(quán)查詢包括 含有一個(gè)或多個(gè)預(yù)定空槽的授權(quán)査詢模板;且其中所述方法還包括在所述資源保衛(wèi)模塊處通過將所標(biāo)識(shí)的資源和所述主體代入所述一個(gè)或 多個(gè)預(yù)定空槽中而將所述授權(quán)査詢模板轉(zhuǎn)換成所査明的授權(quán)查詢。
13. 如權(quán)利要求IO所述的方法,其特征在于,還包括將(i)從所述資源專用操作得到的斷言上下文和(ii)所査明的授權(quán)查詢 應(yīng)用于求值算法;將所述斷言上下文的有效斷言匹配到所査明的授權(quán)查詢的所斷言的事實(shí); 響應(yīng)于所述匹配,對所查明的授權(quán)査詢執(zhí)行真/假替換過程; 在所述執(zhí)行之后,對所查明的授權(quán)査詢進(jìn)行邏輯求值; 如果所查明的授權(quán)査詢邏輯求值為真,則決定授權(quán)所述資源專用操作;以及如果所査明的授權(quán)査詢邏輯求值為假,則決定拒絕所述資源專用操作。
14. 一種實(shí)現(xiàn)具有第一層和第二層的分支安全方案的設(shè)備,其中所述第 一層不允許使用否定,所述第二層許可使用否定。
15. 如權(quán)利要求14所述的設(shè)備,其特征在于,所述第一層包括斷言層。
16. 如權(quán)利要求15所述的設(shè)備,其特征在于,所述斷言層由令牌斷言和策略斷言來填充。
17. 如權(quán)利要求15所述的設(shè)備,其特征在于,所述分支安全方案包括 不允許包含否定的任何斷言的句法確認(rèn)器。
18. 如權(quán)利要求14所述的設(shè)備,其特征在于,所述第二層包括查詢層。
19. 如權(quán)利要求18所述的設(shè)備,其特征在于,所述查詢層由至少從所 斷言的事實(shí)和邏輯運(yùn)算符形成的授權(quán)査詢來填充;其中所述邏輯運(yùn)算符包括 與、或和非;且其中每一授權(quán)查詢與一資源專用操作相關(guān)聯(lián)。
20. 如權(quán)利要求14所述的設(shè)備,其特征在于,所述第一層包括由斷言 填充的斷言層;所述第二層包括由至少從所斷言的事實(shí)形成的授權(quán)查詢填充的 查詢層;且其中所述分支安全方案通過試圖將來自所述斷言層的有效斷言匹配 到特定的授權(quán)査詢的一個(gè)或多個(gè)所斷言的事實(shí)而對所述特定的授權(quán)査詢求值。
全文摘要
在一示例實(shí)現(xiàn)中,一分支安全方案具有不允許使用否定的第一層和允許使用否定的第二層。在另一示例實(shí)現(xiàn)中,一授權(quán)查詢表將各個(gè)資源專用操作映射到相應(yīng)的相關(guān)聯(lián)授權(quán)查詢。在又一示例實(shí)現(xiàn)中,允許授權(quán)查詢具有否定,但不允許個(gè)別斷言具有否定。
文檔編號H04L9/32GK101512504SQ200780033322
公開日2009年8月19日 申請日期2007年9月5日 優(yōu)先權(quán)日2006年9月8日
發(fā)明者A·D·戈登, B·B·迪拉韋, C·富爾內(nèi), M·Y·貝克 申請人:微軟公司