999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于證書修改的數字權限動態描述

2009-01-01 00:00:00韓立龍劉清堂楊宗凱
計算機應用研究 2009年3期

(華中師范大學 教育信息技術工程研究中心 信息技術系, 武漢 430079)

摘要:

針對基于XML的權限描述語言(如XrML和ODRL)的本質缺陷,提出了一種基于證書修改的數字權限動態描述模型。在定義了該模型的相關基本要素后,深入探討和分析了該模型的執行過程,并給出了一個應用模型。

關鍵詞:多集; 證書; 規則; 證書修改

中圖分類號:TP309文獻標志碼:A

文章編號:10013695(2009)03107102

Dynamic expression of digital rights by rewriting license

HAN Lilong, LIU Qingtang, YANG Zongkai

(Dept. of Information Technology, Engineering Research Center of Education Information Technology, Huazhong Normal University, Wuhan 430079, China)

Abstract:

Because of the intrinsical flaw of XMLbased rights expression language such as XrML and ODRL, this paper demonstrated a kind of dynamic expression of digital rights by rewriting license. After defining the relevent essential elements of this model, it deeply explored and analyzed the execution flow. Finally, presented an application model.

Key words:multiset; license; rules; license rewriting



數字權限管理(digital rights management)的核心是數字權限描述模型。目前,對數字權限的描述通常采用可互操作的權限描述語言(RELs),即基于XML的XrML(extensible right markup language)和ODRL(open digital rights language)[1]。但是基于XML的RELs有其本質上的缺陷:a)當使用條件變復雜時其語法也變得復雜和模糊;b)缺乏形式語義,只能依賴語法和直觀語義來描述權限證書,不能進行有效的邏輯推理;c)缺乏有效的動態數字權限的描述機制;d)不能描述相關的版權法規等。針對上述問題,國外學者Gunter等人[2]在數字權限的形式語義和邏輯推理方面均作了深入的研究。Gunter借用了程序語言語義技術來定義證書(license)的語義,認為一個證書的語義就是動作執行序列(trace)的集合,每個trace表示該證書允許的動作序列。一個正確的執行過程就是允許license定義的合法動作序列得到執行,而禁止其他序列執行。Pucella和Weissman則在Gunter的基礎上,進一步嘗試了采用一種稱為“lic”的邏輯來推理數字權限。與Gunter一樣,他們也認為license的意思為動作序列的集合。但是,將證書持有人的一次消費過程r解釋為二元組(P,Q)。其中:P表示名字為n的license在t時刻給r指派的允許動作集合;Q表示名字為n的license在t時刻給r指派的必須執行動作集合,其邏輯本質上是一個時序邏輯。而在國內對數字權限動態描述的研究很少,其中東南大學計算機學院的孫偉等人[3,4]提出的兩種數字權限動態描述模型均值得借鑒。本文參考荷蘭Twente大學Chong等人[5]的LicenseScript項目,提出利用證書修改的方法來動態描述數字權限的模型。

1基本要素定義

1.1證書

證書是用來定義數字資源及其相關的使用條件。因此,證書至少包含兩個相關的信息項,即被授權的數據和使用該數據的條件(圖1)。

從圖1中可以看出,證書被定義成一個多集,其表現形式為 lic(content,Δ,B)。其中:content為證書所指數字資源的統一標志符;Δ表示一系列的Prolog程序子句[6,7],其定義了對數字資源所允許的特定操作。之所以選擇Prolog程序子句,是因為Prolog易讀易懂,非常適合描述證書。B是一組綁定數據包,存儲可修改的數據。通過Δ的邏輯推理,修改B中的數據,從而實現證書的修改,以達到數字權限的動態描述的目的。如果證書可看做是一個數據庫,那么Δ是其內涵,B則是其外延。證書為了與外部世界交互,還得定義應用程序接口(即API)。至于接口的精確定義也需要使用Prolog的邏輯設計方法,已經超出了本文的范圍。本文的讀者應該比較熟悉Prolog邏輯設計的基本術語及語義結論,例如利用 canpla(g)表示可以播放一段音樂。如果語句canplay(B,B′)在子句Δ中成功運行,則表示證書lic(a,Δ,B)允許資源a被執行。下面的證書:

