童鵬,陸陽,吳雷,2
1.合肥工業大學計算機與信息學院,合肥230009
2.安徽教育網絡出版有限公司,合肥230601
隨著互聯網和新媒體的發展,數字閱讀逐漸成為人們的主要閱讀方式之一。數字內容易于復制、轉發,導致數字內容存在大量盜版,侵權問題嚴重,嚴重阻礙了數字內容產業的發展,于是出現了一種新的概念——數字版權管理(DRM),其主要目的是保護數字作品內容,維護版權所有者和用戶的合法權益[1]。國內外在DRM方面做了大量的理論研究工作[2-5]。S.Müller等提出了一種基于屬性的分發加密算法,并在此基礎上給出了一種具有較強安全性的DRM模型[6]。Hsieh等提出一種訪問控制方案,對每個分段內容定義一個策略,從而實現細粒度控制的目的[7]。馬兆豐等提出一種新的支持時空約束的數字版權管理安全許可協議(CPSec DRM),支持在線、離線兩種版權許可模式,用戶在獲得域許可證后,無需依賴原來的許可證中心即可完成版權的二次分發[8]。張海鑫等結合現有的群簽名技術,提出一種改進的具有匿名性的DRM系統模型,合法用戶具有購買的匿名性,又可以揭露非法用戶的真實身份[9]。這些理論研究工作對DRM的發展具有一定的推動作用,使DRM技術日漸成熟。
近年來,數字出版產業漸漸發展為:服務提供商(Service Provider,SP)從諸多內容提供商(Content Pro-vider,CP)獲取數字內容的版權,為用戶提供增值服務。按需出版是SP為用戶提供增值服務的一種方式,用戶可以根據自己的需要購買數字內容中部分內容,不必購買整個數字內容,這種出版方式將是未來數字出版的發展趨勢,由于智能手機、平板等閱讀終端的迅速發展,人們對按需出版需求更加迫切。按需出版要求能夠針對數字內容的不同部分為用戶提供不同的權限,并且要求DRM系統能夠支持數字內容的二次分發:
(1)不同用戶之間的分發,用戶可以將自己不再需要的某段內容的權限(比如:閱讀、打印、摘抄等)轉移給別人。
(2)用戶不同設備間的分發,用戶購買的數字內容能在自己的多個閱讀終端上使用,可以將不同設備上的分段內容進行個性化的組合,改善閱讀的體驗效果。然而現有的數字權利描述語言(Rights Expression Language,REL)規范,都是對整個數字內容進行權利描述,只能粗粒度地描述權利的轉移/委托,需要提出或擴展一種REL,能夠細粒度描述分段內容權利的轉移/委托[5],尤其是用戶對分段內容的二次分發過程中的權利轉移/委托。
本文通過研究開放數字權限語言(Open Digital Rights Language,ODRL)模型,對ODRL模型進行擴展,提出了一種分段控制下的DRM二次分發模型,實現數字內容分段加密封裝、分段權利描述、動態分段授權等,讓用戶在二次分發過程中可以對分段內容進行動態授權,更靈活地使用數字內容。
ODRL是一種用于表達數字內容使用時相關權限的語言,其目的是在數字資源(電子出版物、音頻、電影、計算機軟件及其他數字格式的產品)的出版、發布、消費工程中,提供一種靈活的互操作機制來支持對數字資源透明地使用。ODRL是一種輕量級的、簡單的表示權限的語言,易于實現,并能夠優化權限表達式,獨立于內容的類型和傳輸機制。因此,ODRL被OMA(Open Mobile Alliance)接受,作為一個標準的權限表達語言用在所有的移動內容上[4]。
目前最新的ODRL核心模型是2012年4月24號發布的ODRL 2.0版[10],如圖1所示。相對于先前的ODRL模型,ODRL 2.0版的核心結構做了重大調整,并根據最新的安全研究、訪問控制、權限管理以及ODRL的研究和實現,集合了更多的語義和要求,將會取代ODRL 1.1版。

