曾几何时,我一直猎奇,像爱奇艺、腾讯视频、优酷这些视频渠道是如何操控版权的,就比方,如何避免用户下载后发布到其他途径,最近触摸了DRM技能,瞬间就懂了。
DRM介绍
DRM(Digital Rights Management),即数字版权办理,是在数字内容买卖进程中,对知识产权进行维护的技能、东西和处理进程。它的意图是避免数字内容被未经授权的用户仿制、修正和分发,以维护知识产权一切者的权益。在日常生活中,咱们常常与 DRM 技能打交道。比方,电影上映前,咱们不能在视频网站上观看电影,只能去电影院。这是内容供给(发行)商对自己的数字内容进行办理的一种结果。
DRM工作原理
先贴一张图,然后咱们再做简略的阐明
上图中,RAM想要给SHYAM传递小纸条,但由于距离较远,中间需求三个人进行传达,为了避免这三个人偷看小纸条内容,他们找来了HARI,HARI手上有一本密码本,每次RAM传递小纸条之前先找HARI拿到密码本,然后依据密码本的规则对小纸条内容进行加密,然后再将加密后的小纸条传递给SHYAM,这样,即使中间三个人偷看了小纸条,由于没有密码本,所以也看不懂纸条的内容。SHYAM收到小纸条后,再向HARI获取密码本,然后对小纸条内容进行解密,这样SHYAM就能看到原始内容了。
现在,咱们把RAM看成是视频发行商,SHYAM看成是观众,HARI看成是版权办理商,就有了以下这种关系图
从上图中能够看出,咱们想要向认证用户安全地发送一部电影。需求:
- 向DRM厂商的服务器恳求密码本
- 然后运用密码本加密视频
- 将电影视频发送给用户
- 用户向DRM厂商的服务器恳求密码本解密视频
- 现在用户就能够观看电影了
这下视频版权办理是不是就一目了然了。但以上只是最初DRM的设计思想,现实中却无法正常运行,由于还没有处理多种分辨率的问题,这就需求对视频进行切片(ABR)和打包。
视频切片和打包
ABR: 经过运用ABR技能,电影能够被编码成不同的码率-分辨率组合(也称为码率阶梯)并被分割成小的视频块或许切片。每个视频切片包含几秒钟视频,能够被独自解码。
打包是指将电影分割成小的视频切片,并运用清单(manifest)或许播映列表对其进行描绘。当用户想要播映电影的时候,他需求按照播映列表的信息播映。
依据可用带宽,播映器恳求特定码率版别的视频切片,CDN响应后回来被恳求切片。
这就完毕了吗?不,这儿边还存在很大的一个问题需求处理,视频的加密问题。
视频加密
前面说,视频发行商在发布视频时,需求向DRM服务商获取密码本,这儿的密码本实际上是一种授权,便是说经过DRM服务商的授权,他才会对你的视频进行版权维护,并不是对视频内容进行加密,真正的视频加密还得涉及到密码学相关的技能,最常用的加密方式是AES,AES归于对称加密,这就涉及到密钥的保存。在DRM中,密钥也保存在DRM服务商手上,跟着视频清单一同发送给视频播映器
好了,DRM的中心原理大概便是这些,假如想了解更详细的内容,可阅读下面的参考文献。
DRM厂商
上述DRM工作原理图中,有一个很重要的人物便是DRM服务商,现在首要有三大服务商,分别对应自己的DRM技能方案,分别是:
-
Apple FairPlay
-
Google Widevine
-
Microsoft PlayReady
国内爱奇艺最近也自主研发了自己的DRM处理方案:iQIYI DRM-S。而国内的视频渠道简直都是打包了一切的的DRM方案,以针对不同的渠道和体系。以下是爱奇艺的整体DRM处理方案
Widevine介绍
Widevine仅适用于根据Chromium的操作体系、Android设备以及其他Google相关设备和浏览器。
Widevine的安全等级
- L1
在L1等级,供给了最高的安全性。内容在设备内进行解密,并运用硬件维护,以避免原始数据泄露。一般用于高质量视频和高分辨率的流媒体。取得L1认证的设备能够播映高质量的内容。像Amazon Prime Video和Netflix等流媒体服务需求L1安全性。假如在未取得认证的设备上观看,无法播映高清或超高清的高质量内容。
- L2
L2具有较高的安全性,但不像L1那么严厉。即使设备未取得L1认证,依然能够播映内容。一些设备运用软件来维护数据。对于较低分辨率的视频和音乐内容,或许会运用L2。假如想要享受更高质量的内容,主张运用取得L1认证的设备,而不是L2。尽管L2或许不够满足要求,但某些内容依然或许供给高质量的视频。因此,不能一概而论地认为必须运用L1。
- L3
L3的安全等级最低。首要用于模拟器和一些旧设备等情况,内容维护相对较弱,剖析和仿制相对简单。此外,一些服务如Amazon Prime Video和Netflix也或许运用L3。尽管能够运用L3,但危险较高,不该希望高质量的内容。运用L3时需求谨慎考虑这些要素。
检查Widevine等级
能够运用DRM Info App检查设备的widevine安全等级,该App能够在Google Play上找到,文末贴了App的下载链接。大多数主流制造商的智能手机一般都支撑L1至L3的某一个等级。假如发现您的设备不支撑Widevine,那或许是制造商为了简化流程或许您的智能手机不符合规范。
假如app打开闪退,阐明设备并不支撑Widevine。
测验Widevine功能
许多流媒体app都运用了Widevine,比方Youku、腾讯视频、IQIYI、YouTube、Netflix等,这儿引荐运用Google的官方播映器ExoPlayer进行测验,文末供给下载链接
(要点)在Android中集成Widevine
step1:获取Widevine源码
从官网下载Widevine源码,注意,AOSP默许是没有Widevine源码的,需求手动集成,由于需求跟Google签订法令协议,然后由Google授权访问Widevine代码库,具体见Google官网流程。
step2:将源码放置到vendor目录下vendor/widevine/
step3:增加编译配置
device/qcom/{product combo name}/BoardConfig.mk
中增加
#这儿设置的L3等级,L1等级需求跟Google签订协议,获取Keybox
BOARD_WIDEVINE_OEMCRYPTO_LEVEL := 3
device/qcom/{product combo name}/{product combo name}.mk
中增加
PRODUCT_PROPERTY_OVERRIDES += drm.service.enabled=true
PRODUCT_PACKAGES += com.google.widevine.software.drm.xml
com.google.widevine.software.drm
PRODUCT_PACKAGES += libwvdrmengine
vendor/qcom/proprietary/common/config/device-vendor.mk
中修正
SECUREMSM += InstallKeybox
#L3等级需求删去oemcrypto库
#SECUREMSM += liboemcrypto
#SECUREMSM += liboemcrypto.a
SECUREMSM += libhdcpsrm
最后编译刷机,运用app东西验证即可,假如能显现Widevine等级,阐明集成成功。
总结
好了,现在你应该完全知道Widevine是怎么回事了
参考链接
构建DRM体系的重要基石——EME、CDM、AES、CENC和密钥
Widevine安全等级检查app:
链接:pan.baidu.com/s/1lIJq-_eg… 提取码:fnk6
ExoPlayer:
链接:pan.baidu.com/s/1dUseWHIi… 提取码:nszh