專利名稱::采用邏輯消解的安全語言轉(zhuǎn)換的制作方法采用邏輯消解的安全語言轉(zhuǎn)換背景計(jì)算機(jī)和其他電子設(shè)備遍布人們的職業(yè)和個(gè)人生活。在職業(yè)設(shè)置中,人們?cè)陧?xiàng)目協(xié)作期間交換和共享機(jī)密信息。在個(gè)人設(shè)置中,人們參與電子商務(wù)以及個(gè)人信息的傳輸。在這些和其他眾多情況中,電子安全措施被認(rèn)為是重要的。電子安全措施范例可令職業(yè)信息保持機(jī)密以及個(gè)人信息保持私密。電子安全措施范例可涉及某種水平的加密和/或針對(duì)諸如病毒、蠕蟲和間諜軟件等惡意軟件的保護(hù)。信息的加密以及針對(duì)惡意軟件的保護(hù)歷來受到極大的關(guān)注,尤其是近幾年來。然而,控制對(duì)信息的訪問是保護(hù)電子信息安全性同等重要的方面。對(duì)于其中受益于電子信息的共享和/或傳送的情形尤其如此。在這樣的情形中,某些人被準(zhǔn)許訪問,而其他人要被排除在外。訪問控制自早期的共享系統(tǒng)用來就是共享計(jì)算機(jī)和應(yīng)用程序服務(wù)器的共同特征。存在用于控制對(duì)信息的訪問的多種不同的方法。它們?cè)诮M合對(duì)請(qǐng)求對(duì)某一資源的訪問的實(shí)體的認(rèn)證以及授權(quán)所允許的訪問的機(jī)制方面享有共同的基礎(chǔ)。認(rèn)證機(jī)制包括口令、Kerberos、以及x.509證書。其目的在于允許進(jìn)行資源控制的實(shí)體肯定地標(biāo)識(shí)進(jìn)行請(qǐng)求的實(shí)體或它所需的關(guān)于實(shí)體的信息。授權(quán)示例包括訪問控制列表(ACL)以及基于策略的機(jī)制,諸如可擴(kuò)展訪問控制標(biāo)記語言(XACML)或特權(quán)和角色管理基礎(chǔ)架構(gòu)(PERMIS)。這些機(jī)制定義哪些實(shí)體可訪問給定的資源,諸如文件系統(tǒng)中的文件、硬件設(shè)備、數(shù)據(jù)庫信息等。它們通過提供關(guān)于請(qǐng)求者的認(rèn)證信息以及所允許的對(duì)資源的訪問之間的映射來執(zhí)行這種授權(quán)。隨著計(jì)算機(jī)系統(tǒng)越來越普遍地連接到諸如-因特網(wǎng)等大型網(wǎng)絡(luò)上,這些機(jī)制被證實(shí)在處理日益發(fā)展的訪問控制要求方面稍有限制和不靈活。地理上散布的用戶和計(jì)算機(jī)資源的系統(tǒng),包括橫跨多個(gè)行政區(qū)域的那些系統(tǒng)尤其提出了當(dāng)前部署的技術(shù)解決不好的多個(gè)挑戰(zhàn)。概述安全語言構(gòu)造可被轉(zhuǎn)換成邏輯語言構(gòu)造,反之亦然。邏輯消解可例如使用邏輯語言構(gòu)造來實(shí)現(xiàn)。在一示例實(shí)現(xiàn)中,描述了將安全語言斷言轉(zhuǎn)換成至少一個(gè)邏輯語言規(guī)則。在另一示例實(shí)現(xiàn)中,描述了將反映一邏輯語言的證明圖轉(zhuǎn)換成反映一安全語言的證明圖。在又一示例實(shí)現(xiàn)中,描述了使用確定性算法對(duì)邏輯語言程序的求值。提供本概述以便以簡(jiǎn)化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概念。該概述不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護(hù)的主題的范圍。而且,其它方法、系統(tǒng)、方案、裝置、設(shè)備、介質(zhì)、過程、API、安排、協(xié)議等的實(shí)現(xiàn)也在此得到描述。附圖簡(jiǎ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是示出具有允許分散授權(quán)策略的靈活指定和實(shí)施的安全語言的示例安全方案的框圖。圖7是示出用于檢査安全語言的安全性以保證授權(quán)査詢求值高效完成的方法的示例的流程圖。圖8是示出用于將安全語言轉(zhuǎn)換成邏輯語言的方法的示例的流程圖。圖9是示出具有列表的示例確定性求值算法的框圖。圖10是示出在求值算法期間產(chǎn)生并包括圖片段的示例邏輯語言證明圖的框圖。圖11是示出用于將邏輯語言證明圖轉(zhuǎn)換成安全語言證明圖的方法的示例的流程圖。圖12A和12B分別是用于條件語義規(guī)則的邏輯語言和相應(yīng)的安全語言的示例證明片段的框圖。圖13A和13B分別是用于委托語義規(guī)則的邏輯語言和相應(yīng)的安全語言的示例證明片段的框圖。圖14A和14B分別是用于別名語義規(guī)則的邏輯語言和相應(yīng)的安全語言的示例證明片段的框圖。詳細(xì)描述示伊皮郝裙圖1是示出其中可以實(shí)現(xiàn)示例安全方案100的示例一般環(huán)境的框圖。安全方案IOO表示進(jìn)行保護(hù)的集成方法。如圖所示,安全方案IOO包括多個(gè)安全概念安全令牌100(A)、安全策略100(B)、以及求值引擎100(C)。一般,安全令牌100(A)、安全策略100(B)共同提供對(duì)求值引擎100(C)的輸入。求值引擎100(C)接受輸入,并產(chǎn)生指示應(yīng)許可還是拒絕對(duì)某一資源的訪問的授權(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ò)、Wi-Fi網(wǎng)絡(luò)、\\^4八乂@網(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)對(duì)應(yīng)于正與之交互的用戶106。設(shè)備102(2)對(duì)應(yīng)于正在其上執(zhí)行的服務(wù)108。設(shè)備102(3)與資源IIO相關(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)對(duì)應(yīng)于實(shí)體208。設(shè)備102(B)與資源110相關(guān)聯(lián)。盡管安全方案100可在更復(fù)雜的環(huán)境中實(shí)現(xiàn),但使用該相對(duì)簡(jiǎ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的請(qǐng)求,并有效地管理與設(shè)備102(B)的其9他安全相關(guān)組件的認(rèn)證和授權(quán)過程。如其名所指示,信任和授權(quán)策略222包括針對(duì)在安全環(huán)境200內(nèi)信任實(shí)體和授權(quán)動(dòng)作的策略。信任和授權(quán)策略222可例如包括安全策略斷言(未在圖2明確示出)。授權(quán)查詢表224將諸如訪問請(qǐng)求等所請(qǐng)求的動(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)行請(qǐng)求的實(shí)體,授權(quán)上下文212還從信任和授權(quán)策略222收集安全策略斷言。這些收集的斷言在授權(quán)上下文212中形成斷言上下文。因此,授權(quán)上下文212可包括除各種斷言以外的其他信息。來自授權(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)訪問請(qǐng)求。審計(jì)日志216包含審計(jì)信息,諸如所請(qǐng)求的資源110的標(biāo)識(shí)和/或由授權(quán)引擎218執(zhí)行的算法求值邏輯。圖3是示出其中在安全相關(guān)組件之間交換示例安全相關(guān)數(shù)據(jù)的示例安全環(huán)境200的框圖。交換安全相關(guān)數(shù)據(jù)以支持示例訪問請(qǐng)求操作。在此示例訪問請(qǐng)求操作中,實(shí)體208希望使用應(yīng)用程序210訪問資源110,并用安全令牌204指示其這樣做的授權(quán)。因此,應(yīng)用程序210向資源保衛(wèi)214發(fā)送訪問請(qǐng)求*。在圖3的該描述中,星號(hào)(即"*")指示所述安全相關(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)前訪問請(qǐ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)許訪問*資源110取決于該授權(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)請(qǐ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è)備;以上參考圖1列出的設(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ì)11組成。換言之,介質(zhì)408可包括可由處理器406執(zhí)行以由設(shè)備102實(shí)現(xiàn)功能的執(zhí)行的處理器可執(zhí)行指令410。因此,安全相關(guān)實(shí)現(xiàn)的實(shí)行可以在處理器可執(zhí)行指令的通用上下文中描述。一般而言,處理器可執(zhí)行指令包括例程、程序、應(yīng)用程序、代碼、模塊、協(xié)議、對(duì)象、組件、元數(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的長(zhǎng)期大容量存儲(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)是以相對(duì)非正式的方式描述的,且僅作為示例。它具有解決創(chuàng)建端對(duì)端解決方案時(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可相對(duì)容易地理解。它可使用允許其斷言作為英語語句閱讀的定義句法。而且,其語法可被限制成僅要求用戶理解少數(shù)具有清楚定義的語義的主語動(dòng)詞賓語(例如,主語動(dòng)詞短語)構(gòu)造。最后,用于基于斷言的集合對(duì)可推斷事實(shí)求值的算法可依賴于少數(shù)相對(duì)簡(jiǎn)單的規(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)工具。它也允許對(duì)完整性、來源證明和機(jī)密性使用W3CXML數(shù)字簽名和加密標(biāo)準(zhǔn)。SecPAL可通過支持分布式策略授權(quán)和合成而允許分布式策略管理。這允許靈活地適應(yīng)不同的操作模型管控,其中基于所分派的管理責(zé)任來創(chuàng)作策略或策略的部分。使用標(biāo)準(zhǔn)方法來數(shù)字地簽署和加密策略對(duì)象使其能夠安全分發(fā)。[4]SecPAL允許高效且安全的求值。對(duì)輸入的簡(jiǎn)單的句法檢查足以確保求值將會(huì)終止并產(chǎn)生正確的答案。SecPAL出于多個(gè)目的可以具有充分的表達(dá)力,這些目的包括但不限于處理網(wǎng)格環(huán)境和其他類型的分布式系統(tǒng)的安全問題。以維護(hù)語言語義和求值性質(zhì)同時(shí)允許適應(yīng)特定系統(tǒng)的需求的方式來啟用可擴(kuò)展性。圖5是示出用于一般安全方案的示例斷言格式500的框圖。在本文其他部分描述的實(shí)現(xiàn)中使用的安全方案斷言可以不同于示例斷言格式500。然而,斷13言格式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í)i.』部分508(l…n)以及c部分512。下標(biāo)"n"表示某一整數(shù)值。如圖例524所示,c部分512表示約束部分。盡管僅示出單個(gè)約束,但c部分512實(shí)際上可表示多個(gè)約束(例如,q,...,cj。如果部分510右側(cè)的條件事實(shí)部分508(1...n)和約束512(1...m)的集合可被稱為前提。文字上,主張部分506可表示為因此,整個(gè)斷言格式500在文字上可如下表示主沐說如果事實(shí)h...事實(shí)n,C,則,實(shí)。然而,斷言可被簡(jiǎn)化為主沐說事—實(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』部分514(l…n)、能夠斷言(canassert)部分520繼之以事實(shí)部分508、以及別名部分522繼之以表達(dá)式部分514。文字上,這三個(gè)動(dòng)詞短語選擇分別可被表示為謂詞q...e"、能夠斷言事^實(shí)、以及別名e。整數(shù)"n"可對(duì)事實(shí)508(1...n)和表達(dá)式514(1...n)取不同的值。一般,SecPAL語句是安全主體作出的斷言形式的。安全主體一般由密鑰標(biāo)識(shí),以使其可跨系統(tǒng)邊界認(rèn)證。在其最簡(jiǎ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)詞"對(duì)資源行使動(dòng)作的權(quán)利。示例動(dòng)作動(dòng)詞包括但不限于調(diào)用、發(fā)送、讀取、列表、執(zhí)行、寫入、修改、追加、刪除、安裝、擁有等。資源可由統(tǒng)一資源指示符(URI)或任何其他方法標(biāo)識(shí)。其次,事實(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í)的意愿。例如,給定斷言"」說5能夠斷言以及"^說事^T/',可得到A相信事實(shí)()有效的結(jié)論從而可推斷"」說事^r/'。這樣的信任和委托斷言可以是(i)無邊界的且是傳遞的以許可下游委托,或者(ii)有邊界的以阻止下游委托。盡管可對(duì)"能夠斷言"類型事實(shí)應(yīng)用限定詞,但對(duì)這些"能夠斷言"類型事實(shí)省略對(duì)限定詞的支持可顯著地簡(jiǎn)化給定安全方案的語義和求值安全性質(zhì)。在所述實(shí)現(xiàn)中,可陳述具體的事實(shí),或可使用變量寫出策略表達(dá)式。變量是類型化的,且可以是無限制的(例如,允許匹配正確類型的任何具體值)或有限制的(例如,要求基于指定的模式匹配具體值的子集)。15安全授權(quán)決策基于針對(duì)來自適用的安全策略(例如,安全策略220)和安全令牌(例如,一個(gè)或多個(gè)安全令牌204)的斷言集合(例如,斷言上下文)的授權(quán)査詢的求值算法(例如,可在授權(quán)引擎218處進(jìn)行的那些算法)。授權(quán)查詢是組合事實(shí)和/或條件的邏輯表達(dá)式,其可能會(huì)變得相當(dāng)復(fù)雜。這些邏輯表達(dá)式例如包括對(duì)事實(shí)的與、或和/或非邏輯運(yùn)算,帶有或不帶有伴隨的條件和/或約束。該對(duì)授權(quán)査詢的方法提供用于定義在對(duì)給定動(dòng)作授權(quán)之前什么是必須已知且有效的靈活機(jī)制。査詢模板(例如來自授權(quán)査詢表224)形成總的安全方案的一部分,且允許對(duì)不同類型的訪問請(qǐng)求和其他操作/動(dòng)作聲明性地陳述適當(dāng)?shù)氖跈?quán)査詢。菜微辦働安全語諫層示縱觀安全在現(xiàn)代計(jì)算系統(tǒng)中是至關(guān)重要的??捎糜糜诖_定經(jīng)授權(quán)的訪問的高效、有高度保障且靈活的機(jī)制來促進(jìn)安全。這可使用基于策略的方法來實(shí)現(xiàn)。在這樣的系統(tǒng)中,策略可改為反映當(dāng)前需求而不必改變用于作出和實(shí)施訪問決策的底層代碼?,F(xiàn)有的方法不能完全滿足這些需求,尤其是在復(fù)雜的分布式計(jì)算環(huán)境中。諸如ACL等簡(jiǎn)單的基于規(guī)則的策略是非常高效的,但不夠靈活。諸如XACML等更復(fù)雜的基于規(guī)則的策略系統(tǒng)以較不高效的求值為代價(jià)提供更多的靈活性。而且,這樣的基于規(guī)則的策略系統(tǒng)仍有功能限制(例如,缺乏對(duì)委托的支持)。常規(guī)的基于邏輯的策略模型一般提供最好的功能,但它們并不是沒有其他問題。這些模型中的某一些沒有提供足夠的求值安全性質(zhì)。換言之,不能保證給定的授權(quán)決策算法會(huì)終止。某些是非常低效的。其他的在理論上是可靠的,但不認(rèn)為在商業(yè)系統(tǒng)中實(shí)現(xiàn)它們是實(shí)際的。需要的是實(shí)現(xiàn)起來實(shí)際、高度靈活且具有必需的確保高效求值以及有保證的終止的求值安全性質(zhì)的基于邏輯的安全策略語言。示例安全策略語言的所述實(shí)現(xiàn)在這些領(lǐng)域中提供改進(jìn)。在以下章節(jié)中,描述了示例安全語言。在許多地方,由于它提供了可由相對(duì)嚴(yán)格的邏輯基礎(chǔ)支持的安全語言模型,所以描述是精確的。提供包括嚴(yán)格邏輯基礎(chǔ)的所述示例實(shí)現(xiàn)以確保理論基礎(chǔ)得到理解。然而,安全語言的任何給定16真實(shí)實(shí)現(xiàn)可能不包括嚴(yán)格邏輯描述的任何具體的各方面(遠(yuǎn)少于全部)。因此,本申請(qǐng)的發(fā)明由權(quán)利要求書而非此處所述的任何特定詳細(xì)實(shí)現(xiàn)限定。1對(duì)邏輯消解的安全語言表達(dá)式的介紹本文提供安全語言的表達(dá)式的多個(gè)示例實(shí)現(xiàn)。實(shí)現(xiàn)被設(shè)計(jì)成使得得到的安全策略可按照高效且特定的方式來邏輯地消解。圖6是示出具有允許分散授權(quán)策略的靈活指定和實(shí)施的安全語言602的示例安全方案600的框圖。安全方案600包括斷言句法604和授權(quán)査詢句法606。安全方案還包括多個(gè)語義規(guī)則608(x)。示例語義規(guī)則包括但不限于條件語義規(guī)則608(1)、委托語義規(guī)則608(2)以及別名語義規(guī)則608(3)。這些語義規(guī)則608(x)共同形成語言語義602。斷言句法604、授權(quán)查詢句法606以及語言語義608均有助于示例安全語言602的形成和管控。安全方案還包括斷言句法安全性檢査610和授權(quán)查詢安全性檢査612。斷言句法安全性檢査610和授權(quán)査詢安全性檢査612可被集成到安全語言602內(nèi)以幫助確保授權(quán)査詢的易處理性。在以下第2節(jié)中,描述了用于安全語言的斷言的示例句法和語義。在第3節(jié)中,描述了用于授權(quán)査詢的示例句法和語義。在第4節(jié)中,描述了用于斷言和授權(quán)查詢的安全原理。這些安全性質(zhì)當(dāng)被正確應(yīng)用時(shí)可保證授權(quán)查詢求值將終止且可確保求值將高效進(jìn)行。2示例安全語言的句法和語義此處描述示例安全語言的核心句法。安全語言的附加句法可允許斷言分組,例如在單個(gè)斷言中委托一系列權(quán)限;然而這樣的附加可被縮減成核心句法。安全語言的示例實(shí)現(xiàn)也可實(shí)施用于常量、函數(shù)和變量的類型化規(guī)定,但此處略去了這一類型化實(shí)施以集中于核心句法。斷言授權(quán)策略被指定為以下形式的斷言集/4說如果事實(shí)b…事實(shí)n,C,則事實(shí)。其中事實(shí)包括陳述主體的性質(zhì)的謂詞,例如某人具有讀文件的權(quán)限。在一示例實(shí)現(xiàn)中,斷言類似于Hom子句,區(qū)別在于(1)它們由發(fā)出和擔(dān)保所斷言的主張的某一主體A鑒定;(2)事實(shí)可使用關(guān)鍵詞能夠斷言來嵌套,經(jīng)由能夠斷言指定了委托權(quán)限;以及(3)斷言中的變量由C約束,C是可表達(dá)例如時(shí)間、非等同性、樹結(jié)構(gòu)、正則表達(dá)式約束等的一階方程。以下列表描述了如本文所使用的斷言句法604的術(shù)語Ae常量(串和整數(shù))xe變量(變量的無窮集)謂詞e謂詞名(謂詞名,例如擁有、能夠)c::=xI」動(dòng)詞短:=潭河e/...e對(duì)《=數(shù)量卩譜錢)語》0I能夠斷言。o事實(shí)(無界、傳遞委托。)I能夠斷言o事實(shí)(單步、非傳遞委托。)I別名e事實(shí):=e動(dòng)諒短語18主張:=如果事實(shí)/,…,事實(shí)巾c,對(duì)某一"^0磨實(shí)斷言:=^說主漲ACf銜享,"."銜,J(斷言上下文)在所述實(shí)現(xiàn)中,變量?jī)H包括串和整數(shù)——而不包括謂詞、事實(shí)、主張或斷言。當(dāng)句法短語不包含變量時(shí),它是基礎(chǔ)(ground)的。集合謂詞名可不包含能夠斷言》、能夠斷言o和別名。函數(shù)和謂詞具有固定的數(shù)量(arity)。謂詞是對(duì)其對(duì)象參數(shù)具有空穴的動(dòng)詞短語。如果它具有多個(gè)詞語,則這些空穴可在其內(nèi)任何固定位置出現(xiàn),例如從[一閨[一]具有訪問權(quán)。在本文的其余部分中,使用^、S、C和D作為常量的元變量,通常用于表示主體。使用向量標(biāo)記來表示項(xiàng)目(可能為空)的列表(或元組),例如可以寫成/T^,對(duì)W。如根據(jù)以上句法定義可見,事實(shí)可被嵌套。嵌套事實(shí)通常是q能夠斷言^...^能夠斷言仏,^^形式的,某一"21,其中事^T是乎廊的,如以下所定義。以下呈現(xiàn)兩個(gè)定義。第一個(gè)定義了平面事實(shí),第二個(gè)定義了斷言的各部分。定義2丄事實(shí)是f廊的,當(dāng)且僅當(dāng)其中沒有出現(xiàn)能夠斷言,否則是莰套的。例如,事實(shí)Alice說Bob可讀/是平面的,但Alice說Charlie能夠斷言cBob可讀/不是平面的。定義2.2.令A(yù)說如果事實(shí)h...,事實(shí)。,c,則事實(shí)為一斷言。則A是其發(fā)出者,而事實(shí)i是其條件事實(shí),c為其約束。該事實(shí)可被認(rèn)為是該斷言的主要事實(shí)或所斷言的事實(shí)。約束約束包括擴(kuò)展了以下所示的示例違:本^^^^凝的任何約束域。基本約束包括整數(shù)非等同性(例如,用于表達(dá)時(shí)間約束)、樹序約束(用于目錄)、以及正則表達(dá)式(例如,用于特設(shè)過濾)?;炯s束的示例如下所述^e常量(串和整數(shù))Xe變量(變量的無窮集)/e函數(shù)名(例如,+、-、currentTime(當(dāng)前時(shí)間))^"式e正則表達(dá)式I^I對(duì)""r輔^0c::真I&^e2I非(??商砑悠渌s束而不會(huì)影響可決定性或顯著影響易處理性。然而,優(yōu)選地能以多項(xiàng)式時(shí)間檢查基礎(chǔ)約束的有效性以維護(hù)所需程度的易處理性。對(duì)可從基本約束得到的約束使用加工標(biāo)記,例如假、e一e2或者d或C2。在斷言中,通常省略真約束,且當(dāng)斷言沒有條件事實(shí)時(shí)也省略如果。語義現(xiàn)在給出語言語義608的形式定義。首先定義基礎(chǔ)表達(dá)式的表示。常量^的表示就是^,因此[[^4//=^。如果()是基礎(chǔ)的,則函數(shù)A-)的表示被定義,且也是常量,但可取決于系統(tǒng)狀態(tài)以及[[:]]。例如,當(dāng)在不同的時(shí)間調(diào)用[CurrentTimeO時(shí),它可能返回不同的常量。然而,假定單個(gè)授權(quán)查詢求值對(duì)于系統(tǒng)狀態(tài)而言是原子的。即,即使表達(dá)式可能被求值多次,但其表示在單20個(gè)求值期間是相同的。對(duì)給定約束C,寫為|內(nèi)的有效性。C,當(dāng)且僅當(dāng)它是有效的。以下定義了基本約束域力625卜e匹配^"式1=非(c)1=c,,e2當(dāng)且僅當(dāng)[[e/]與[[^l]是相等的常量當(dāng)且僅當(dāng)[["]]與[[e2]]是整數(shù)常量且當(dāng)且僅當(dāng)[[M]與[[e2]]是樹常量且]是[[62]]的子孫或與其相等當(dāng)且僅當(dāng)[[e!]是匹配^"式的串常量當(dāng)且僅當(dāng)卜c不成立當(dāng)且僅當(dāng)|=^且|=^在本文的其余部分中,將代入0稱為將變量映射到常量和變量的函數(shù)。代入以自然的方式延及約束、謂詞、事實(shí)、主張、斷言等,且通常用后綴記號(hào)來寫。對(duì)于句法短語Z中出現(xiàn)的變量集寫為。在所述實(shí)現(xiàn)中,安全語言包括三個(gè)推斷規(guī)則。現(xiàn)在呈現(xiàn)這三個(gè)推斷規(guī)則以捕捉語言的語義。每一規(guī)則具有一組前提和單個(gè)推論,形為^C,|=^說事—實(shí),其中Fa^事—^9=0且De{0,oo}。直觀上,如果可從斷言上下文^C中得出該推論,則推斷關(guān)系成立。如果推導(dǎo)標(biāo)志"=0,則推導(dǎo)規(guī)則(能夠斷言)沒有在該推導(dǎo)中使用。條件語義規(guī)則608(1)如下(條件)C4說如果,栗,…,J^,c,貝iJ^"姿,)e^C^C,"卜爿說^"實(shí)々,對(duì)所有的/"L.i:)|=c6>rars(,實(shí)6O二0帶有用于一般委托指示動(dòng)詞的"能夠斷言"動(dòng)詞實(shí)現(xiàn)的委托語義規(guī)則608(2)如下:(能夠斷々)^C,°o|=J說蹄巨夠斷言o事實(shí)^C,D^說事^實(shí)目匕n爿C,ooh^4說事實(shí)別名語義規(guī)則608(3)如下^C,|=^說C動(dòng)河jT語爿C,"|=爿說g別名C《Z)|=」說勵(lì)繊語規(guī)則(條件)允許用常量代入的所有自由變量來推斷^c中的所有匹配斷言。在所述嚴(yán)格邏輯實(shí)現(xiàn)中,條件事實(shí)必須可推斷,且代入還必須使約束有效。委托標(biāo)志o被傳播到所有條件事實(shí)。換言之,給定斷言上下文^C、委托標(biāo)志D、主體^和代入0,如果以下均成立則可得到"^C"h4說事—實(shí)6":(1)在斷言上下文^C中存在規(guī)則"A說如果,實(shí)h...,實(shí)n,c,則事實(shí)";(2)對(duì)"事實(shí)r..."^"實(shí)k"列表中的每一"事—實(shí)i",可得到"爿C,Z)說教^";(3)約束是有效的;且(4)事實(shí)"事^實(shí)e"是基礎(chǔ)的。規(guī)則(能夠斷言)通過組合^作出的能夠斷言斷言以及B作出的匹配斷言而推斷^作出的斷言。在所述嚴(yán)格邏輯實(shí)現(xiàn)中,該規(guī)則在委托標(biāo)志為w時(shí)適用。5作出的匹配斷言必須用從^的能夠斷言斷言獲得委托標(biāo)志D證明。換言之,給定斷言上下文^C、主體j以及事實(shí)事^:,如果存在使以下均成立的主體B和委托標(biāo)志D,則可得到"^C,oo|=j說^^T':(1)可得到"JC,oo|=』說5能夠斷言D事實(shí)";以及(2)可得到"」C,D|=5說事實(shí)"。規(guī)則(別名)陳述了對(duì)C成立的任何事實(shí)對(duì)S也成立。換言之,給定斷言上下文^C、委托標(biāo)志ZX主體」、5和C、以及動(dòng)詞短語"動(dòng)超短語",如果以下均成立則可得到"JC"卜J說5動(dòng)藏短語"(1)可得到"^C,乃h^說C動(dòng)歸/f語";以及(2)可得到"JC,£>|=J說5別名C"。以下命題陳述推斷關(guān)系的基本性質(zhì),它們通過對(duì)以上規(guī)則的歸納而確立。22命題2.3.如果JC,D|=J說事實(shí)貝UP^<#,」=0。命題2.4.如果^C,0|=v4說事實(shí)則^C,oo|=^說,實(shí)。命題2.5.如果^C^D|=^說事實(shí)則對(duì)于所有的」C2成立XC7u12別=^說教。命題2.6.令^C。為中發(fā)出者為^的所有斷言的集合。^C,0說事實(shí),當(dāng)且僅當(dāng)^G,0|=」說事實(shí)。3授權(quán)査詢授權(quán)請(qǐng)求通過查詢斷言上下文(包含本地以及導(dǎo)入的斷言)而決定。在邏輯語言的所述實(shí)現(xiàn)中,^^査嫁可包括形式^說事實(shí)的原子查詢和約束c的集合,由邏輯連接詞組合,并包括否定。示例授權(quán)査詢句法606如下q::=e說享實(shí)I《/,《2I&或《2I非WIc得到的查詢語言比其中僅考慮原子查詢的其他基于邏輯的語言表達(dá)力更強(qiáng)。例如,可通過將原子?xùn)嗽兣c否定和約束組合來表達(dá)責(zé)任的分離、閾值和拒絕策略。在所述實(shí)現(xiàn)中,在斷言語言內(nèi)不允許否定,因?yàn)閷⒎穸ê瓦f歸語言耦合會(huì)導(dǎo)致語義的歧義,且通常導(dǎo)致計(jì)算更為復(fù)雜甚至不可判定。通過將否定的使用限于授權(quán)查詢層(而非將這些特征添加到斷言語言本身),有效地將其與遞歸分開,從而繞開了通常與否定相關(guān)聯(lián)的問題。査詢的語義由關(guān)系^C"卜《限定。在以下,令e為空代入。注意到,否定查詢和約束是基礎(chǔ)的,合取不是可交換的,因?yàn)榈诙嗽兛捎傻谝徊樵兊慕Y(jié)果實(shí)例化。v4C,6卜e說,實(shí)如果^C,oo|=W說且"ow問旦^一說事菊23<formula>formulaseeoriginaldocumentpage24</formula>如果v4C,A卜^且^C,&卜《2&如果^C,6卜^或^C,0卜《2如果^C,e卜《不成HFo一=0如果|=c給定査詢《和授權(quán)上下文JC,授權(quán)算法應(yīng)返回使得卜《的所有代入0的集合。如果查詢是基礎(chǔ)的,則答案集將或者為空(意味著"沒有")或者是包含空代入s的單元素集(意味著"是")。如果查詢包含變量,則答案集中的代入是使查詢?yōu)檎娴乃凶兞抠x值。在下一節(jié)即第4節(jié)中,描述了確保該變量賦值集是有限且有意義的安全條件。以下第9節(jié)給出了用于對(duì)授權(quán)查詢求值的算法。授權(quán)查詢表在概念上,授權(quán)査詢是本地策略的一部分,且可保持與命令性代碼分開。在安全語言的所述實(shí)現(xiàn)中,屬于本地?cái)嘌陨舷挛牡氖跈?quán)査詢被保存在名為授權(quán)査詢表的單個(gè)位置中。該表通過將參數(shù)化的方法名映射到査詢而提供對(duì)授權(quán)査詢的接口。在請(qǐng)求時(shí),資源保衛(wèi)調(diào)用由該表映射到授權(quán)查詢的方法(代替直接發(fā)出査詢),該査詢?nèi)缓笥糜诓樵償嘌陨舷挛?。例如,授?quán)查詢表可包含以下映射管理員說獰求吝擁有BankManagerID試非(管理員說請(qǐng)求孝已啟動(dòng)支/力。如果Alice試圖對(duì)支付Payment47授權(quán),例如資源保衛(wèi)調(diào)用canAuthorizePayment(Alice,Payment47),這觸發(fā)以下查詢管理員說Alice擁有BankManagerIDW,非(管理員說Alice已啟動(dòng)Payment47)。得到的答案集(或者是請(qǐng)求應(yīng)被拒絕的情況下的空集,或者是的變量賦值)被返回給資源保衛(wèi),后者然后可根據(jù)授權(quán)決策實(shí)施策略。4安全性24在安全語言的示例實(shí)現(xiàn)中,要求無論輸入是什么,授權(quán)算法都會(huì)終止并返回關(guān)于所述語義的完整答案集。在沒有進(jìn)一步限制的情況下,這并不能得到保證,因?yàn)榧s束域不是約束緊湊的。因此,在所述實(shí)現(xiàn)中,對(duì)斷言和査詢實(shí)施相對(duì)簡(jiǎn)單、純粹是句法的限制。定義4丄(斷言安全性檢査610(圖6)):令A(yù)說如果事"實(shí)i,…,事—實(shí),c,則事實(shí)為一斷言。變量xe)P^^事實(shí)j是安全游,當(dāng)且僅當(dāng)xefW教"u…u教J。斷言A說如果事—實(shí)h…,事—實(shí)",C,則事實(shí)是安全的,當(dāng)且僅當(dāng)1.如果事^是平面的,則P^^事菊中的所有變量都是安全的;否則(即,事JT是e能夠斷言o事^實(shí)'形式的J,則e的所有變量是安全的,或者更具體地,e或者是安全變量或者是常量。2.Fa一」G^y〖事實(shí)」u「—事Du…u3.事^實(shí)7,事實(shí)是平面的。安全斷言的一些示例有-^說^能讀Fooj說如果S能x少,則S能讀Foo^說如果5能x_y,x#》則B能讀Foo^說如果B能;c》則B能x少爿說如果z能xFoo,z能讀_y,則z能x;;」說5能夠斷言x能yz^"安全斷言的一些示例有爿說S能xFoo說如果B能x_y,則z能讀Foo爿說如果5能x_y,w#_y,則5育巨讀Foo^說如果萬能斷言C能x》則S能^說w能夠斷言;c能;;z安全條件保證如下在第8節(jié)中所述的邏輯語言轉(zhuǎn)換的求值將在所有情況下終止且是完全的。而且,安全條件允許在第8節(jié)的求值算法內(nèi)簡(jiǎn)單地處理約束只要查詢是平面的,且約束的所有變量在處理?xiàng)l件謂詞時(shí)被全部實(shí)例化,使得約束不必被傳播,且無需實(shí)現(xiàn)復(fù)雜的約束求解算法。現(xiàn)在對(duì)授權(quán)查詢定義在假定斷言上下文中的斷言是安全的情況下保證代入集是有限的安全條件。而且,條件確保非(^或C形式的子查詢?cè)谇笾禃r(shí)將是基礎(chǔ)的,如第9節(jié)中所定義的,假定具有合取傳播的從左向右的求值規(guī)則。首先釆用/||^:0形式的判斷,定義推斷關(guān)系l卜,其中g(shù)是査詢,而/,O是變量集。直觀上,集合/表示因査詢上下文而為基礎(chǔ)的變量,o表示因查詢而為基礎(chǔ)的變量。以下推斷關(guān)系提供基于推論規(guī)則對(duì)授權(quán)査詢的句法檢査612(圖6)。如果上部被證明,則下部也可被認(rèn)為被證明。安全斷言推論規(guī)則是事實(shí)是平面的/b說事實(shí)K"M(e說事,)-/安全合取推論規(guī)則是安全析取推論規(guī)則是jH:q/|卜《2:6>2/|卜《或《2:0,n02安全否定推論規(guī)則是安全約束推論規(guī)則是Far*)g/4~c:0定義4.2.(授權(quán)査詢安全性612(圖6)):授權(quán)查詢《是安全的,當(dāng)且僅當(dāng)存在使0|卜《,o的變量集o。檢查安全性可通過遞歸地遍歷所有子查詢從而構(gòu)造集合CK這總是由查詢和/唯一確定)來完成。在下表中提供安全和不安全查詢的示例在以下示例中,","和"或"是左結(jié)合的。<table>tableseeoriginaldocumentpage27</column></row><table>圖7是示出用于檢查安全語言的安全性以保證授權(quán)査詢求值高效完成的方法的示例的流程圖700。流程圖700包括三個(gè)(3)"主要"框702-706以及四個(gè)(4)"輔助"框702(l)/(2)/(3)以及704(1-5)。盡管可在其他環(huán)境中以及采用各種硬件/軟件/固件組合來執(zhí)行流程圖700的動(dòng)作,但使用圖1-6的某些特征、組件和方面來示出該方法的示例。在所述實(shí)現(xiàn)中,在框702,檢查斷言上下文中的斷言的安全性。例如,可對(duì)斷言上下文^C中的每一斷言應(yīng)用定義4.1。從而,在框702(1),驗(yàn)證斷言的初始變量是安全的。例如,可應(yīng)用定義4.1的部分(l)。例如,初始變量是變量,實(shí)(如果事^"是平面的)或者表達(dá)式e的變量(如果事^^是平面的)。在框702(2),驗(yàn)證在斷言中的其他位置是否也有任何約束變量存在。例如,可應(yīng)用定義4.1的部分(2)。在框702(3),驗(yàn)證條件事實(shí)是否為平面的。例如,可應(yīng)用定義4.1的部分(3)。在框704,檢査授權(quán)查詢的安全性。例如,可對(duì)授權(quán)査詢應(yīng)用定義4.2。在框704(1-5),取決于授權(quán)查詢的句法,對(duì)授權(quán)查詢應(yīng)用安全推論規(guī)則中的一個(gè)或多個(gè)以確認(rèn)遵循并確保查詢的安全性。示例推論規(guī)則有斷言、合取、析取、否定和約束。如果斷言上下文檢查(框702)失敗或授權(quán)査詢檢查(框704)失敗,則可中止求值算法以避免嘗試對(duì)不會(huì)終止或不會(huì)完成的斷言上下文和/或授權(quán)査詢求值。在成功檢查了安全性(框702和704)之后,則在框706,則結(jié)合斷言上下文對(duì)授權(quán)查詢求值。5斷言期滿和撤銷在安全語言的所述實(shí)現(xiàn)中,有效期可被表達(dá)為普通的動(dòng)詞短語參數(shù)UCambridge說如果currentTime()^31/12/2007,貝UAlice是學(xué)生直到31/12/2007有時(shí),應(yīng)由接受者指定有效期或設(shè)置其自己的有效時(shí)間跨度要求。在這種情況中,斷言可僅包含日期而不必實(shí)施UCambridge說Alice是學(xué)生直到31/12/2007接受者然后可使用日期以對(duì)斷言的有效性實(shí)施其自己的基于時(shí)間的約束管理員說x享有折扣,如果x是學(xué)生直到^icurrentTime()《/i/激/7激一currentTime()《1年在其所排定的有效期之前,斷言可能需要被撤銷。如果由于顯式信任的發(fā)出者的密鑰泄密而必需撤銷,則撤銷可通過向依賴方通知密鑰不再被信任來完成。依賴方然后移除表達(dá)對(duì)該密鑰的顯式信任的策略。但更常見的是發(fā)出者需要撤銷它曾經(jīng)作出的斷言。這可能是由于與斷言所相關(guān)的主體相關(guān)聯(lián)的密鑰的泄密、主體關(guān)系中的某種改變(例如,雇傭關(guān)系的改變)或?qū)χ黧w方的惡意行為。例如,如果Alice從其大學(xué)退學(xué),則以上示例中的斷言必須被撤銷。假定每個(gè)斷言M與標(biāo)識(shí)符(例如,序列號(hào))/Z^相關(guān)聯(lián)。撤銷(以及撤銷的委托)然后可在所述實(shí)現(xiàn)中用帶有動(dòng)詞短語撤銷/Z^的撒徵銜^達(dá)。例如,撤銷斷言^說如果currentTime()>31/7/2007,則^撤銷撤銷了由^發(fā)出且具有標(biāo)識(shí)符/D,但僅在2007年7月31之后的所有斷—、,定義5丄(撤銷斷言)如果一斷言是安全的且是以下形式的,則它是撒齢総^說如果C,則^撤銷/£或^說&能夠斷言!M...A能夠斷言Dn如果C,則^撤銷/D。給定斷言上下文^C和撤銷斷言集JC,ev,其中^CnJCrev=0,在對(duì)授權(quán)查詢求值之前移除」C中由^C^撤銷的所有斷言。過濾后的斷言上下文被定義為爿C—/M|Me爿C,爿是M的發(fā)出者,且^C柳,《|=」說爿撤銷/Z)J^C與^c沒有交集的條件意味著撤銷斷言不能被撤銷(至少在安全語言的所述實(shí)現(xiàn)內(nèi))。允許撤銷斷言被彼此撤銷會(huì)引起與邏輯編程中否定體謂詞相同的問題和語義歧義。盡管這些問題可在形式上克服,例如通過僅允許可分層的撤銷集或通過計(jì)算有根據(jù)的模型,但這些方法對(duì)鼓勵(lì)其在商業(yè)系統(tǒng)中的使用而言不夠簡(jiǎn)單。6對(duì)采用邏輯消解的安全語言轉(zhuǎn)換的介紹如本文中以上所述的安全語言的示例實(shí)現(xiàn)提供用于以人可高度理解的形式表達(dá)安全策略的機(jī)制。而且,可針對(duì)安全性檢査安全語言。然而,也需要評(píng)估安全策略以作出授權(quán)決策。為此,可利用現(xiàn)有的邏輯語言。存在隨時(shí)間開發(fā)并被全面測(cè)試的現(xiàn)有邏輯語言。也存在可用于這些邏輯語言的有用工具。適用的示例邏輯語言是Datalog,尤其是受約束的Datalog。然而,替換地也可以利用其它邏輯語言。本文中描述了允許這樣的現(xiàn)有邏輯語言用于安全語言的技術(shù)和機(jī)制。安全語言可被轉(zhuǎn)換成邏輯語言,如第7節(jié)中所述。第8節(jié)描述了帶有以邏輯語言執(zhí)29行的列表的求值算法。求值算法可產(chǎn)生采用邏輯語言的證明圖。在第9節(jié)中,描述了用于將反映邏輯語言的證明圖轉(zhuǎn)換成反映安全語言的證明圖的技術(shù)。因此,可按照安全語言分析包括求值算法的授權(quán)過程。7轉(zhuǎn)換成邏輯語言用于所述安全語言的示例斷言語義由第2節(jié)的三個(gè)推斷規(guī)則定義。該語義比已被提出的按照到某種形式的形式邏輯的轉(zhuǎn)換來定義的語義更易于理解且更為直觀。然而,能夠高效地將安全語言斷言上下文轉(zhuǎn)換成等價(jià)的邏輯語言程序是有用的。然后可對(duì)査詢求值利用已知的復(fù)雜性結(jié)果(例如,多項(xiàng)式數(shù)據(jù)復(fù)雜性)并使用經(jīng)轉(zhuǎn)換的邏輯語言程序,這將在第8節(jié)中描述?,F(xiàn)在描述用于將安全斷言上下文轉(zhuǎn)換成等價(jià)的邏輯語言程序的算法。僅作為示例,安全斷言上下文被轉(zhuǎn)換成受約束的Datalog程序。在下文中,將q說k事^^形式的表達(dá)式作為Datalog謂詞對(duì)待,其中A或者是變量或者是O或oo。這可被看成是謂詞的加工標(biāo)記,其中謂詞名是出現(xiàn)在表達(dá)式中的所有中綴運(yùn)算符(說、能夠斷言、別名、撤銷和謂詞名)的串的串接,包括能夠斷言的下標(biāo)。謂詞的自變量是這些中綴運(yùn)算符之間所收集的表達(dá)式。例如,表達(dá)式^說kX能夠斷言^^能夠斷言()S別名z是以下斷言的簡(jiǎn)略表示說—能夠—斷言—無窮大_能夠—斷言—零_別名(4&;c,乂5,力。算法7丄斷言上下文的轉(zhuǎn)換如下進(jìn)行1.如果事實(shí)c是平面的,則斷言v4說如果,實(shí)h...事實(shí)n,C,則事實(shí)。被轉(zhuǎn)換成規(guī)則^說k事實(shí)。.—^說k說k^"實(shí)",c其中A是新變量。2.否則,如果事—實(shí)c是以下形式的對(duì)某一2l,其中,^r是平面的。令^^教且/^,歸斷言Ki對(duì)/e{0..n—l}。注意到,事實(shí)。=畝二。則斷言J說如果事實(shí)h…事實(shí)m,C,則,實(shí)0被轉(zhuǎn)換成如下的《+1個(gè)Datalog規(guī)則的集合。(a)添加Datalog規(guī)則爿說k宙,t—^說k,實(shí)/,…,乂說k事實(shí)m,C其中A是新變量。(b)對(duì)每一/e{i..n},添加Datalog規(guī)則a說》事;,.'-x說K"a說①x能夠斷言KMA其中x是新變量。3.最后,對(duì)以上創(chuàng)建的如下形式的每一Datalog規(guī)則^說ke動(dòng)歸哲語一...添加規(guī)則^說kX動(dòng)塚嚴(yán)語一...^說ki別名e,^說ke動(dòng)坷短語其中x是新變量。注意A不是新變量,而是取自原始規(guī)則的常量或變量。圖8是示出用于將安全語言轉(zhuǎn)換成邏輯語言的方法的示例的流程圖800。流程圖800包括七(7)個(gè)框802-814。盡管可在其他環(huán)境中以及采用各種硬件/軟件/固件組合來執(zhí)行流程圖800的動(dòng)作,但使用圖1-6的某些特征、組件和方面來示出該方法的示例。流程圖800至少部分表示以上的算法7.1。在所述實(shí)現(xiàn)中,在框802,從斷言上下文提取帶有所斷言的事實(shí)以及零或多個(gè)條件事實(shí)的安全語言斷言。在框804,確定所斷言的事實(shí)是否是平面的。如果是,則在框806,斷言被轉(zhuǎn)換成具有一主要事實(shí)以及零或多個(gè)副條件的邏輯語言規(guī)則。例如,可執(zhí)行算法7.1的部分1。主要事實(shí)對(duì)應(yīng)于所斷言的事實(shí),31而副條件對(duì)應(yīng)于條件事實(shí)。為清楚起見使用這些不同的術(shù)語以在文字上區(qū)分邏輯語言程序的各部分以及安全語言斷言上下文的各部分。在另一方面,如果所斷言的事實(shí)沒有被確定(在框804)為是平面的,則安全斷言由框808和810轉(zhuǎn)換。如果事實(shí)不是平面的,則斷言是具有至少一個(gè)委托指示動(dòng)詞(例如,能夠斷言、能夠說等)的委托斷言。在框808,(例如,向成長(zhǎng)的邏輯語言程序)添加具有主要事實(shí)和零或多個(gè)副條件的邏輯規(guī)則。例如,可執(zhí)行算法7.1的部分2(a)。在框810,對(duì)安全語言斷言中所斷言的事實(shí)的每一委托指示動(dòng)詞,添加具有無界委托深度和表示被委托方的新變量的邏輯語言規(guī)則。更具體地,新變量表示正對(duì)其委托權(quán)限的主體。例如,可執(zhí)行算法7.1的部分2(b)。在框812,對(duì)具有采用己創(chuàng)建(在框806或808/810)的表達(dá)式的所斷言的事實(shí)的每一邏輯語言,將具有別名能力以及表示別名的對(duì)象的新變量的另一邏輯語言規(guī)則添加到邏輯語言程序。例如,可執(zhí)行算法7.1的部分3。在框814,從而產(chǎn)生對(duì)應(yīng)于安全語言斷言上下文的輸入斷言的邏輯語言程序段。對(duì)給定斷言上下文中的每一斷言重復(fù)流程圖800中的動(dòng)作。步驟2a和2b中斷言的示例轉(zhuǎn)換如下^說S能夠斷言①y能夠斷言oC能讀z,如果少能讀Foo被轉(zhuǎn)換成^說k^能夠斷言。y能夠斷言。C能讀z:—X說j能讀Foo」說矽能夠斷言oC能讀z:—x說ooy能夠斷言。C能讀z,^說^x能夠斷言。^能夠斷言oC能讀z^說》C能讀z:—x說gC能讀z,^說。oX能夠斷言oC能讀z最后,在步驟3中,還添加以下規(guī)則乂說①x能夠斷言①y能夠斷言。C能讀z:—力說kX別名5,32^說kB能夠斷言。oj能夠斷言oC能讀Z^說。^能夠斷言oC能讀z:—^說kX別名》^說《7能夠斷言()C能讀z爿說oox能讀z:—^說k:c別名C,^說ooC能讀z定義7.2.(后果運(yùn)算符)羞^^^菜^:#/^:7>是基礎(chǔ)謂詞集之間的函數(shù),且被定義成"e/,是有效的運(yùn)算符7>是單調(diào)且連續(xù)的,且其最小固定點(diǎn)77(0)包含可從尸推斷出的所有基礎(chǔ)事實(shí)。;^潘7.丄(可靠性和完全性)令P為斷言上下文^C中的Datalog轉(zhuǎn)換。^說D,實(shí)er/(0),當(dāng)且僅當(dāng)JC,"卜J說事實(shí)。8帶有列表的邏輯語言求值在上一節(jié)中,示出可如何將安全的安全語言斷言的集合轉(zhuǎn)換成等價(jià)的至少部分安全的受約束的Datalog程序。在推斷數(shù)據(jù)庫的上下文中,X寸Datalog求值最經(jīng)常使用的是自底向上方法。在那里,僅計(jì)算程序的模型或其最小固定點(diǎn)(由于安全性,這是有限的)一次。這具有它是完全的、終止的過程的優(yōu)點(diǎn),且一旦構(gòu)造了固定點(diǎn),查詢求值是快速的。然而,自底向上求值不適用于安全語言的所述實(shí)現(xiàn),因?yàn)閿嘌陨舷挛牟皇呛愣ǖ?。?shí)際上,它在不同的請(qǐng)求之間可以完全不同。為每一請(qǐng)求計(jì)算模型不是高效的,因?yàn)樗鼤?huì)導(dǎo)致對(duì)不相關(guān)目標(biāo)的求值。而且,所感興趣的查詢通常被全部或部分實(shí)例化;因此,自頂向下、針對(duì)目標(biāo)的方法看上去更為合適。最廣為人知的自頂向下求值算法是如Prolog中所使用的SLD消解。不幸的是,如果某些謂詞具有遞歸定義,SLD消解甚至對(duì)安全的Datalog程序也可能會(huì)進(jìn)入無限循環(huán)。即使代替深度優(yōu)先而采用廣度優(yōu)先搜索策略,問題仍存在因?yàn)镾LD搜索樹是無限的,所以出現(xiàn)循環(huán)。列表或記備忘錄(memoing)是通過將某些自底向上技術(shù)并入自頂向下消解策略而保證終止的方法?;镜南敕ㄊ峭ㄟ^保存所遇到的子目標(biāo)及其答案的表來剪除無限搜索樹,并僅在子目標(biāo)在表中不存在時(shí)才計(jì)算子目標(biāo)。此處描述基于列表的確定性算法,并將其應(yīng)用于已被轉(zhuǎn)換成邏輯語言程序的安全語言斷言。在求值過程期間保持兩個(gè)全局表。圖9是示出具有列表的示例確定性求值算法的框圖900。求值算法900包括五個(gè)模塊902:査詢模塊902(1)、消解子句模塊902(2)、消解模塊902(3)、處理答案模塊902(4)以及處理子目標(biāo)模塊902(5)。求值算法900還包括兩個(gè)表904:咨案表904(1)以及箏待表904(2)。第一表即^^^^9WW將謂詞映射到基礎(chǔ)謂詞的集合。如果計(jì)算了子目標(biāo)尸(未實(shí)例化或部分或全部實(shí)例化),則尸被添加到域^^案,且在任何時(shí)刻,^^案f"返回迄今找到的對(duì)P的答案集(這些是尸的基礎(chǔ)實(shí)例)。在求值過程結(jié)束時(shí),咨:_^1每包含對(duì)包括根目標(biāo)在內(nèi)的所有遇到的子目標(biāo)的完全的答案。第二表是箏待表卯""。它將謂詞尸映射到〈尸;iV'—〉形式的f^標(biāo)和謂詞尸L子目標(biāo)可被如下解釋尸是證明樹的頂層謂詞;P0是接下來要求解的謂詞;?是必須要在A)之后求解的謂詞的列表;c是對(duì)謂詞變量的約束;而S是跟蹤通過連續(xù)縮小而迄今找到的實(shí)例化的尸的實(shí)例。以下定義和/或說明與求值算法有關(guān)的多個(gè)術(shù)語和概念。定義8丄代入/比0更一,,當(dāng)且僅當(dāng)存在使得0=/^怖代入伊。定義8.2.令尸和g為兩個(gè)謂詞。代入0是P和g的合一^6m折e",當(dāng)且僅當(dāng)尸e=g良代入6是尸和2的_#一;#游合一子,當(dāng)且僅當(dāng)它比尸和g和任何其他合一子更一般。定義8.3.謂詞尸的^"量畫命名是使得代入0定義在尸中出現(xiàn)的變量集的排列的&34如果兩個(gè)謂詞P和g是可合一的,它們也具有就變量重命名而言唯一的最一般合一子。將其用A^W(P,^表示。找到最一般合一子是相對(duì)簡(jiǎn)單的,但存在以線性時(shí)間運(yùn)行的更為復(fù)雜的算法。以下定義和/或說明其他術(shù)語和概念定義8.4.令P和g為兩個(gè)謂詞。則尸是g的實(shí)例,當(dāng)且僅當(dāng)對(duì)某一代入(9,尸=26。也稱為尸被g包孕,并寫成尸=>2。命題8.5.尸=>2,當(dāng)且僅當(dāng)存在尸和g的最一般合一子^,且^是尸的變量重命名。以下偽代碼提供了求值算法的示例。它將在下文中解釋。查詢(p)/箏存(P;:=0;2消解子句(尸);jReturn芬,(P」消解子句(P)2令尸'=尸^^〔"在3foreach卩尸0:-尸,c)e尸do4消解(〈尸;尸0〉,"消解(〈尸,.尸。,-,c;尸'〉,尸^/if0=Mgw(Po,/^存在且fl^^m;/砂r^」是可滿足的,then2if=[then處理答案(尸,3else將?與[尸;,...,尸]匹配在4處理子目標(biāo)(〈P;P7e■-尸W,...,尸"《《S0〉」處理答案(P,》2祭劍U{外.jforeachf/^標(biāo)e等待卩"do4消解(f^叛5)處理子目標(biāo)(fy^^)/將^6goa/與〈尸,'尸。,一,c;S〉匹配在2if存在iVe"om卩祭案」使得尸0-iV4foreach祭新"do6else5消解子句(尸o)為了針對(duì)規(guī)則集7以及初始為空的麥案和箏存表(即,Dom卩祭宴)=Z)0m〈#^^=0)而找到對(duì)謂詞尸的答案,調(diào)用例程查詢(P)。以下描述五個(gè)模塊902中的每一個(gè)査詢(模塊902(1))通過調(diào)用消解子句(尸)而產(chǎn)生新的證明樹。在調(diào)用之后,吝:^^r"將用正確且完全的答案填充。消解子句(模塊902(2))通過調(diào)用消解而針對(duì)尸ms/^"消解i中的每一規(guī)則。函數(shù)^^/zf^將尸中的所有變量重命名為在i中任何位置都不出現(xiàn)的新的一個(gè)。消解(模塊902(3))取形式〈尸,'/V—?,c;S〉的子目標(biāo)以及謂詞尸'o作為參數(shù)。消解中的&'m/7砂函數(shù)可對(duì)約束執(zhí)行任何種類的等價(jià)保留簡(jiǎn)化(例如,(假,c)s假)。最低限度,它應(yīng)將基礎(chǔ)約束簡(jiǎn)化為真或假。過逼近(over-approximate)行1上的可滿足性檢查是安全的,即僅在W的確是不可滿足時(shí)才應(yīng)返回"假",而即使在W不可滿足時(shí),只要&mp/砂(b^不是完全實(shí)例化的,也可返回"真"。因此,逼近可滿足性檢査的簡(jiǎn)單實(shí)現(xiàn)只要簡(jiǎn)化的約束沒有完全實(shí)例化即返回"真"。如果合一和可滿足性檢査成功,則存在兩種子情況?;蛘吡斜韃為空,在這種情況中,知道是Se對(duì)P的答案,而且由于安全性它是基礎(chǔ)答案。然后調(diào)用處理答案以進(jìn)一步處理該答案。否則,通過挑選列表中的第一個(gè)謂詞作為要求解的下一個(gè)謂詞而釆用自左向右的求值策略,并將代入^推入除第一個(gè)參數(shù)以外的所有參數(shù)來調(diào)用處理子目標(biāo)。第一參數(shù)尸保持不變,因?yàn)樗怯糜诟櫾寄繕?biāo)是什么的。初步的解S被縮減為^W。處理答案(模塊卯2(4))取對(duì)P的答案并更新荅:^^表904(1)。箏待表904(2)包含等待該答案的所有掛起的子目標(biāo)。每一掛起的子目標(biāo)通過調(diào)用消解以及新找到的答案而恢復(fù)。處理子目標(biāo)(模塊902(5))取一子目標(biāo)作為自變量,且尸。作為要求解的下一謂詞,并檢查在^^^^904(1)中是否已經(jīng)存在包孕它的現(xiàn)有子目標(biāo)尸'0。如果存在,則可重用/^的現(xiàn)有答案(通過調(diào)用消解),因此無需對(duì)尸o啟動(dòng)新的證明樹。另外,將子目標(biāo)的副本添加到尸'e的等W^條目,使得也將使用對(duì)/^的任何將來答案。僅當(dāng)咨^^^9似(^中沒有條目包孕P。時(shí),通過對(duì)消解子句的調(diào)用來產(chǎn)生新的證明樹。在此之前,在箏淳表904(2)中為尸0創(chuàng)建包含子目標(biāo)的條目。以下描述其他定義和定理定義8.6.^www&("被定義成無等同性的規(guī)則集/和初始為空的^^貞口等淳表904的上下文中的調(diào)用查詢(P)的返回值,如果該調(diào)用終止。否則,沒有定義。定理8.7.(終止)對(duì)所有部分安全的查詢尸,^wwer&("被定義且是有限的。定理8.8.(可靠性和完全性)令P為部分安全的査詢。^mver^(P」等于77(0)中的P的所有基礎(chǔ)實(shí)例的集合。圖10是示出在求值算法期間產(chǎn)生并包括圖片段1006的示例邏輯語言證明圖1000的框圖。如圖所示,邏輯語言證明圖1000包括多個(gè)節(jié)點(diǎn)1002和多個(gè)有向邊1004。具體地,邏輯語言證明圖1000包括IO個(gè)節(jié)點(diǎn)1002(1...10)。然而,邏輯語言證明圖1000可包括任何數(shù)目的節(jié)點(diǎn)1002以及任何數(shù)目的有向邊1004。明確標(biāo)記了兩個(gè)有向邊1Q04(1)和1004(2)。有向邊1004指示節(jié)點(diǎn)1002之間的邏輯推斷。當(dāng)測(cè)試安全策略并對(duì)其進(jìn)行故障排除時(shí),能夠看到授權(quán)策略的論證可能是有用的。這可以是根據(jù)以上第2節(jié)中的語義規(guī)則系統(tǒng)構(gòu)造的相應(yīng)的證明圖的視覺和/或文字表示。在求值期間產(chǎn)生的證明圖也可歸檔用于審計(jì)目的。邏輯語言證明圖1000的葉節(jié)點(diǎn)由矩形節(jié)點(diǎn)1002(4)、1002(5)、1002(6)、1002(8)、1002(9)和1002(10)表示。非葉節(jié)點(diǎn)由圓形節(jié)點(diǎn)1002(1)、1002(2)、1002(3)和1002(7)表示。圓形是提供副條件的節(jié)點(diǎn)(例如,體謂詞(bodypredicates))的節(jié)點(diǎn)。邏輯語言證明圖1000的矩形葉節(jié)點(diǎn)是從來自原始斷言上下文的斷言轉(zhuǎn)換的規(guī)則。其他節(jié)點(diǎn)是得出的陳述,如果在求值中采用上述確定性的列表算法,那么這是從答案表(例如,普:^^表904(1))取得的。邏輯語言證明圖1000被分成示例片段1006。具體地,示出了三個(gè)片段1006(1,2,3),但證明圖可被分成任何數(shù)目的片段1006。每一片段1006形成了總的證明圖的結(jié)構(gòu)的一部分。因此,每一片段1006包括節(jié)點(diǎn)1002和有向邊1004。為了由熟悉安全語言的某人執(zhí)行分析、故障排除和/或?qū)徲?jì)等,邏輯語言證明圖1000可被轉(zhuǎn)換成相應(yīng)的安全語言證明圖(整體沒有單獨(dú)示出)。為了實(shí)現(xiàn)轉(zhuǎn)換,執(zhí)行模式匹配過程。邏輯語言片段1006被匹配到相應(yīng)的安全語言片段。在所述實(shí)現(xiàn)中,可在模式匹配過程中使用的示例安全語言片段各自與來自安全語言的語義規(guī)則相關(guān)聯(lián)。邏輯語言片段和安全語言片段之間的示例片段對(duì)應(yīng)性在以下參考圖12A、12B、13A、13B、14A和14B來描述。在所述具體示例實(shí)現(xiàn)中,以上參考圖9呈現(xiàn)的算法可被修改以在查詢求值期間構(gòu)造Datalog證明圖。證明圖是有向無環(huán)圖。對(duì)于對(duì)査詢的每一答案,在圖中有一根節(jié)點(diǎn)。每一非葉節(jié)點(diǎn)是^說D事^^式的基礎(chǔ)Datalog謂詞,且具有子節(jié)點(diǎn)Datalog規(guī)則、實(shí)例化的條件事實(shí)和實(shí)例化的約束。葉節(jié)點(diǎn)或者是^C中的Datalog規(guī)則或者是有效的基礎(chǔ)約束。示例被示為圖12A、13A和14A的左窗格°如果在以上的算法7.1的執(zhí)行期間,每一生成的Datalog規(guī)則用生成該規(guī)則的算法步驟來標(biāo)記(即1、2(a)、2(b)或3),則Datalog證明圖包含要被轉(zhuǎn)化成相應(yīng)的安全邏輯證明圖的足夠的信息。圖11是示出用于將邏輯語言證明圖轉(zhuǎn)換成安全語言證明圖的方法的示例的流程圖1100。流程圖1100包括五(5)個(gè)框1102-1110。盡管可在其他環(huán)境中以及采用各種硬件/軟件/固件組合來執(zhí)行流程圖1100的動(dòng)作,但使用圖1-10的某些特征、組件和方面來示出該方法的示例。在所述實(shí)現(xiàn)中,在框1102,產(chǎn)生反映邏輯求值期間的邏輯語言的第一證明圖。例如,邏輯語言證明圖IOO可在邏輯求值期間產(chǎn)生。邏輯求值在經(jīng)由轉(zhuǎn)換從安全語言斷言上下文得到的邏輯語言程序上實(shí)現(xiàn)。在框1104,標(biāo)識(shí)第一證明圖的片段。例如,可標(biāo)識(shí)邏輯語言證明圖1000的片段1006。在框1106,反映邏輯語言的第一證明圖的片段被轉(zhuǎn)換成反映安全語言的第二證明圖的相應(yīng)片段。例如,反映邏輯語言(例如,Datalog等)的邏輯語言證明圖1000的片段1005被轉(zhuǎn)換成反映安全語言(例如,策略斷言安全語言)的第二證明圖的相應(yīng)片段。例如,第一證明圖的片段的邏輯語言模式可被匹配到選自多個(gè)可能的安全語言模式的相應(yīng)的安全語言模式。這些安全語言模式例如可與安全語言的語義規(guī)則相關(guān)聯(lián)。在框1108,為第一證明圖的每一片段重復(fù)片段的標(biāo)識(shí)及其轉(zhuǎn)換。例如,如由下一片段箭頭1112所示,可標(biāo)識(shí)邏輯語言證明圖IOOO的另一片段1006,并將其轉(zhuǎn)換成安全語言證明圖的相應(yīng)的片段。在框1110,一旦已經(jīng)遍歷并轉(zhuǎn)換了邏輯語言證明圖,即輸出反映安全語言的的第二證明圖。第二證明圖包括對(duì)應(yīng)于第一證明圖的相應(yīng)片段的片段。反映安全語言的第二證明圖也可被歸檔和/或?qū)徲?jì)。圖12A和12B分別是用于條件語義規(guī)則的邏輯語言和相應(yīng)的安全語言的示例證明片段的框圖。用于條件語義規(guī)則的安全語言證明圖片段示例1200B在圖12B處示出。在求值期間產(chǎn)生的證明圖中存在的相應(yīng)的邏輯語言證明圖(例如,帶有父節(jié)點(diǎn)的證明節(jié)點(diǎn))片段1200A在圖12A處示出。橢圓節(jié)點(diǎn)表示所證實(shí)的副條件,而矩形節(jié)點(diǎn)表示規(guī)則或約束。這些圖片段1200與算法7.1的轉(zhuǎn)換步驟1或2(a)有關(guān)。圖13A和13B分別是用于委托語義規(guī)則的邏輯語言和相應(yīng)的安全語言的39示例證明片段的框圖。用于委托語義規(guī)則的安全語言證明圖片段示例1300B在圖13B處示出。在求值期間產(chǎn)生的證明圖中存在的相應(yīng)的邏輯語言片段1300A在圖13A處示出。這些圖片段1300與轉(zhuǎn)換步驟2(b)相關(guān)。圖14A和14B分別是用于別名語義規(guī)則的邏輯語言和相應(yīng)的安全語言的示例證明片段的框圖。用于別名語義規(guī)則的安全語言證明圖片段示例1400B在圖14B處示出。在求值期間產(chǎn)生的證明圖中存在的相應(yīng)的邏輯語言片段1400A在圖14A處示出。這些圖片段1400與轉(zhuǎn)換步驟3相關(guān)。9授權(quán)查詢的求值基于上一節(jié)的算法,現(xiàn)在可以描述如何對(duì)如第3節(jié)中定義的復(fù)雜授權(quán)查詢求值。在下文中,令^C為斷言上下文,尸為其Datalog轉(zhuǎn)換,并令s為空代入。如下定義對(duì)授權(quán)查詢的函數(shù)^^/^似,。^w^4"^c(^說^"J^=e^"swe"尸fe說①#"窮且6=M#說①事實(shí)尸"Ji^4m^c(^,^=外^I&e*^4m^c(^」且&e*^4^c(^2A"0*菜r薦妒0且J齒"^C0未定義真勉j"編m^c(e)={*菜|=c0*榮Fa一戶0且pc末定義真巡以下定理示出^W^4朋,是用于對(duì)安全授權(quán)查詢求值的算法。定理9丄(授權(quán)查詢求值的有限性、可靠性和完全性)對(duì)所有安全斷言上下文JC和安全授權(quán)査詢《,^W^4似,^)被定義且是有限的,且2.爿C,0卜《當(dāng)且僅當(dāng)6e^"^4""cfe).圖1-14B中的設(shè)備、動(dòng)作、方面、特征、功能、過程、模塊、數(shù)據(jù)結(jié)構(gòu)、協(xié)議、組件等都在分為多個(gè)框的示意圖中得到闡明。然而,描述和/或示出圖l-14B的次序、互連、相互關(guān)系、布局等不旨在被解釋為限制,任何數(shù)目的這些框可按照任何方式被修改、組合、重新排列、增加、省略等,以實(shí)現(xiàn)用于采用邏輯消解的安全語言轉(zhuǎ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)利要求的示例形式公開的。4權(quán)利要求1.一種方法,包括對(duì)包括所斷言的事實(shí)以及零或多個(gè)條件事實(shí)的安全語言斷言,確定所斷言的事實(shí)是否是平面的;如果所斷言的事實(shí)被確定為是平面的,則將所述安全語言斷言轉(zhuǎn)換成包括對(duì)應(yīng)于所斷言的事實(shí)的主要事實(shí)以及對(duì)應(yīng)于所述零或多個(gè)條件事實(shí)的一個(gè)或多個(gè)副條件的邏輯語言規(guī)則;以及如果所斷言的事實(shí)未被確定為是平面的,則通過以下步驟將所述安全語言斷言轉(zhuǎn)換成邏輯語言規(guī)則添加包括對(duì)應(yīng)于所斷言的事實(shí)的主要事實(shí)以及對(duì)應(yīng)于所述零或多個(gè)條件事實(shí)的零或多個(gè)副條件的邏輯語言規(guī)則;以及對(duì)所斷言的事實(shí)的每一委托指示動(dòng)詞,添加具有無界委托深度以及表示被委托方的新變量的邏輯語言規(guī)則。2.如權(quán)利要求1所述的方法,其特征在于,所述確定所斷言的事實(shí)是否是平面的包括確定所斷言的事實(shí)是否不涉及委托。3.如權(quán)利要求l所述的方法,其特征在于,還包括對(duì)具有帶有作為所述安全語言斷言的轉(zhuǎn)換的一部分創(chuàng)建的表達(dá)式的主要事實(shí)的每一邏輯語言規(guī)則,添加具有別名能力以及表示別名對(duì)象的新變量的另一邏輯語言規(guī)則。4.如權(quán)利要求3所述的方法,其特征在于,還包括對(duì)斷言上下文中的每一安全語言斷言重復(fù)所述確定、轉(zhuǎn)換和添加,以產(chǎn)生邏輯語言程序;以及結(jié)合授權(quán)査詢對(duì)所述邏輯語言程序求值。5.如權(quán)利要求4所述的方法,其特征在于,所述求值包括產(chǎn)生反映所述邏輯語言的證明圖;以及還包括使用基于所述安全語言的語義規(guī)則在邏輯語言片段和安全語言片段之間建立相應(yīng)的對(duì)應(yīng)性的片段示例,將反映所述邏輯語言的所述證明圖轉(zhuǎn)換成反映所述安全語言的另一證明圖。6.如權(quán)利要求4所述的方法,其特征在于,所述求值包括應(yīng)用利用將謂詞映射到基礎(chǔ)謂詞集的第一表以及將謂詞映射到子目標(biāo)的第二表的基于列表的確定性算法。7.—種方法,包括將反映邏輯語言的第一證明圖的片段轉(zhuǎn)換成反映安全語言的第二證明圖的相應(yīng)片段;以及對(duì)所述第一證明圖的每一片段重復(fù)所述轉(zhuǎn)換。8.如權(quán)利要求7所述的方法,其特征在于,每一片段形式所述第一證明圖的結(jié)構(gòu)的一部分,且包括至少兩個(gè)節(jié)點(diǎn)和至少一條有向邊。9.如權(quán)利要求7所述的方法,其特征在于,還包括將所述安全語言的斷言上下文轉(zhuǎn)換成所述邏輯語言的程序;對(duì)所述邏輯語言的所述程序求值;以及響應(yīng)于所述求值產(chǎn)生所述第一證明圖。10.如權(quán)利要求9所述的方法,其特征在于,所述求值包括應(yīng)用利用將謂詞映射到基礎(chǔ)謂詞集的第一表以及將謂詞映射到所述第一證明圖的子目標(biāo)的第二表的基于列表的確定性算法。11.如權(quán)利要求7所述的方法,其特征在于,所述轉(zhuǎn)換包括將所述第一證明圖的片段的邏輯語言模式匹配到選自多個(gè)可能的安全語言模式的相應(yīng)的安全語言模式。12.如權(quán)利要11求所述的方法,其特征在于,所述多個(gè)可能的安全語言模式中的每一相應(yīng)的安全語言模式與所述安全語言的相應(yīng)的語義規(guī)則相關(guān)聯(lián)。13.如權(quán)利要求11所述的方法,其特征在于,所述多個(gè)可能的安全語言模式至少包括三種安全語言模式;其中所述三種安全語言模式包括與條件語義規(guī)則相關(guān)聯(lián)的第一安全語言模式、與委托語義規(guī)則相關(guān)聯(lián)的第二安全語言模式以及與別名語義規(guī)則相關(guān)聯(lián)的第三安全語言模式。14.如權(quán)利要求7所述的方法,其特征在于,所述第一證明圖的片段包括表示至少一個(gè)所證實(shí)的斷言的一個(gè)或多個(gè)節(jié)點(diǎn)以及表示至少一個(gè)副條件的一個(gè)或多個(gè)節(jié)點(diǎn)。15.—種接受包括多個(gè)斷言的斷言上下文的授權(quán)系統(tǒng),所述多個(gè)斷言中的每一斷言遵循一安全語言的句法,所述每一斷言的句法包括所斷言的事實(shí)并許可一個(gè)或多個(gè)條件事實(shí)和一個(gè)或多個(gè)約束;其中所述授權(quán)系統(tǒng)將所述斷言上下文轉(zhuǎn)換成采用邏輯語言的程序;且其中所述采用邏輯語言的程序?qū)⑹褂没诹斜淼拇_定性算法結(jié)合授權(quán)查詢來被求值。16.如權(quán)利要求15所述的授權(quán)系統(tǒng),其特征在于,所述確定性算法利用將謂詞映射到基礎(chǔ)謂詞集的答案表以及將謂詞映射到證明圖的子目標(biāo)的等待表。17.如權(quán)利要求16所述的授權(quán)系統(tǒng),其特征在于,所述證明圖的子目標(biāo)包括所述證明圖的頂層謂詞、接下來要求解的謂詞以及要在之后求解的謂詞的列表。18.如權(quán)利要求15所述的授權(quán)系統(tǒng),其特征在于,所述確定性算法產(chǎn)生證明圖;其中所述授權(quán)系統(tǒng)還將反映所述邏輯語言的所述證明圖轉(zhuǎn)換成反映所述安全語言的證明圖。19.如權(quán)利要求18所述的授權(quán)系統(tǒng),其特征在于,所述轉(zhuǎn)換是通過將各自與所述安全語言的相應(yīng)語義規(guī)則相關(guān)聯(lián)的片段示例匹配到反映所述邏輯語言的所述證明圖的相應(yīng)片段而實(shí)現(xiàn)的。20.如權(quán)利要求15所述的授權(quán)系統(tǒng),其特征在于,所述邏輯語言包括Datalog形式。全文摘要安全語言構(gòu)造可被轉(zhuǎn)換成邏輯語言構(gòu)造,反之亦然。邏輯消解可例如使用邏輯語言構(gòu)造來實(shí)現(xiàn)。在一示例實(shí)現(xiàn)中,描述了將安全語言斷言轉(zhuǎn)換成至少一個(gè)邏輯語言規(guī)則。在另一示例實(shí)現(xiàn)中,描述了將反映一邏輯語言的證明圖轉(zhuǎn)換成反映一安全語言的證明圖。在又一示例實(shí)現(xiàn)中,描述了使用確定性算法對(duì)邏輯語言程序的求值。文檔編號(hào)G06F15/00GK101512505SQ200780033329公開日2009年8月19日申請(qǐng)日期2007年9月10日優(yōu)先權(quán)日2006年9月11日發(fā)明者A·D·戈登,B·B·迪拉韋,C·富爾內(nèi),J·F·麥凱,M·Y·貝克申請(qǐng)人:微軟公司