技术博客

加密媒体扩展提供了一个共同点

新一代视频:超出4 k Daryl叶

2015年5月19日,

背景
之间的运输协议内容所有者和多通道视频编程分销商(MVPDs)可能包含的条款,要求MVPD提供充足的保护内容盗窃。在传统的有线电视网络的QAM-based交付模型,所需的保护水平相对容易实现和管理由于操作员控制生态系统的所有部分。紧密集成的数据转发器、网络和客户端机顶盒有现成的或本土条件接收系统(CAS)提供必要的保护。

在互联网视频时代,客户端播放设备通常是由消费者和利用各种各样的操作系统和硬件配置。一开始,Adobe和微软等公司开发本地应用程序支持解密和呈现优质的视频内容。这些本地应用后转换为浏览器扩展,使html的加密内容。随着自适应比特率(ABR)流媒体范例如苹果的HTTP流媒体直播,微软的光滑流,MPEG-DASH,这些“黑盒”媒体播放器让许多内容分销商希望更多控制播放体验。作为回应,World Wide Web Consortium(W3C)了媒体源的扩展API允许JavaScript应用程序提供个人音频、视频和数据媒体样本到浏览器。与这个强大的新工具,web应用程序有权决定何时以及如何切换不同的比特率。虽然解决了这个问题的自适应比特率控制的应用程序,它没有提供一个安全的方法打加密的内容。

在2012年,W3C开始标准化工作加密媒体扩展(电磁辐射)。这些新的JavaScript api允许一个web应用程序来促进解密密钥的交换之间的数字版权管理(DRM)系统嵌入在web浏览器(内容解密模块或CDM)和一个关键源或许可服务器位于网络上的某个地方。亚博yabo888vip网页版CableLabs W3C工作组中发挥了积极的作用,以确保电缆行业的需求得到满足在高速发展的规范。高速api已经经历了几个重要的转换对其为期三年的历史,但是现在我们看到一些稳定的体系结构和浏览器厂商开始产生一些完整的和健壮的实现。

高速的工作流程

一个JavaScript的web应用程序的过程利用高速api是这样的:

  1. (可选)浏览器媒体引擎通知应用程序,它遇到了加密媒体样本,它没有相应的解密密钥。
  2. 应用程序请求访问DRM系统中可用的浏览器支持特定的业务和技术需求相关的内容。
  3. 应用程序分配一个选中的DRM系统HTMLMediaElement
  4. 应用程序创建一个或多个重要会议与选定的DRM系统相关,每一个都将管理一个或多个解密密钥(许可证)
    1. 应用程序指示关键会话生成许可证通过提供与请求消息初始化数据。浏览器可以提供这些数据通过事件在步骤1中,或者它可能是应用程序通过其他手段获得的(即在ABR清单文件)。
    2. 清洁发展机制为选定的DRM系统将生成一个blob数据(许可请求)和交付应用程序。
    3. 应用程序发送许可请求许可服务器。
    4. 在接收其许可请求的响应,应用响应消息发送回清洁发展机制。清洁发展机制增加了关键的会话响应中包含的任何解密密钥。
  5. 清洁发展机制和/或浏览器媒体引擎将使用密钥存储在会话密钥来解密媒体遇到样品。

电磁辐射

初始化数据

受保护的内容用于回放EME-enabled web浏览器必须伴随着数据指示特定的DRM实现如何获取解密所需的许可证。这可能包括信息如密钥id、许可证服务器url和数字版权分配内容。初始化数据包的内容是,在大多数情况下,应用程序不被解析。然而,有必要指定方法的初始化数据在各种媒体容器,以允许浏览器从流媒体引擎提取交付给应用程序。W3C维护一个注册表的当前定义和初始化数据流格式

关键的系统属性

电磁辐射过程的第一步是找到一个关键系统,满足需求的内容和应用程序。下一小节将描述可用的标准应用程序允许它选择一组多个drm实现在浏览器中通过Navigator.requestMediaKeySystemAccess () API。

数字版权管理系统

电磁辐射设计的理解一个浏览器可以支持一个或多个DRM系统。此外,ISO CommonEncryption,一块的内容可以与多个DRM系统的保护。在电磁辐射,每个DRM与一个字符串(例如“com.microsoft识别关键系统。playready”、“org.w3.clearkey”)和一个全局惟一的标识符(UUID)。而关键的系统字符串将是唯一的在一个特定的浏览器实现,在所有浏览器实现UUID应该是唯一的。的DASH行业论坛创造了一个注册表的uuid保持这种独特性在DRM供应商。应用程序必须选择一个DRM系统内容和支持的浏览器。

内容类型