lic(a,Δ,{exp ires≡10/10/2008})

其中:Δ為{canplay(B,B):-today(D),get_value(B,expires, exp),exp>D}表示允許執行a到一個給定的有效時間。today(D)和 get_value(B,n,V)兩個表達式的意思分別是: today(D)表示系統當前時間,get_value(B,n,V)則表示在集合B中獲取標志符n的值。

在很多情況下,證書在演化過程中伴隨著產生一系列新的綁定數據包。例如某證書允許播放一段音樂一定的次數,每播放一次,計數器自動增加1,可用表達式set_value(old B,name,value,new B)來表示。這個表達式允許綁定數據包B中的標志符name被修改并獲得新的值。這種機制通常用來支持證書的動態演化。例如有如下證書:lic(a,Δ,{played_times≡3})。其中Δ包含如下子句:

canplay(B,B′):-

get_value(B,palyed_times,R),R<10,

set_value(B,played_times,R+1,B′)

其含義為:首先把變量played_times的值賦給R,若R的值小于證書規定的使用次數(此處為10),則允許canplay(B,B′)執行;之后,play_times的值被修改為R+1,得到新的綁定數據包 B′,從而得到新證書lic(a,Δ,{played_times≡4})。

1.2規則

證書通常存在于設備中,設備和證書的交流在規則的約束下實現。規則被認為是設備的中間件,這里規則的語法采用多集修改的方式。

定義1任意規則都是一個四元組:rule(arg):lms→rmscond。其中:rule(arg)表示規則標簽;lms和rms表示多集;cond則是一系列形式如Pi├Qi的邏輯單元。

如果滿足以下兩個條件,規則被應用于目標多集MS上:

a)左邊的多集lms必須與多集MS中的某一子集匹配,該子集在規則執行后被右邊多集rms取代。

b)規則的執行條件cond必須得到滿足;這由cond中的邏輯語句來完成,并檢查結論是否成立。

規則執行的例子如下:

play(x):lic(X,Δ,B)→lic(X,Δ,B′)Δ├canplay(B,B′)

其具體含義為:如果條件Δ├canplay(B,B′)得到滿足,則規則應用于證書lic(X,Δ,B),證書執行完畢后被證書lic(X,Δ,B′)代替。

2證書修改的執行過程

上面已經提到,證書用lic(X,Δ,B)表示。為了方便起見,假設所有可用的證書均存放在給定的多集MS中。

定義2規則執行。如果有兩個多集MS和MS′,一個規則label:l→rcond和一個請求行為a,如果滿足以下四點,則MSaσMS′。

a)根據外部請求行為a,選擇與之匹配的規則label。需要注意的是,有可能存在多個規則與請求行為匹配,因此,此時選擇的規則并不一定是最終使用的規則。如果沒有規則與請求匹配,則請求就失敗了。

b)在多集MS中尋找與a)中所選的規則匹配的證書。由于a)中所選規則不是最終選擇,這里的證書相應地也不一定是最終選擇。這種情況導致用戶擁有多個證書允許他完成其想要完成的行為。

c)檢查規則所需的條件,選擇合適的規則。

d)執行規則,并轉換多集。

假如存在多集包含如下的證書:MS=[lic(music,Γ,C),lic(video,∑,D)]。其中:C={played_times≡2},D={played_times≡10},并且

Γ=∑={canplay(B,B′):-

get(B,played_times,N),N<10,

set(B,played_times,N+1,B′)}

規則R為

play(x):lic(X,Δ,B)→lic(X,Δ,B′)Δ├canplay(B,B′)

如果外部請求為play(music),其執行過程為:a)外部請求行為play(music)與規則play(X)匹配,則用music代替X,即σ1={X/music};b)對照MS中的證書lic(X,Δ,B),惟一的可能是lic(music,Γ,C),同樣則用Γ代替Δ,C代替B, 即σ2={Δ/Γ,B/C};c)評估條件├canplay(C,B′),由于C中變量play_times的值小于10,則所需條件得到滿足,canplay(C,B′)允許在子句執行,于是δ1={B/played_times≡3};d)MS被更新,證書lic(music,T,C)從MS中刪除,取而代之的是新證書lic(music,M,C′)(圖2),其中C′={played_times≡3}。

