CENCInterTrustDRM及player中的应⽤原理
数字版权保护⽅法
梦见老公和别人结婚>检讨800字数字版权保护⽅法主要有两类,⼀类是采⽤数字⽔印技术,另⼀类是以数据加密和防拷贝为核⼼的DRM技术。
数字⽔印(Digital Watermark)技术是在数字内容中嵌⼊隐蔽的标记,这种标记通常是不可见的,只有通过专⽤的检测⼯具才能提取。数字⽔印可以⽤于图⽚、⾳乐和电影的版权保护,在基本不损害原作品质量的情况下,把著作权相关的信息,隐藏在图⽚、⾳乐或电影中,⽽产⽣的变化通过⼈的视觉或听觉是发现不了的。但是,⽬前市场上的数字⽔印产品在应⽤⽅⾯还不成熟,容易被破坏或破解,⽽且数字⽔印⽅法,只能在发现盗版后⽤于取证或追踪,不能在事前防⽌盗版。
DRM (Digital Rights Management)数字版权管理。数据加密和防拷贝为核⼼的技术,是把数字内容进⾏加密,只有授权⽤户才能得到解密的密钥,⽽且密钥是与⽤户的硬件信息绑定的。加密技术加上硬件绑定技术,防⽌了⾮法拷贝,这种技术能有效地达到版权保护的⽬的.
CENC
加密机制
CENC加密对sample entry做如下替换:
1、在每个track中添加Protection Scheme Information Box(‘sinf’),标识内容为加密内容。
2、Protection Scheme Information Box(‘sinf’)中包含Scheme Type Box(‘schm’):定义相应的加密算法,其中scheme_type 定义了加密类型,scheme_version定义模式版本。CENC加密⽅式中:
模式类型scheme_type=‘cenc’,CENC采⽤AES-CTR算法加密;
模式版本scheme_version=0×00010000。
3、 Protection Scheme Information Box(‘sinf’)中应包含Scheme Information Box (‘schi’)。
4、 Scheme Information Box (‘schi’) 中包含Track Encryption Box(‘tenc’):描述该track的加密参数。
CENC通⽤加密格式定义的相关参数包含在如下box中:
1、 内容保护系统的⽅案相关信息,例如许可证和授权获取信息,包含在ProtectionSystemSpecificHeaderBox(‘pssh’)中。山河之恋
2、⽤于每个track的加密参数(包括KID、初始化向量、加密标志位),包含在TrackEncryptionBox(‘t
enc’)中。
3、⽤于samples groups的加密参数(包括KID、初始化向量、加密标志位)包含在SampleGroupDescriptionBox (‘sgpd’)中。
4、 单独sample的加密参数(包括初始化向量,sub sample加密数据)包含在样本附加信息中,由SampleAuxiliaryInformationSizesBox (‘saiz’) 和SampleAuxiliaryInformationOfftsBox (‘saio’)引⽤。
加密⽅式
CENC定义了两种加密⽅式:全样本加密和⼦样本加密。
全样本加密把整个sample作为⼀个完整的单元加密;
⼦样本加密中的sample分为⼀个或多个subsample,每⼀个subsample都由不加密区域和加密区域交替组成,Sample中的所有加密区域被看做为⼀个逻辑上连续的块,计数器值的增加与切换NAL单元⽆关。
DMR系统(DRM / key system)
DRM不是⼀项技术,⽽是⼀类技术。很多机构和联盟都提出过相应的DRM标准。
Widevine
生物多样性的意义
Google 2012年收购的对抗苹果的, 在android 4.x之上有强⼤的内置和强⼤的系统plugin⽅式⽀持。
Marlin
Intertrust 索尼和飞利浦联合成⽴的Intertrust公司, 是Marlin DRM设备和服务解决⽅案的唯⼀第三⽅供应商。发明的 DRM 和可信计算技术⼴泛的⽤于包括操作系统、数字媒体平台、消费电⼦产品、移动计算设备、⽹络服务和企业安全⾃动化等各种领域。
提供 DRM 云服务器及可以⽤于 iPhone 、 iPad 、 Android 设备以及智能电视和机顶盒的跨平台客户端解决⽅案。
PlayReady
微软
梵净山攻略FairPlay
Apple 后续被 iTunesPlus替代
OMA DRM湖心亭看雪翻译
Open Mobile Alliance
Intertrust(Marlin) Drm
基础代码,⽹络通信的⽅式为sock⾃⼰实现,⾮业务http/
CENC与Intertrust / DRM 系统的关系
Common Encryption (CENC) 媒体内容通⽤加密⽅法,通⽤加密格式CENC是基于ISO/IEC 14496-12的⼀种加密格式,这种加密⽅式使不同的DRM系统能够解密同⼀个⽂件。
孙度CENC就是⼀个视频加密的规范。内容提供⽅提供提供视频源,按着cenc的要求,对数据进⾏加密。加密的同时已经写好了加密的⽅案AES-CTR和规则。
然后Drm/ key system, 拿到视频内容的时候,判断了当前是⼀个加密的视频,拿到licen后,就按着加密时指定的加密算法(AES-CTR)进⾏解密,把制定的解密数据给到使⽤⽅,使⽤⽅可以对数据进⾏下⼀步的处理(如解码)。
播放器DRM⽅案
播放器通⽤架构⽅案
通过FFmpeg标准player的结构如下,其内部各个部分主要的⼯作如下:
其中各个模块的主要供功能可以简单拆解如下:
1. PlayerDriver主要是播放器的⼊⼝,充当了线程调度的⼯作,是⼀个典型的facade封装
那一场风花雪月2. InputSource 主要是IO的输⼊输出,从⽹络取到制定的数据及数据皆封装。具体可以分为两⼤块:
2. 1. IO: 主要是解决视频传输协议的数据下载,如 HTTP,RTMP, HLS, DASH。
2. 2. Demuxer主要的将下载下来的 MP4、FLV、TS、Mp3 等封装的格式解析为视频/⾳频编码标准数据。如:视频的
H265,h264,⾳频的AAC,mp3等。
3. AudioDcoder 主要是讲⾳频的数据进⾏解码,归⼀化等功能,⼀共audio Render(Android audio track, iOS audioSession) 使
⽤
4. VideoDecoder 主要是讲h265,h264的视频压缩格式数据进⾏解码,以便于VideoRender 使⽤Surface & metal
Demuxer ⽅式解密:
不安全的⽅式,通过流程可以看到,解密后的数据,经过⾳频和视频解码器后进⾏输出,此事如果碰到使⽤硬解的root⼿机,未加密的数据就可能被⿊客得到,结果你懂的。
Codec后内存解密:
如果在codec⾥⾯解密,解密后的数据,直接渲染,将会安全很多。
⽰意图如下:
结语
感谢诸位的阅读,有任何的疑问和建议,欢迎随时和我联系。