(華中師范大學(xué) 教育信息技術(shù)工程研究中心 信息技術(shù)系 武漢 430079)
摘 要:使用過程中數(shù)字權(quán)利的動(dòng)態(tài)描述一直都是DRM應(yīng)用系統(tǒng)研究的熱點(diǎn)。提出一種基于邏輯推理的數(shù)字權(quán)利動(dòng)態(tài)描述模型,在定義好該模型的基本要素以后,利用邏輯推理工具Prolog深入探討和分析該模型中數(shù)字證書邏輯推理過程,并給出了相應(yīng)的應(yīng)用實(shí)例。
關(guān)鍵詞:邏輯推理;多集;規(guī)則;動(dòng)態(tài)描述
中圖分類號:TP309文獻(xiàn)標(biāo)志碼:A
文章編號:1001-3695(2009)05-1888-03
Research on dynamic expression of digital rights based on logic reasoning
HAN Lilong,LIU Qingtang,YANG Zongkai
(Dept. of Information Technology Engineering Research Center of Education Information Technology Huazhong Normal University Wuhan 430079 China)
Abstract:At all times dynamic expression of digital rights during the usage is always the focus in DRM. This paper demonstrated a kind of model in dynamic expression of digital rights based logic reasoning. After defining the relevent essential elements of this model it deeply explored and analyzed logic reasoning process of the digital certificate in this model with Prolog. Finally,presented a pertinent application example.
Key words:logic reasoning; multiset; rules; dynamic expression
0 引言
數(shù)字權(quán)利描述技術(shù)與數(shù)字內(nèi)容的安全性技術(shù)、使用控制技術(shù) 、數(shù)字內(nèi)容合理使用技術(shù)、數(shù)字權(quán)利轉(zhuǎn)移技術(shù)、可信執(zhí)行技術(shù)并稱為DRM系統(tǒng)的六大關(guān)鍵技術(shù)[1]。一直以來,數(shù)字權(quán)利描述均受到各國學(xué)者和機(jī)構(gòu)的高度重視,而且還誕生了成熟的基于XML的數(shù)字權(quán)利描述語言,如XrML和ODRL。只是基于XML的權(quán)利描述語言存在不具備形式語義、不能進(jìn)行邏輯推理、不能描述版權(quán)法規(guī)等諸多缺陷,只能對靜態(tài)的數(shù)字權(quán)利進(jìn)行描述。針對這些問題,國外學(xué)者Gunter和Pucella等人[2,3]希望在數(shù)字權(quán)利的動(dòng)態(tài)描述領(lǐng)域取得突破,于是他們在數(shù)字權(quán)限的形式語義和邏輯推理方面都進(jìn)行了深入的研究。Gunter借用了程序語言語義技術(shù)來定義證書(license)的語義,認(rèn)為一個(gè)證書的語義就是動(dòng)作執(zhí)行序列(trace)的集合,每個(gè)trace表示該證書允許的動(dòng)作序列。一個(gè)正確的執(zhí)行過程就是允許證書定義的合法動(dòng)作序列得到執(zhí)行,而禁止其他序列執(zhí)行。Pucella等人則在Gunter的基礎(chǔ)上,進(jìn)一步嘗試了采用一種稱為“l(fā)ic”的邏輯來推理數(shù)字權(quán)限。總的來說,他們對數(shù)字權(quán)利的動(dòng)態(tài)描述主要集中在兩大主線:
a)利用邏輯推理來實(shí)現(xiàn)證書的動(dòng)態(tài)演化;
b)利用證書定義用戶合法的動(dòng)作執(zhí)行序列,通過對用戶動(dòng)作執(zhí)行序列的跟蹤,記錄證書的動(dòng)態(tài)演化過程。
本文認(rèn)為第一種方法更為合理,因?yàn)橛脩羰褂脭?shù)字資源的動(dòng)作序列是一個(gè)隨機(jī)、靈活的過程,它與當(dāng)時(shí)用戶的需求、動(dòng)機(jī)、外部設(shè)備狀況等諸多因素都有千絲萬縷的聯(lián)系,事先定義好所有的用戶對數(shù)字資源的動(dòng)作執(zhí)行序列是一項(xiàng)十分復(fù)雜的工作,也是一項(xiàng)不可能完成的任務(wù),它會讓證書變得異常繁雜,該方法并不是一種有效的策略。而使用邏輯推理的方法顯然更加合理,因?yàn)橹灰孪榷x好相關(guān)數(shù)字資源證書的客觀事實(shí),在相應(yīng)的邏輯推理規(guī)則的約束下,邏輯推理的方法可以實(shí)現(xiàn)全自動(dòng)化的智能推理,并不需要對證書的演化進(jìn)行事先定義,完全符合數(shù)字資源權(quán)利使用的連續(xù)性、易變性、隨機(jī)性和靈活性等特點(diǎn)。雖然國內(nèi)外學(xué)者已經(jīng)在這個(gè)方面進(jìn)行了一些研究嘗試[4~6],但目前的研究成果只是停留在提出了邏輯推理的思想和模型,并沒有引入邏輯推理的工具和手段,所以大多數(shù)沒有從根本上解決以上存在的幾大問題。
在以上研究成果的基礎(chǔ)上,筆者引入邏輯推理語言Prolog作為證書邏輯推理工具,在邏輯規(guī)則的約束下實(shí)行定義證書的自動(dòng)推理,實(shí)現(xiàn)邏輯證書的動(dòng)態(tài)演化。與已有的基于一階邏輯的數(shù)字權(quán)利動(dòng)態(tài)描述模型相比[7],該模式在以下兩點(diǎn)取得進(jìn)步:a)引入邏輯推理工具Prolog,使證書具備靈活的邏輯推理能力;b)定義全新的數(shù)字證書,讓邏輯推理工具能自如地控制數(shù)字證書的綁定數(shù)據(jù)包,克服人工定義數(shù)字證書動(dòng)作執(zhí)行序列的弊端,實(shí)現(xiàn)一定程度上的數(shù)字證書的動(dòng)態(tài)演化功能,使數(shù)字證書的動(dòng)態(tài)描述名符其實(shí)。
1 基于Prolog邏輯推理的基本知識
邏輯推理的方法和工具有很多,其中最著名的邏輯推理工具是Prolog語言。它在求解問題時(shí),要求程序員描述對象之間關(guān)系的事實(shí)和規(guī)則。它強(qiáng)調(diào)對象之間的邏輯關(guān)系,但是程序員并不必告訴計(jì)算機(jī)運(yùn)算執(zhí)行的先后順序,就能在數(shù)據(jù)庫中自動(dòng)搜索、模式匹配和回溯來求解問題。
Prolog語法也十分簡單,僅有三個(gè)基本語句,它們分別是:
a)事實(shí)。由自己定義的,類似于一個(gè)簡單句,是Prolog中最簡單的謂詞,同時(shí)也是搜索的目標(biāo)。
b)規(guī)則。由幾個(gè)目標(biāo)組成,其實(shí)質(zhì)是儲存起來的查詢。
c)詢問。提出求解的目標(biāo)。
其工作原理如圖1所示。
從Prolog的介紹可以發(fā)現(xiàn),Prolog進(jìn)行證書的邏輯推理必須依賴三個(gè)基本要素,即事實(shí)、規(guī)則和邏輯推理引擎。于是任何一個(gè)Prolog推理系統(tǒng)必須具備事實(shí)庫、規(guī)則集和Prolog邏輯控制單元。
1)事實(shí)庫 存放著當(dāng)前已知的證書信息數(shù)據(jù),包括推理過程中形成的中間結(jié)論信息。換句話說,它用于存放相關(guān)證書的狀態(tài)、性質(zhì)等事實(shí)的敘述型知識,也稱為綜合數(shù)據(jù)庫或工作存儲器。該庫中的證書信息有規(guī)則解釋(Prolog邏輯控制器),用來激活相應(yīng)的規(guī)則。
2)規(guī)則集 存儲相關(guān)證書的狀態(tài)轉(zhuǎn)移、性質(zhì)變化等規(guī)則的過程性知識,或稱規(guī)則庫。規(guī)則的條件是否滿足是以當(dāng)前事實(shí)庫中的證書事實(shí)為依據(jù)。如果存在該事實(shí)滿足該條件,則相應(yīng)的規(guī)則被激活。
3)Prolog邏輯控制器 根據(jù)相關(guān)證書的控制性要求,將規(guī)則與事實(shí)進(jìn)行匹配,控制并利用規(guī)則進(jìn)行推理、求解問題。通常從選擇規(guī)則到執(zhí)行分三步,即匹配、沖突解決和操作。
2 相關(guān)要素定義
通過對邏輯推理基礎(chǔ)知識的闡述不難發(fā)現(xiàn),要利用邏輯推理實(shí)現(xiàn)數(shù)字權(quán)限的動(dòng)態(tài)描述必須定義好邏輯推理的事實(shí)、規(guī)則和邏輯推理引擎。于是首先對證書進(jìn)行定義,其功能類似于邏輯推理系統(tǒng)需要的事實(shí);其次定義證書推理所需的規(guī)則;至于邏輯推理引擎則由Prolog語言的查詢推理語句完成。
2.1 邏輯證書的定義
證書是用來定義數(shù)字資源及其相關(guān)的使用條件。因此,證書至少包含兩個(gè)相關(guān)的信息項(xiàng),即被授權(quán)的數(shù)據(jù)與使用該數(shù)據(jù)的條件,如圖2所示。
從圖2中可以看出,證書被定義成一個(gè)多集,其表現(xiàn)形式為lic(content,Δ,B)[8]。其中:content為證書所示數(shù)字資源的統(tǒng)一標(biāo)志符;Δ表示一系列的Prolog程序子句,其定義了對數(shù)字資源所允許的特定操作。之所以選擇Prolog程序子句,是因?yàn)镻rolog本身是一種邏輯語言,具備很強(qiáng)的邏輯推理能力,且易讀易懂,非常適合描述證書。B是一組綁定數(shù)據(jù)包,存儲可修改的數(shù)據(jù)。需要強(qiáng)調(diào)的是,B是一組綁定數(shù)據(jù)包而非單個(gè)元素,在需要的情況下可包含多個(gè)元素,其表現(xiàn)形式統(tǒng)一為name≡value。
按照通常的規(guī)律,證書應(yīng)該包含主體、權(quán)利、資源、約束、義務(wù)等多個(gè)基本要素,把證書定義成圖2的表現(xiàn)形式,如何體現(xiàn)這些要素呢?從圖中不難發(fā)現(xiàn),content可以與這些要素中的資源相對應(yīng),Δ表示的一系列Prolog語句定義了對資源所允許的特定操作,可以與權(quán)利相對應(yīng)。很顯然,綁定數(shù)據(jù)包B必然包含了一般證書中所包含的多種基本要素,如主體、約束、義務(wù)等多個(gè)因素,如圖3所示。
這些要素之間的關(guān)系是平行的,任何一個(gè)證書可以根據(jù)需要定義一個(gè)或多個(gè)基本要素。表示這些要素的變量還可作為邏輯推理的形式參數(shù),在證書的邏輯推理過程,它們可以用做數(shù)據(jù)的傳遞。如圖4所示,該證書實(shí)例明確地定義了四個(gè)綁定數(shù)據(jù),它們分別隸屬于約束、條件和主體等。其中還可以對同一類要素定義多個(gè)變量,如圖中的約束1和2。需要注意的是,Δ中Prolog查詢子句代表的數(shù)字權(quán)利和數(shù)據(jù)綁定包B中元素的關(guān)系并不是平行的,只有綁定數(shù)據(jù)包中的變量滿足Δ中Prolog邏輯推理語句時(shí),Δ代表的權(quán)利才能被有效地執(zhí)行。
下面的證書:
lic(a,Δ,{expires≡10/10/2008})
其中Δ為{canplay(B,B):today(D),get_value(B,expires,Exp),Exp>D}。today(D)和get_value(B,n,V)兩個(gè)表達(dá)式的意思分別是:today(D)表示系統(tǒng)當(dāng)前時(shí)間;get_value(B,n,V)則表示在集合B中獲取標(biāo)志符n的值。該證書表示允許執(zhí)行數(shù)字資源a到一個(gè)給定的有效時(shí)間。
2.2 邏輯規(guī)則的定義
證書通常存在于設(shè)備中,設(shè)備和證書的交流在規(guī)則的約束下實(shí)現(xiàn)。規(guī)則被認(rèn)為是設(shè)備的中間件,這里規(guī)則的語法采用多集修改的方式。
定義1 任意規(guī)則都是一個(gè)四元組:rule(arg):lms→rmscond。其中:rule(arg)表示規(guī)則標(biāo)簽;lms和rms表示多集;cond則是一系列形式如Pi├Qi的邏輯單元。
如果滿足以下兩個(gè)條件,規(guī)則被應(yīng)用于目標(biāo)多集MS上。
a)左邊的多集lms必須與多集MS中的某一子集匹配,該子集在規(guī)則執(zhí)行后被右邊多集rms取代。
b)規(guī)則的執(zhí)行條件cond必須得到滿足,這由cond中的邏輯語句來完成,并檢查結(jié)論是否成立。
規(guī)則執(zhí)行的例子如:
play(x):lic(X,Δ,B)→lic(X,Δ,B′)Δ├canplay(B,B′)
此例的具體含義為:如果條件Δ├canplay(B,B′)得到滿足,則規(guī)則應(yīng)用于證書lic(X,Δ,B),證書執(zhí)行完畢后被證書lic(X,Δ,B′)代替。
在規(guī)則的執(zhí)行過程中,可以明確地發(fā)現(xiàn)多集MS是其前提條件,也是進(jìn)行邏輯推理的事實(shí)基礎(chǔ)。
2.3 證書和規(guī)則的邏輯推理工作原理
定義好了邏輯推理所需要的基本要素,那么這些基本要素又是如何相互協(xié)調(diào)、相互作用來完成多集證書的邏輯推理的呢?從圖5中可以看到,用戶主體通過應(yīng)用程序接口(API)提出訪問某一資源(content)的操作請求,通過身份認(rèn)證后,這個(gè)請求立刻會調(diào)用與之相應(yīng)的操作規(guī)則。從上節(jié)規(guī)則的定義中可以發(fā)現(xiàn),任意規(guī)則中都對應(yīng)相應(yīng)的證書。于是該規(guī)則隨即在多集中依次挑選所必需的證書。然后,規(guī)則在所選證書的clause中檢查邏輯執(zhí)行單元的條件是否得到滿足。如果不滿足,則終止當(dāng)前操作,轉(zhuǎn)而尋找下一條滿足規(guī)則的證書;如果滿足證書執(zhí)行的前提條件,則允許規(guī)則執(zhí)行,實(shí)施相應(yīng)的邏輯推理。規(guī)則執(zhí)行成功后,修改證書的綁定數(shù)據(jù)包,規(guī)則的執(zhí)行結(jié)果則產(chǎn)生新的證書,其表現(xiàn)形式則是證書的綁定數(shù)據(jù)包B發(fā)生變化,也就是lic(X,Δ,B)→lic(X,Δ,B′)的過程。
3 數(shù)字證書的邏輯推理過程及其應(yīng)用實(shí)例
證書用lic(X,Δ,B)表示,為了方便起見,假設(shè)所有可用的證書均存放在給定的多集MS中。其邏輯推理過程可定義為
定義2 規(guī)則執(zhí)行。如果有兩個(gè)多集MS和MS′,一個(gè)規(guī)則label:l→rcond和一個(gè)請求行為a,如果滿足以下四點(diǎn),則MSaσMS′。
a)根據(jù)外部請求行為a,選擇與之匹配的規(guī)則label。需要注意的是,有可能存在多個(gè)規(guī)則與請求行為匹配,因此,此時(shí)選擇的規(guī)則并不一定是最終使用的規(guī)則。如果沒有規(guī)則和請求匹配,則請求就失敗了。
b)在多集MS中尋找與a)中所選的規(guī)則匹配的證書。由于a)中所選規(guī)則不是最終選擇,這里的證書相應(yīng)也不一定是最終選擇。這種情況導(dǎo)致用戶擁有多個(gè)證書允許他完成其想要完成的行為。
c)檢查規(guī)則所需的條件,選擇合適的規(guī)則。
d)執(zhí)行規(guī)則,并轉(zhuǎn)換多集。
下面舉一個(gè)簡單的例子來詳細(xì)說明證書邏輯推理的執(zhí)行過程。
假如存在多集包含如下的證書:
MS=[lic(music,Γ,C),lic(video,Σ,D),lic(music,ω,E)]
其中:C={played_times≡2},D={played_times≡10},E={played_times≡15},并且Γ=Σ=ω={canplay(B,B′):-get(B,played_times,N),N<10,set(B,played_times,N+1,B′)}
規(guī)則R為
play(x):lic(X,Δ,B)→lic(X,Δ,B′)Δ├canplay(B,B′)
若外部請求為play(music),則具體的邏輯推理過程如下:
a)外部請求行為play(music)與規(guī)則play(X)匹配,則用music代替X,即σ1={X/music}。
b)對照MS中的證書lic(X,Δ,B),可以發(fā)現(xiàn)對music的訪問有兩種可能,即lic(music,Γ,C)和lic(music,ω,E),則分別用Γ代替Δ,ω代替Δ,C代替B以及E代替B,即σ2={Δ/Γ,B/C},σ′2={Δ/ω,B/E}。
c)沖突裁決。在這一步里評估條件為Γ├canplay(C,B′)和ω├canplay(E,B′)。由于C中變量played_times的值小于10,則所需條件得到滿足,canplay(C,B′)允許在子句執(zhí)行;但是E中的變量played_times的值大于10,則所需條件得不到滿足,canplay(E,B′)不允許在規(guī)則中執(zhí)行。通過這個(gè)過程順利地解決了因?yàn)橥瑫r(shí)存在多個(gè)與規(guī)則相匹配的證書從而引起的沖突。
d)執(zhí)行規(guī)則。于是δ1={B/played_times≡3};最后,MS被更新,證書lic(music,Γ,C)從MS中刪除,取而代之的是新證書lic(music,Γ,C′),如圖6所示。其中C′={played_times≡3}。
4 結(jié)束語
從上面的分析可以看到,將數(shù)字證書定義成形如lic(content,Δ,B)的多集方式,使其在傳統(tǒng)證書的基礎(chǔ)上增加了邏輯推理的功能。筆者詳細(xì)地?cái)⑹隽藬?shù)字邏輯證書如何在規(guī)則的約束下完成邏輯推理過程,從而實(shí)現(xiàn)數(shù)字權(quán)利的動(dòng)態(tài)演化。
下一步的工作重點(diǎn)則是詳細(xì)分析數(shù)字權(quán)利的動(dòng)態(tài)演化類型,深入探討數(shù)字權(quán)利的動(dòng)態(tài)演化進(jìn)程,把數(shù)字權(quán)利的動(dòng)態(tài)描述過程形式化,并結(jié)合相關(guān)的原型系統(tǒng)應(yīng)用到實(shí)際存在的DRM平臺中。
參考文獻(xiàn):
[1]喻銀燕,湯幟.數(shù)字版權(quán)保護(hù)技術(shù)研究綜述[J].計(jì)算機(jī)學(xué)報(bào),2004,28(12):19571966.
[2]GUNTER C,WEEKS S,WRIGHT A.Models and languages for digital rights[C]//Proc of the 34th Annual Hawaii International Conference on System Sciences.Washington DC:IEEE Computer Society,2001:40344038.
[3]PUCELLAR,WEISSMAN V.A logic for reasoning about digital rights[C]//Proc of the 15th Computer Security Foundations Workshop.Washington DC:IEEE Computer Society,2002:282294.
[4]孫偉,翟玉慶.一種采用一階動(dòng)態(tài)邏輯表示的數(shù)字權(quán)限描述模型[J].計(jì)算機(jī)應(yīng)用,2005,25(4):846849.
[5]孫偉,翟玉慶.一種以動(dòng)作狀態(tài)為中心的數(shù)字權(quán)限描述模型[J].計(jì)算機(jī)工程與應(yīng)用,2005,41(10): 124127.
[6]凌志輝,翟玉慶.描述用戶行為的數(shù)字權(quán)限時(shí)序描述邏輯系統(tǒng)[J].計(jì)算機(jī)工程,2005,31(19):6163.
[7]APT K R,PDDRESCHI D.Modular termination proofs for logic and pure Prolog programs[M]//Advances in logic programming theory.Oxford:Oxford University Press,1994:183229.
[8]CHONG C N,CORIN R,ETALLE S,et al.LicenseScript:a novel digital rights language and its semantics[C]//Proc of the 3rd International Conference on Web Delivering of Music.Los Alamitos:IEEE Computer Society Press,2003:122129.