3基于證書修改的數字權限動態描述的應用實例

在現實生活中,通常存在這么一種情況:某一內容提供商免費在線發布一個數字資源庫,只是其中資源的部分內容被鎖定,被鎖定的部分只允許受限制地訪問。比如某視頻資源可以免費在低采樣頻率下播放,或者不能被全程播放,內容提供商通過讓用戶免費使用開放部分數字資源的方式來引起用戶對鎖定部分數字資源的興趣。下面來看看此類問題的證書該如何構建。首先鎖定數字資源的證書形式為

lic(track1,

[canunlock(B,_,code):-

get_value(B,unlock_code,unlock_code),

code==unlock_code

],[[unlock_code,1234]])

這個證書稱為基本證書。其中,track1只是任意資源的標志符;canunlock語句通過code變量提供輸入解鎖代碼的接口,該子句對照綁定數據包中unlock_code的值來檢測輸入代碼是否有效。為了解鎖該資源,用戶必須得到內容提供商提供的解鎖證書:

lic(track1,

[canplay(B,_,code):-

get_value(B,unlock_code,code)

主站蜘蛛池模板: 日本精品视频一区二区| 九九视频在线免费观看| 国产毛片片精品天天看视频| 在线观看无码a∨| 狂欢视频在线观看不卡| 丁香六月激情综合| 依依成人精品无v国产| 毛片在线看网站| 日韩精品专区免费无码aⅴ| 亚洲日韩久久综合中文字幕| 久久精品中文字幕免费| 婷婷色在线视频| 超清无码一区二区三区| 久久人人爽人人爽人人片aV东京热 | 99精品福利视频| 一边摸一边做爽的视频17国产| 精品人妻AV区| 国产哺乳奶水91在线播放| 高清不卡毛片| 美女被狂躁www在线观看| 草逼视频国产| 色天天综合久久久久综合片| 免费AV在线播放观看18禁强制| 黄片在线永久| 免费人成黄页在线观看国产| 国产高清在线精品一区二区三区| 国产 在线视频无码| 一本大道东京热无码av| 最新亚洲av女人的天堂| 国产在线自乱拍播放| 日韩欧美亚洲国产成人综合| 欧美中文字幕一区| 亚洲精品高清视频| 伊人久热这里只有精品视频99| 亚洲国内精品自在自线官| 国产无码在线调教| 欧美日韩精品一区二区在线线| 色欲色欲久久综合网| 特级aaaaaaaaa毛片免费视频| 免费大黄网站在线观看| 综合久久五月天| 国产美女在线免费观看| 欧美无专区| 中文字幕久久亚洲一区| 免费女人18毛片a级毛片视频| 久久精品国产国语对白| 福利片91| 青草免费在线观看| 亚洲天堂成人| 99久久精彩视频| 日韩久草视频| 99九九成人免费视频精品| 国产在线观看成人91| 成人伊人色一区二区三区| 国产永久在线视频| 她的性爱视频| 国产尤物在线播放| 69免费在线视频| 在线日韩日本国产亚洲| 高清视频一区| 视频二区国产精品职场同事| 日韩av无码DVD| 久久久久青草线综合超碰| 伊人久综合| 日本道中文字幕久久一区| 欧美日韩第二页| 国产午夜精品鲁丝片| 日韩av手机在线| 国产午夜精品一区二区三区软件| 91亚洲免费视频| 全部毛片免费看| 欧美高清视频一区二区三区| 婷婷中文在线| 国产微拍精品| 国产传媒一区二区三区四区五区| 91久久偷偷做嫩草影院精品| 亚洲第一成年人网站| 国产手机在线小视频免费观看| 91区国产福利在线观看午夜| jizz亚洲高清在线观看| 亚洲一区二区日韩欧美gif| 九九热免费在线视频|