圖1 ODRL核心模型Version 2.0版
ODRL 2.0版模型以Policy實體為核心,Policy實體指向Permission和Prohibition實體,Permission是對數字內容Asset所允許進行的一些使用或動作Action(例如播放某段數字內容),Constraint是對Permission的約束(例如最多播放10次)。類似于Permission,Duty表示執行某個Permission時應承擔的責任(例如播放某段數字內容需要支付$5的費用)。Prohibition也類似于Permission,但Prohibition并沒有指向Duty,Prohibition是禁止執行某個動作Action(例如禁止用戶商業化數字內容),授權用戶Party通過Role實體鏈接到相應的Permission、Duty和Prohibition。
新的模型加入了Action實體,用以表示用戶對數字內容的相關操作,如:修改、復制、二次分發等。新版本模型優化了模型在語義方面的表達能力,獨立于具體的實現,集合了健壯信息模型應具有的語義表達能力和可擴展性。
雖然ODRL 2.0版的核心結構做了重大調整,集合了更多的語義和要求,但對數字內容進行分段控制,存在如下問題:
(1)分段的數字內容之間缺乏邏輯結構信息,各個分段內容之間無法關聯;
(2)各個分段內容的加密方式不一樣,密鑰具有隨機性,無法實現分段內容的密鑰管理;
(3)無法對分段的數字內容進行權利描述;
(4)對分段內容無法進行細粒度描述權利的轉移/委托,比如:動態權利拆分、更新、轉移、共享。
數字內容分段控制技術是將數字內容按照不同分段粒度進行分段,然后對數字內容分段加密封裝,實現分段權利描述和動態分段授權,讓分段后的數字內容在授權范圍內合法的使用。
定義1 將數字內容分段處理,得到n段的數字內容記為RO(RO1,RO2,…,ROn)。
定義2 對每段ROi(i=1,2,…,n)分別隨機生成m個密鑰,記為Ki(ki,1,ki,2,…,ki,m)。
定義3 對每段ROi(i=1,2,…,n)分別使用對稱加密算法加密,使用生成的Ki對ROi加密,得到m個分段加密數據包為E(ki,1,ROi),E(ki,2,ROi),…,E(ki,m,ROi)。
根據用戶所需要的分段內容,分別從其對應的m個加密數據包中隨機取出一個加密數據包,將取出的n段加密內容隨機組合封裝成RO′。SP將不同數字內容中相關聯的分段內容進行組合,或者根據用戶的需求對分段內容進行組合,加密封裝,然后分發給用戶,為用戶提供個性化服務。
為了實現數字內容的分段控制,需要對ODRL模型進行擴展,如圖2所示,在圖1模型的基礎上,加入實體Section、Structure和Key Info。

