Android下如何实现数字视频版权保护?-【专注于数字资产管理,数字资产交易,版权保护,版权交易,数据安全】墨者安全科技
墨者链--数字资产保护与交易_数字版权保护与交易_数字内容_数据信息安全保护与交易平台!墨者链--专业数字资产版权保护与交易平台!

主页 > 数字版权保护与交易 > Android下如何实现数字视频版权保护?

Android下如何实现数字视频版权保护?

墨者安全数字资产版权交易平台 2019-04-30 17:31 数字版权保护与交易 89 ℃
本文简略地介绍了如何在Android下如何实现数字视频版权保护以及与其适配的Secure Video Path的要点。希望本文能够省去大家一些阅读代码和文档的时间,帮助接触Android DRM框架不久的朋友。
 
 
数字视频版权
 
DRM(Digital Rights Management)是一个成熟的操作系统中必须实现的功能。DRM提供的功能正如其字面的意思,可以帮助保护数字版权;目前最直接的一个应用就是对在线播放的媒体流进行保护。在Android下DRM相关的代码被放置在了多媒体的架构当中。
 
对于通用的mediaDRM架构,比如上文提到的ClearKey;或者商用的DRM场景比如Widevine或者Playready;DRM交互协议部分基本已经实现,留下的与设备的密钥相关的操作一般需要被放置在一个安全的环境里进行。OEM一般需要阅读DRM场景的文档,配合DRM场景的要求实现OEM必须要实现的模块。实现这些模块是为了达到以下两个目的:
 
1. 将安全系统与DRM框架对接,以实现DRM框架所必须的安全功能;比如保护设备私钥等。常见的做法有使用硬件安全环境;或者运行在可信执行环境(TEE)的安全操作系统(Secure OS)。
 
a.保护密钥是最基本最重要的DRM要求。Widevine L2就是要求保护密钥;L1则是保护密钥+Secure Video Path;而L3基本只是为了测试Widevine协议而存在,既不保护密钥也不保护Video Path;
 
b.密钥的产生和维护过程,又是另一个安全相关的主题;在这篇文章里不做赘述。
 
2.实现一个安全通路使得从解密开始直到被显示都是安全的。
 
为了保存解密后的媒体流,为解码和显示做好准备,安全内存必须被提供。安全内存有许多实现方式。使用防火墙或者内存保护单元(MPU – Memory Protection Unit)是比较常见的方法。而对这些安全内存进行分配和使用的操作,Android提供了ION这个组件。
 
ION是一个安卓下统一的堆(Heap)管理接口。使用ION可以灵活的实现一些特定的内存管理器;正适合作为管理安全内存的接口。ION的实现基于DmaBuf;后者是一套内核API,可以实现在进程间的Dma内存共享;ION在内核API的基础上提供了接口供应用程序调用(/dev/ion);使得用户程序也能够分配在进程间共享的Dma内存。
 
最简单的安全内存实现则是在内存中预留一块区域为安全内存;使用MPU对此地址范围的内存进行保护,将不合格的存取请求拒绝。这一块预留的内存可以使用ION Heap管理起来;让用户程序可以在这个Heap里分配和释放内存;然而,仅仅是分配释放;想Memory Map以后再进行存取,是不可以的(MPU会拒绝非安全存取)。
 
MPU的规则只能在安全模式下定义;一般可以放在更早的启动组件里进行(Bootloader);如果具有动态内存权限设置功能的MPU,对MPU规则的设置可以放在Secure OS里完成。为了保证系统的完整性,安全启动(Secure Boot)必须被打开,验证Bootloader和Secure OS的完整性;防止数字视频版权非法篡改。


当前位置:主页 > 数字版权保护与交易 > Android下如何实现数字视频版权保护?

猜你喜欢

标签列表
网站分类