童鹏,陆阳,吴雷,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,用于用户和服务器之间的通信。客户端的DRM控制器获取用户设备的机器指纹,生成序列号,通过不可逆的字符串变换算法,如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.