圖2 ODRL擴展
實體Section表示分段內容,必選屬性uid為分段內容的唯一標識,可選屬性name和description用于描述分段內容,在實現ODRL時可以把Asset當做Section的父類。Key Info實體表示分段內容的加密方式和密鑰,每個分段內容Section都對應一個Key Info,便于分段內容的密鑰管理。Structure實體建立實體Asset與分段內容Section之間的關聯關系,通過屬性preSec和nextSec描述Section之間的邏輯結構信息。Permission實體、Duty實體和Prohibition實體通過Relation實體與Section實體建立關聯關系。對于ODRL的每個Policy,有兩個主體:Asset和Section。
定義4 根據ODRL模型將許可證定義為:Lic(Asset,Δ),Asset為數字內容的唯一標識,Δ為Policy的集合。
定義5 分段授權操作為:Operate(type,Σ,Γ,party):
(1)type對應于Policy實體中的type屬性;
(2)Σ為Asset的分段內容集合;
(3)Γ表示對數字內容具體操作權限的集合;
(4)party表示一個用戶、群體或組織。
定義6 分段內容權限動態轉移過程可定義為Operate(type,Σ,Γ,party):Lic(Asset,Δ)→Lic(Asset,Δ′)?Policy(type,policy)。
如果在Δ中存在Policy實體與Policy(type,policy)相匹配,則執行操作Operate(type,Σ,Γ,party),執行完畢后用Δ′取代Δ,操作Operate可能會修改Policy,所以Δ需要更新。
根據上文的定義4、5和定義6,添加ODRL細粒度動態權利描述:
(1)授權拆分Operate(split,Σ,Γ,party):Lic(Asset,Δ)→Lic(Asset,Δ′)?Policy(split,policy),表示將用戶party的數字內容Asset中的分段內容集合Σ的操作權限Γ從Δ中分離出來,返回參數policy。
(2)授權追加Operate(addition,Σ,Γ,party):Lic(Asset,Δ)→Lic(Asset,Δ′)?Policy(addition,policy),表示用戶party將分段內容集合Σ的操作權限Γ加入到數字內容Asset的權利描述Δ,Δ更新為Δ′。
(3)授權更新Operate(update,Σ,Γ,party):Lic(Asset,Δ)→Lic(Asset,Δ′)?Policy(Operate,policy),表示用戶party將數字內容Asset中的分段內容集合Σ的操作權限Γ加入到的權利描述Δ,Δ更新為Δ′。
(4)授權轉移Operate(transfer,Σ,Γ,party):Lic(Asset,Δ)→Lic(Asset,Δ′)?Policy(transfer,policy),表示將分段內容集合Σ的操作權限Γ授予用戶party。授權分享Operate(share,Σ,Γ,party):Lic(Asset,Δ)→Lic(Asset,Δ′)?Policy(share,policy):表示將分段內容集合Σ的操作權限Γ共享給用戶party。
分段控制二次分發建立在傳統分發模型的基礎上,采用分段控制技術,通過分段內容動態授權,實現二次分發。加密機制采用DABE(Distributed Attribute-Based Encryption)[6]。假設分發服務器為用戶分配一個公鑰PKU和一個私鑰SKU,用于用戶和服務器之間的通信??蛻舳说腄RM控制器獲取用戶設備的機器指紋,生成序列號,通過不可逆的字符串變換算法,如MD5算法,產生唯一的字符串序列MFP(a1,a2,…,an),發送給服務器,服務器為每一個序列ai(i=1,2,…,n)生成一個公鑰PKai,u和一個私鑰SKai,u,這樣便得到了一組公鑰PKA,u(PKa1,u,PKa2,u,…,PKan,u)和一組私鑰SKA,u(SKa1,u,SKa2,u,…,SKan,u)。數字內容RO(RO1,RO2,…,ROn),其分段內容對應的加密密鑰為K(k1,k2,…,kn),許可證服務器用PKA,u對權限描述文件加密E(PKA,u,Rights),得到許可證Licence。
通過組建Group[11]來實現用戶之間的二次分發,結合數字內容分段控制,實現用戶之間分段控制二次分發。
用戶A要出售自己的版權或部分分段版權,先向分發服務器申請組建一個Group,其他用戶需要加入這個Group才能參與二次分發。
步驟1 用戶A發送請求:用戶A創建Group,上傳數字內容的許可證Licence。
步驟2 用戶B發送請求:用戶B加入Group,用戶B的客戶端DRM控制器獲取機器指紋字符串序列MFPB(b1,b2,…,bn),將MFPB和請求分發的權限和分段內容集合σ發送給分發服務器。
步驟3 權限轉移:
(1)首先分發服務器驗證用戶A的許可證Licence和用戶B請求分發權限信息的有效性,如果發現無效信息,則終止分發。
(2)然后執行授權拆分Operate(split,σ,action,A):Lic(Asset,Licence)→Lic(Asset,LicenceA)?Policy(split,policy),將要轉移的操作集action從Licence中分離出來得到新的Policy集合LicenceA。
(3)最后對LicenceA執行權限轉移Operate(transfer,σ,action,B):Lic(RO,policy)→Lic(ROB,LicenceB)?Policy(transfer,policy′)。如圖3所示,將分段內容集的action權限動態授權給用戶B,首先檢驗用戶A是否具有權限轉移distribute操作的權限Perm ission,然后將用戶B加入權限的party中,這樣用戶B就能夠合法使用轉移獲得的權限。

