数字版权保护方法

数字版权保护方法主要有两类,一类是采用数字水印技术,另一类是以数据加密和防拷贝为核心的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(‘tenc’)中。
3、用于samples groups的加密参数(包括KID、初始化向量、加密标志位)包含在SampleGroupDescriptionBox (‘sgpd’)中。
4、 单独sample的加密参数(包括初始化向量,sub sample加密数据)包含在样本附加信息中,由SampleAuxiliaryInformationSizesBox (‘saiz’) 和SampleAuxiliaryInformationOffsetsBox (‘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, 拿到视频内容的时候,判断了当前是一个加密的视频,拿到license后,就按着加密时指定的加密算法(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里面解密,解密后的数据,直接渲染,将会安全很多。
示意图如下:

结语

感谢诸位的阅读,有任何的疑问和建议,欢迎随时和我联系。

CENC InterTrust DRM 及 player中的应用原理相关推荐

  1. 如何在VMware Player中设置和安装Windows Home Server“ Vail”

    The new Windows Home Server Beta is available to the public for testing, and you might not have an e ...

  2. 无法在VMware Player中安装64位系统

    无法在VMware Player中安装64位系统 下载了VMware Player用来安装ubuntu的64位系统,配置完成后,开启VM.提示bios中未开启intel VT-X 也就是intel的虚 ...

  3. 通过Stratus 服务器在Flash Player中使用RTMFP 开发P2P应用

    通过Stratus 服务器在Flash Player中使用RTMFP 开发 点对点应用(网文转摘) 作者:Jozsef Vass 译者:巴巴鲁 (请转载时注明和改编时出处,谢谢) Adobe Flas ...

  4. 在Windows 7 Media Player中轻松播放Flac,Ogg和其他文件格式

    If you're a music fan who likes Flac and Ogg files, you know WMP won't play by them default. Here we ...

  5. Photon网络中Player中存取数据

    网络player中自然在应用中要根据需要存储一些游戏数据,比如头像.击杀对方英雄数,击杀的英雄列表等. Hashtable initialProps = new Hashtable() { { Ast ...

  6. 在Windows Media Player中使用歌词插件显示歌曲歌词

    Looking for a way to display song lyrics in Windows Media Player? Today we look at a very simple met ...

  7. 在VMware Player中安装启用Aero的操作系统

    Have you ever noticed that you normally can not enable Aero in a Windows 7 or Vista virtual machine? ...

  8. 如何在Windows 7 Media Center和Player中播放FLAC文件

    An annoyance for music lovers who enjoy FLAC format, is there's no native support for WMP or WMC. If ...

  9. java final 实例_Java中final实现原理的深入分析(附示例)

    本篇文章给大家带来的内容是关于Java中final实现原理的深入分析(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. final在Java中是一个保留的关键字,可以声明成员变 ...

最新文章

  1. 不只翻译机,搜狗将在半年内推数款智能硬件产品
  2. 施有朋:人工智能崛起,AI赋能医疗领域,创业者该如何选择
  3. java 多线程Callable和Runable执行顺序问题详解
  4. 同步方法 sleep和wait 线程同步的方法
  5. 开发海思3520a遇到的问题
  6. form 窗体增加边框_C#控件美化之路(13):美化Form窗口(上)
  7. pyqt按钮关闭窗口_PyQt5按钮单击事件,退出程序
  8. ADB命令中循环执行某个命令
  9. Linux安装RabbitMQ及问题
  10. 【数据分析】脑图简介数据处理
  11. 利用百度搜索结果爬取邮箱
  12. 开源中文bi_odoo:免费开源ERP入门与实践
  13. 数字图像处理课程设计
  14. Python实现图片灰度化
  15. Freetype字体引擎分析与指南(中文版翻译)
  16. 求方程ax^2+bx+c=0的实数根
  17. 工作3年的Java程序员如何成功跳槽,7K一飞到22K
  18. linux puppy 安装软件,puppy linux(linux操作系统)V5.7.2 官方版
  19. 阶乘 c语言 fushu,JS递归实现阶乘和菲波那切数列
  20. matlab gui学生成绩管理系统源码,matlab GUI 学生成绩管理系统.doc

热门文章

  1. matlab中集合的表示,Matlab常用命令集合
  2. 这一波再抢不到微信红包封面,就只能怪你自己了
  3. VAE中重参数化技巧
  4. 在Hexo搭建的博客中插入音乐或者视频
  5. 轮滑基础(一)(前摔,葫芦步,推步,A字转弯,弓步转弯)
  6. Hive - ORC 文件存储格式详细解析
  7. Android选项卡
  8. Anaconda or Miniconda windows下 cmd命令行模式创建、激活、关闭、删除虚拟环境方法步骤
  9. Vue 组件封装之 Content 列表(处理多行输入框 textarea)
  10. Ambient Occlusion 环境光遮蔽 后期处理系列4