评估内容类型支持跨越CDM和媒体引擎之间的界线在浏览器中。这一点无疑是内容的容器类型必须支持的浏览器,因为它需要解析容器学习内容(即加密吗?如何跟踪吗?等等)。音频和视频编解码器的信息也很重要,需要支持的浏览器和/或清洁发展机制。在某些DRM鲁棒性模型,解密媒体以外的样本可能不被允许CDM的受保护的内存或显卡驱动。在这种情况下,这将是清洁发展机制协调的解码和显示媒体。

关键的会话持久性

当创建一个会话密钥,应用程序能够表明许可证与该会话关联要坚持跨多个应用程序的负载。为了确保可以创建这些类型的会话,应用程序只能请求访问的探测器能够支持持久性。

独特的标识符

的一大争论的“黑盒”的探测器在开源软件的世界是CDM的可能性会使用独特的或几乎绝无属性的用户或设备“跟踪”个人或小群体的个体。在试图解决这个隐私相关问题,致力于高速的一部分规范定义这些独特的标识符说明何时何地他们可能使用的清洁发展机制。当请求访问一个特定的关键系统,应用程序只能选择从CDMs在浏览器中不使用独特的标识符。探测器有一个显式的依赖使用可供选择的独特标识符可能不是由应用程序(因此,可能防止某些内容的回放),如果应用程序表示禁止。

MediaKeySession

关键会议提供的初始许可收到检索过程和用于存储键。应用程序开始的过程提供初始化数据清洁发展机制(MediaKeySession.generateRequest ())。CDM解析数据并生成许可证要求的安全、专有格式和通知应用程序(MediaKeyMessageEvent)。在收到许可请求,应用程序将它转发到一个许可证服务器,它知道可以处理请求。在生产环境中,可能与其他特定于业务的许可请求将被打包数据,如用户身份验证的请求和/或授权。一旦成功,DRM服务器会响应一个许可协议消息的应用程序将在清洁发展机制(MediaKeySession.update ())。

在正常的媒体播放,CDM可能需要做一个主动请求DRM服务器(例如验证给定的授权仍然有效)。应用程序简单地继续作为一个代理,将消息发送到许可服务器和更新的CDM的回应。

关键的会话持久性

如前所述,关键会议可以建立“持久”。在这种情况下,清洁发展机制存储所有钥匙(和其他数据)与会话相关的私人存储在设备上。存储会话是唯一与他们创建的web应用程序。每个键会话分配一个惟一的标识符,应用程序可以使用它来回忆在以后会话数据。MediaKeySession提供几个api允许应用程序管理持久性的关键会议。

  • MediaKeySession.close ()——关闭会话的关键,使其解密密钥不可用媒体,但留下任何持久化存储的会话未受影响。
  • MediaKeySession.load ()——将sessionID和与该ID关联的数据加载到一个空的MediaKeySession对象。坚持该会话的钥匙再次用于解密的内容。
  • MediaKeySession.remove ()——关闭键会话并删除任何持久性存储的键从CDM会话。相关联的会话ID现在不再有效。

MediaKeys

一旦应用程序发现的关键系统,满足其需要和需求的内容,它可以创建MediaKeysMediaKeys是一个容器,一个或多个关键会议。MediaKeys促进协会的解密密钥HTMLMediaElement用于查看加密的内容。即使键已经获取从许可证服务器和存储在CDM,媒体才能解密密钥与媒体相关的元素。

ClearKey

还包括供大于求的状态规范是一个测试的细节被称为ClearKey DRM系统。ClearKey正是顾名思义:一个系统的解密密钥是“明显的”在CDM的旅程。浏览器支持ClearKey高速规范规定。它的用途主要是作为一种手段来评估一个经济体的高速实现在浏览器内容或“真实”的CDM DRM系统不可用。ClearKey的格式许可证要求响应消息详细规范。应用程序的机制达到ClearKey键对于一个给定的内容留给了开发者。

格雷格Rutz是一个首席架构师CableLabs从事多个项目亚博yabo888vip网页版相关数字视频编码/代码转换为在线视频和数字版权管理。

这篇文章是一个技术博客系列的一部分,”现代Web标准,优质内容”。

隐私偏好中心

    严格的必要

    必需的饼干,网站正常运行。

    PHPSESSID, __cfduid hubspotutk

    性能

    这些都是用于追踪用户交互和发现潜在的问题。这些帮助我们改善我们的服务通过提供分析数据,用户如何使用这个网站。

    BizoID wooTracker, GPS, _ga、_gat _gid, _hjIncludedInSample mailmunch_second_pageview

    针对

    这些饼干是用来(1)提供更相关的广告对你和你的利益;(2)限制你看到一个广告的次数;(3)帮助衡量广告的有效性;(4)理解人们的行为后,查看广告。

    __hssc、__hssrc __hstc,