圖3 Operate(transfer,σ,action,B)示意圖
步驟4 完成分發:分發服務器重新封裝分段內容,將分段內容和許可證分別分發給A和B,分發服務器跟用戶A和B之間分別發送確認消息。
用戶要在自己的多個設備間共享使用數字內容,先向分發服務器申請組建一個Group,用戶其他設備需要加入這個Group完成二次分發后,便能獨立使用。
步驟1 設備A發送請求:通過設備A創建Group,上傳數字內容的許可證Licence。
步驟2 設備B發送請求:設備B加入Group,設備B的客戶端DRM控制器獲取機器指紋字符串序列MFPB(b1,b2,…,bn),將MFPB和請求分發的權限和分段內容集合σ發送給分發服務器。
步驟3 權限轉移:分發服務器驗證許可證Licence和分發權限信息的有效性,驗證有效,執行權限共享Operate(share,σ,action):Lic(RO,Licence)→Lic(RO,Licence′)?Policy(share,policy)。如圖4所示,將分段內容集的action權限動態授權給設備B,先檢查用戶A是否具有權限共享copy操作的權限Permission,包括檢驗權限共享限制Constraint,如:權限共享次數不能超過最大次數,檢驗權限通過后,生成用戶B獲得操作action和action操作的權限Permission等。

圖4 Operate(share,σ,action,B)示意圖
步驟4 完成分發:生成新的許可證后,將許可證重新分發給設備A。設備A將許可證和分段內容分發給設備B。
本文通過對ODRL模型進行擴展,實現分段內容的權利描述和動態授權,根據用戶的需求進行分段封裝組合,為用戶提供個性化的服務。在分段控制二次分發模型下,用戶可以將數字內容中不需要的分段內容進行二次分發,將其權限轉移給需要的用戶,擴展后的模型允許用戶在自己不同設備間共享使用數字內容。本文的方案已成功用于數字內容跨終端出版平臺關鍵技術研究項目。
假設用戶購買的數字內容有n段,通過對分段內容的加密封裝,每段有m個加密包,各個分段內容直接的邏輯結構關系是通過隨機組合的,用戶購買數字內容的封裝方式就有n××種,用戶無法獲取數字內容采用了哪種封裝方式,也不知道播放的某段內容對應于RO中的哪個分段,而且每段內容的密鑰均不同,攻擊者試圖通過暴力破解數字內容是很困難的。一旦某個平臺的分段密鑰泄露,也不會影響到其他平臺的密鑰。
將用戶的機器指紋通過不可逆的字符串變換算法,產生唯一的字符串序列MFP,保存在權利描述文件中,即使權利描述文件被暴力破解,不會造成用戶的隱私泄露。根據MFP生成公鑰PKA,u(PKa1,u,PKa2,u,…,PKan,u)和私鑰SKA,u(SKa1,u,SKa2,u,…,SKan,u),如果攻擊者偽造機器指紋,但無法獲取到SKA,u不能解密許可證。用戶在進行權限轉移時,Policy記錄了權限動態轉移的過程,通過function屬性值為assigner的role實體,可以追蹤權限的來源。
為了驗證分發分發方案的性能,分發服務器配置:CPU:2個Intel 4核Xeon E7520處理器(1.86 GHz,18MB緩存),內存:16 GB(4×4 GB),用戶之間二次分發中權利轉移的時間為42.3 s/1 000次,用戶多設備間共享權利轉移的時間為38.9 s/1 000次,用戶體驗較好。實測結果如表1所示,鑒別用戶個數為1 s內累加的總數,系統吞吐量為單位時間內服務器完成分發的次數。從實驗結果可以看出,不斷增加分發服務器的運算量,分發方案的性能并沒有發生明顯的下降。

