DRM学习入门(一)

Android设计了一个通用的DRM软件框架,不同的DRM解决方案可通过Plugin的方式集成到Android系统中。DRM Framework API模块通过Binder机制和DRMserver进程中的DRM Manager模块通信,DRM Framework API模块是Framework层暴露给App的接口,其中最主要的类是DrmManagerClient。DRM Manager加载并管理系统中所有的DRM插件。手机可能会集成多个DRM Plugin。因为媒体文件如采用不同DRM解决方案进行加密,手机播放时,DRM Manager需找到对应的DRM Plugin进行解密。

Android中的DRM软件架构:

Widevine是google推出的一种DRM数字版权管理功能,支持从google指定的服务器上,下载经google加密的版权文件,如视频、应用等。现在Widevine已经成为GMS(Google Mobile Service)中必备的内容,所有想要得到GMS的手机厂商,都需要根据GMS的要求搭载Widevine。

Widevine DRM解决方案结合以下行业标准,提供强大的多平台内容保护:

基于HTTP的动态自适应流技术(DASH) 
DASH能够使高质量媒体内容通过互联网进行无缝传输。DASH所采用的是标准HTTP 协议,因而厂商可在现有的网络基础设施上便利地利用DASH技术。这些网络基础设施包括网络服务器、内容分发网络、防火墙等。

数据通信常用安全加密技术(CENC)
CENC是一种基于行业标准的内容加密技术。CENC能够识别单个或多个DRM系统上的标准加密范式和关键映射机制,这就使厂商能够使用不同的DRM系统对同样的文件进行解密。CENC技术还能使内容提供者仅通过一次加密就将内容传输至众多用户设备及其DRM系统。

加密媒体扩展协议(EME)
EME是W3C提出的标准,该协议提供的一整套通用API不仅能够用来与DRM系统进行互动,还能管理许可证秘钥交换。EMC允许内容提供者为所有设备设计单一的解决方案。

Widevine Classic是Google专有的DRM方案,用于直播,点播和下载内容。 它要求内容以Google自己的特定格式打包。在现代消费设备和平台中,Widevine Classic已被Widevine Modular取代。与Widevine Classic一起使用的视频内容格式为:Widevine(.WVM)。Widevine Modular支持MPEG-DASH,CMAF,HLS和Smooth Streaming ABR视频格式,以及公共加密(CENC)等开放标准。


Widevine 测试APK有两个:

WidevineSamplePlayer.apk 测试Widevine Classic

ExoPlayerDemo.apk 测试Widevine Modular

Widevine安全级别

安全级别

安全Bootloader

Widevine密钥配置

安全硬件或ARM Trust Zone

Widevine密钥箱和视频密钥处理

硬件视频路径

1级

工厂提供Widevine Keys

密钥永远不会暴露给主机CPU

硬件保护的视频路径

2级

工厂提供Widevine Keys

密钥永远不会暴露给主机CPU

硬件保护的视频路径

3级

是*

现场提供Widevine Keys

没有

清除暴露给主机CPU的密钥

清晰的视频流传送到视频解码器

手机厂商可以通过Google的授权以获取Widevine DRM对应的软件包从而将Widevine DRM集成到自己的产品中。

Widevine DRM代码结构大体可分为三部分:

1、Android中的基本框架。包括WVMExtractor等。这部分代码在AOSP(Android 开放源代码项目)中可以看到。主要功能实现封装在Widevine专利代码包。

2、Widevine专利代码包。需要得到Google授权才能得到。该包提供了很多Widevine专用库用于完成Widevine DRM权限检查、解密。它还提供了一些简单App用于测试。

3、手机厂商自身的安全认证。Widevine支持在硬件层与厂商的安全机制绑定,在boot等底层中加入自主研发的安全机制,只有通过可信赖的boot loader才能使用具有正常权限的手机软件,并支持Widevine机制。

Android系统中的Widevine Crypto插件:

Microsoft PlayReady是世界上最广泛部署的内容保护技术之一。PlayReady基于一种名为“域名”的虚拟环境,人们可在自己的域名中登录多种设备,把内容传输到其他的域名登录设备上。用户可以将内容多次下载到不同设备上。SmoothStreaming是微软开发的一套用于支持流媒体传输的服务。根据客户端的CPU和网络带宽的能力,可以动态调节码率的传输。

安全加密技术概念拓展:

VPN属于远程访问技术。例如某公司员工出差到外地,他想访问企业内网的服务器资源,VPN方法就是在内网中架设一台VPN服务器。VPN使用的是互联网上的公用链路,实质上就是利用加密技术在公网上封装出一个数据通讯隧道。

ARM TrustZone® 技术是系统范围的安全方法,此系统方法意味着可以保护安全内存、加密块、键盘和屏幕等外设,从而可确保它们免遭软件攻击。处理器架构上,TrustZone将每个物理核虚拟为两个核,一个非安全核(Non-secure Core, NS Core)安全核(Secure Core)。两个虚拟的核以基于时间片的方式运行,根据需要实时占用物理核,并通过Monitor Mode在安全世界和非安全世界之间切换,Trustzone下的Monitor Mode实现了同一CPU上两个操作系统间的切换。逻辑上,安全世界中,安全系统的OS提供统一的服务,针对不同的安全需求加载不同的安全应用TA(Trusted Application)。

系统上电复位后,先从安全世界开始执行。安全世界会对非安全世界的bootloader进行验证,确保非安全世界执行的代码经过授权而没有被篡改过。然后非安全世界的bootloader会加载非安全世界的OS,完成整个系统的启动。在非安全系统的bootloader加载OS时,仍然需要安全世界对OS的代码进行验证,确保没有被篡改。基于安全考虑,各家TrustZone都实行闭源。

 

猜你喜欢

转载自blog.csdn.net/songkai320/article/details/81702409