0 引言
数字版权管理(Digital Right Management,DRM)是目前对网络中传播的数字作品进行版权保护的主要控制手段。DRM是由美国出版商协会来定义的:“在数字内容交易过程中对知识产权进行保护的技术,工具和处理过程”。DRM是采取信息安全技术手段在内的系统解决方案,在保证合法的、具有权限的用户对数字信息(如数字图像、音频、视频等)正常使用的同时,保护数字信息创作者和拥有者的版权,根据版权信息获得合法收益,并在版权受到侵害时能够鉴别数字信息的版权归属及版权信息的真伪。数字版权保护技术就是对各类数字内容的知识产权进行保护的一系列软硬件技术,用以保证数字内容在整个生命周期内的合法使用,平衡数字内容价值链中各个角色的利益和需求,促进整个数字化市场的发展和信息的传播。具体来说,包括对数字资产各种形式的使用进行描述、识别、交易、保护、监控和跟踪等各个过程。数字版权保护技术贯穿数字内容从产生到分发、从销售到使用的整个内容流通过程,涉及整个数字内容价值链。
本文主要研究DRM控制技术在多媒体音视频上的应用。
1 DRM控制原理
DRM技术是一项加强对音频、视频数字化产品内容版权保护的技术,其基本的工作原理:利用密钥(Key)将音频、视频等文件进行加密编码处理,再建立一个证书授权服务中心,加密的数字节目头部存放着Key ID和节目授权中心的URL;当用户使用这些加密文件时,应用软件会根据其包含在头文件中的有关属性自动链接到相应的站点(证书授权服务中心)获取相应的证书;只有通过授权中心的验证并获得授权,才能使用这些音、视频等文件,从而严密有效的保护了这些数字多媒体产品的版权和使用权限。下图介绍DRM系统工作原理:
1.1 文件加密与内容打包
先用加密软件对欲加密的媒体文件进行加密。此过程的原理为:由私有签名密钥(Privkey)、公有签名密钥(Pubkey)、许可密钥种子(Seek)和密钥标识(KeyID),并由许可密钥种子(Seek)和密钥标识(KeyID)生成一个密钥(Key),此密钥是用来加密保护媒体文件内容的;把密钥标识(KeyID)、证书颁发中心的网站地址、版本号等信息存放于加密媒体文件头部,并根据私有签名密钥(Privkey)签名其头部;然后加密内容并和头部打包成媒体文件。
1.2 发布内容
经加密打包的文件放在网上供用户下载、点播,也可刻录成光盘发售等途径发布内容,但在使用时必须确保能通过授权中心的验证并获得授权。
1.3 获取证书
用户使用加密文件时,客户端媒体版权管理器首先在本地检索是否存在有效证书,如果失败,则链接到许可证服务器;证书颁发中心的证书颁发页面接受客户端发送的加密文件内容头部和客户端的有关信息后,将许可密钥种子(Seek)和接收的密钥标识(KeyID)生成一个与内容打包时相同的密钥(Key),用于解密,再根据公有签名密钥(Pubkey)验证其头部;证书颁发中心同时定义了许可证的权限,如播放次数、起止时间等;接着创建一个证书,包含着解密内容的密钥和权限等内容;最后就是把证书传送到客户端版权管理器上。
1.4 文件播放
获取证书后,客户端媒体版权管理器验证该签名,并将该许可证放在许可证库中,接着客户端媒体版权管理器对内容进行解密,并根据权限播放流媒体文件。
2 DRM种类
目前主流的DRM技术有Widevine、Playready、Marlin、Verimatrix等。DRM技术的实现方式和与Android的对接方式都各不相同。在实现方式上分有不同的安全级别,低安全级的实现方案一般没有使用到Secure OS,DRM操作在Normal World中完成。高安全级的实现方案则采用了Secure OS,将DRM操作放到Secure World当中进行,保证DRM操作的安全性。在与Android的对接方式上,有的技术方案沿用Android DRM Framework,与之对接实现DRM管理,有的则摒弃Android DRM Framework,提供自己的上层调用API,对接方式较为自由。
下面对三种主要常见的DRM技术方案进行描述:
2.1 WIDEVINE
Widevine是google在ICS(android4.0)版本上新推出的一种DRM数字版权管理功能,有这个功能的话,就能从google指定的服务器上,下载经过google加密的版权文件,例如视频、应用等等。
google推出这个功能主要的目的是为了在应用内容上可以和苹果更好的竞争,由于目前android的开放性,导致基本上所有的android应用都可以很快的扩散并免费安装,因此导致给android开发应用的开发商以及个人很难从中充分获利,而苹果这点保护的很好,因此苹果的应用商店中的应用内容质量和档次明显更高。因此google推出它,最终目的就是可以进行收费。现在Widevine已经成为GMS(Google Mobile Service)中必备的内容,所有想要得到GMS的手机厂商,都需要根据GMS的要求搭载Widevine。
Widevine拥有三个安全级别,如下表所示,Level 1和Level 2是Widevine的硬件安全实现方案,采用Factorty Provisioning。Level 3是Widevine的软件安全实现方案,采用Field Provisioning。常用的方案为Level 1和Level 3。
2.2 PLAYREADY
Playready是微软开发的媒体文件保护技术,包括加密,输出的保护和数字版权管理(DRM)。Playready是目前应用较为广泛的DRM技术之一。
1. PlayReady所开发的产品有:
PlayReady Server SDK:用于服务器开发,实现内容包装、许可证分发、域管理和计量服务等。
PlayReady PC SDK:用于个人PC端的软件开发,实现PC端的许可证管理、在设备间传输保护内容、播放内容等。
PlayReady Client SDK for Android/iOS:用于开发Android/iOS移动设备端的应用程序,实现播放受PlayReady 保护的数字内容。
PlayReady Porting Kit:用于开发人员为不同设备创建Playready系统架构,从而支持Playready数字内容保护的相关功能(如许可证获取、内容解密)。
2. Playeready数据流
客户端和服务器的数据流包括两部分:受保护的多媒体内容和用来解密的License。主要流程如下:
- 内容提供方利用PlayerReady Server SDK加密多媒体内容,发送给服务提供方
- 服务提供方把加密的多媒体内容,推送到Web服务器
- 服务提供方部署用于解密多媒体内容的License服务器
- 客户端从License服务器获取License,从Web服务器获取多媒体内容,然后解密播放
3. PlayReady加解密流程
服务器端用客户端的公钥加密License,客户端用私钥解密License。多媒体内容用AES加密,AES的对称密钥在License里。具体如图:
2.3 MARLIN
Marlin DRM是由Marlin Developer Community(MDC)创建的一套DRM标准。MDC是由Intertrust,,Panasonic,,Philips,,Samsung和Sony这五家公司在2005年组建,是一个开放标准的组织。这五家公司后来又成立Marlin Trust Management Organization(MTMO)来管理认证许可,MTMO在2007年开始商业运作。
Marlin的工作流程可见下图:
3 Android端DRM控制架构
3.1 控制框架
Android平台提供了一个可扩展的DRM框架,允许应用程序根据和内容相关联的许可约束来管理受权限保护的内容。DRM框架支持多种DRM方案,一般来说某个设备支持的DRM方案是基于该设备制造商设计实现的。Android提供的DRM Framework是在下面两个层次上实现的:
1. DRM Framework API,它通过Android应用程序框架层暴露给应用程序使用,并且运行在标准应用程序所应用的Dalvik虚拟机。
2. Native层的DRM Manager,它实现了 DRM框架并且为DRM plugins暴露了接口,用来处理权限管理和各种DRM方案的解密。而最终的DRM技术都是在Plugins中以插件的形式实现的。
对应用程序开发者而言,DRM Framework提供了一个抽象的,统一的API接口,用于简化管理受保护的内容。API隐藏了复杂的DRM操作,并根据不同的DRM模式为受权限对象保护的和未受权限对象保护的内容提供了一个统一的操作模式。对于设备制造商、内容拥有者和互联网数字媒体供应商而言,Android提供DRM Plugin结构,使Android系统能够支持不同的DRM方案。
3.2 控制API
DRM API的主要功能如下:
(1)判断设备上安装的是哪一类DMR plug-ins (agents)。
(2)检索特定plug-ins的信息,如它们所支持的MIME类型和文件后缀类型。
(3)通过在线的DRM服务去注册用户或者设备。
(4)为受权限保护的内容检索许可证约束信息。
(5)检查用户是否有适当的权限去播放或者使用受版权保护的内容。
(6)将受保护的内容与相关权限相关联,这样就可以使用MediaPlayerAPI来播放内容。
3.3 插件管理控制
在Android DRM Framework中,API模块只是提供了一个统一的、抽象的DRM接口,而对于不同厂商的不同DRM标准,其最终还是要在Android Native层中以plugin的形式得以实现。每一个不同的DRM标准,都可以做成一套不同的Plugin,嵌入到Android操作系统中去。其中,API层通过binder机制同位于Native层的DrmServer进程中的DRM Manager模块通信,该模块是Native层中负责DRM管理、实现的重要模块,它负责管理、选择、加载所有的DRMPlugins插件。而Android DRM中,真正实现版权管理、权限控制、身份控制、内容解密等功能的,是DRM plugin模块。
DRM Framework使用插件架构来支持多种DRM方案。DRM Manager服务同DRM插件以分离的方式,在单独的进程中运行。每个从DrmManagerClient中发起的API调用通过Binder IPC机制跨进程的向DrmManagerService发起。DrmManagerClient提供给运行时应用java实现,同时它也为本地的module提供DrmManagerClient-native的实现。DRM Framework的调用者只同DrmManagerClient交流并且不需要关心具体的DRM实现方案。
4 总结
当前国内对数字媒体版权保护越来越重视,这时,数字版权保护以及建立在其之上的DRM技术就成了一个必须要重视的问题。同时,随着人工智能的快速发展,当前,AI变脸技术也被越来越多人掌握,甚至是零基础上手,这必将会导致音视频媒体文件被随意篡改,因此,通过DRM这种数字版权管理技术,就可以帮助人们识别出视频的真伪,以及版权的保护。