表1 實驗運行的結果
本文首先分析了ODRL模型應用于當前的數字內容存在的不足,對ODRL模型擴展,擴展后的模型與ODRL模型相比具有以下優勢:
(1)擴展后的模型增加了分段的數字內容之間邏輯結構信息,各個分段內容之間可以建立有效的關聯??梢詫⒉煌瑪底謨热莸姆侄蝺热菡显谝黄?,進行內容的聚合,SP可以更好地提供個性化服務,方便用戶的使用。
(2)各個分段內容的加密方式不一樣,不同用戶即使擁有相同的數字內容,各個分段的加密密鑰具有隨機性,即使某個用戶的分段密鑰泄露,也不會影響到其他用戶的密鑰。
(3)擴展后的模型對分段內容無法進行細粒度描述權利的轉移/委托,比如:動態權利拆分、更新、轉移、共享,用戶可以方便地進行分段內容權限的動態操作,更適合目前的商業模式。
再將擴展后的模型應用于數字內容的二次分發,實現了數字內容的分段加密封裝、分段權利描述、動態分段授權等。本文的方案與其他方案的對比,如表2所示。

表2 幾種數字內容版權保護方案比較
Müller等[6]和馬兆豐等[8]提出的方案具有很好的安全性,沒有考慮從分段的角度實現數字內容的版權保護,無法滿足用戶對分段二次分發的需求。Hsieh等[7]提出的方案能夠提供細粒度的權利描述和授權功能,但該方案沒有實現權利與內容的分離,難以實現數字內容的動態授權管理。許東陽等[12]提出的方案有效地實現了數字文檔的分段加密和動態授權,但該方案的分段和動態授權是針對CEBX文檔的,不具有共性和可擴展性,無法用于其他類型數字內容的動態授權管理。
以傳統的DRM模型為基礎,對分段數字內容加密封裝,然后對ODRL模型進行擴展,實現了數字內容的分段控制權利描述;利用分段控制權利描述模型詳細分析了分段內容的二次分發過程,擴展后的模型能記錄權限動態轉移的過程,從而實現了數字內容的動態分段授權過程;利用記錄權限動態轉移的過程,可以實現數字內容侵權的追蹤。
下一步的工作重點是對REL進一步擴展,實現更細粒度的權利描述,應用于商業模型中。
[1]Bechtold S.The present and future of digital rights management-musings on emerging legal problems[M]//Becker E.Digital Rights Management:Technological,Economic,Legal and Political Aspects.Berlin:Springer-Verlag,2003:597-654.
[2]魏景芝,楊義先,鈕心忻.OMA DRM技術體系研究綜述[J].電子與信息學報,2008,30(3):746-751.
[3]俞銀燕,湯幟.數字版權保護技術研究綜述[J].計算機學報,2005,28(12):1957-1968.
[4]李慧穎,趙軍,翟玉慶,等.數字權限表達語言綜述[J].計算機科學,2004,31(7):12-15.
[5]張志勇,牛丹梅.數字版權管理中數字權利使用控制研究進展[J].計算機科學,2011,38(4):48-54.
[6]Müller S,Katzenbeisser S.A new DRM architecture with strong enforcement[C]//Proceedings of the International Conference on Availability,Reliability and Security.[S.l.]:IEEE Computer Society,2010:397-403.
[7]Hsieh G,Foster K,Emamali G,et al.Using XACML for embedded and fine-grained access control policy[C]//Proceedings of the 2009 International Conference on Availability,Reliability and Security,Fukuoka,Japan,2009:462-468.
[8]馬兆豐,范科峰,陳銘,等.支持時空約束的可信數字版權管理安全許可協議[J].通信學報,2008,29(10):153-163.
[9]張海鑫,程麗紅,李順東,等.群簽名在DRM系統隱私保護中的應用研究[J].計算機工程與應用,2011,47(15):108-111.
[10]ODRL Version 2.0 Core Model[EB/OL].(2012-04-24)[2012-06-01].http://www.w3.org/community/odrl/two/model.
[11]鄧子鍵,來學嘉,何大可.支持權利二次交易的數字版權保護模型[J].計算機工程,2009,35(20):20-22.
[12]許東陽,湯幟,俞銀燕.SDDRM:基于分段的電子文檔動態版權管理[J].北京大學學報:自然科學版,2012,48(4):565-573.