首页 / 专利库 / 专利权 / 专利合作条约 / 第I章 / 国际申请 / 保密性 / 将数据保密性扩展到播放器应用中

将数据保密性扩展到播放器应用中

阅读:828发布:2020-05-12

专利汇可以提供将数据保密性扩展到播放器应用中专利检索,专利查询,专利分析的服务。并且在内容保护方案中,响应于由 服务器 接收到的针对内容的部分的 请求 ,服务器生成向会话特定密钥授予权利的消息并将该消息与该部分相关联,其中可以从所述会话特定密钥导出一个或多个解密密钥。解密密钥用于在部分将要被播放器呈现时在运行时解密部分。在递送之前,服务器对部分进行加密以生成已加密 片段 ,并且其随后响应于该请求而供应已加密片段(和消息)。在客户端处,消息中的信息用来获取会话特定密钥。使用该密钥,导出解密密钥,并且这些密钥随后被用来对接收的已加密片段进行解密。该解密在运行时发生。该方法在内容在转运到客户端浏览器环境和在其中静止的同时保护内容。,下面是将数据保密性扩展到播放器应用中专利的具体信息内容。

1.一种边缘网络服务器设备,包括:
处理器;
计算机存储器,所述计算机存储器保持被所述处理器执行来执行内容保护方法的计算机程序指令,所述方法包括:
响应于针对内容的部分的请求,生成向会话特定密钥授予权利的授权控制消息(ECM),并将所述授权控制消息与所述部分相关联,一个或多个解密密钥适于从会话特定密钥导出,所述解密密钥适于被客户端播放器用来对所述部分进行解密;
将所述内容的部分进行加密来创建已加密片段
响应于所述请求而供应所述已加密片段和所述授权控制消息;
接收针对会话特定密钥的请求,在所述客户端播放器针对所述部分解析了授权控制消息之后,由所述客户端播放器发出针对会话特定密钥的所述请求;
生成所述会话特定密钥;以及
将所述会话特定密钥返回给所述客户端播放器以仅在所述部分将要被所述客户端播放器呈现时使能所述部分的解密。
2.如权利要求1所述的设备,其中,所述授权控制消息包括到所述会话特定密钥的URL以及与密码方案相关联的至少一个参数,所述解密密钥与所述密码方案相关联。
3.如权利要求2所述的设备,其中,所述URL处于所述授权控制消息的第一部分中,并且所述至少一个参数处于所述授权控制消息的第二部分中。
4.如权利要求3所述的设备,其中,所述授权控制消息的第一部分是公共的,并且所述授权控制消息的第二部分是私有的,所述至少一个参数通过用于保护所述授权控制消息的临时密钥被加密。
5.如权利要求1所述的设备,其中,所述内容的部分表示以离散比特率的可配置长度的连续视频和音频数据的时间片。
6.如权利要求1所述的设备,其中,所述授权控制消息通过布置在媒体容器内而被与所述内容的部分相关联。
7.如权利要求1所述的设备,其中,所述授权控制消息通过布置在客户报头内在已加密片段的第一字节之前而被与所述内容的部分相关联。
8.如权利要求1所述的设备,其中,所述授权控制消息通过布置在不同的复用的传输流中而被与所述内容的部分相关联。
9.如权利要求1所述的设备,其中,所述方法还包括创建用于存储密钥和会话上下文信息的密钥会话对象,以跟踪所述内容的部分的加密状态。
10.如权利要求1所述的设备,其中,所述会话特定密钥和所述一个或多个解密密钥在所述授权控制消息的外部。
11.如权利要求1所述的设备,其中,对所述会话特定密钥的访问要求用于所述内容的部分的有效令牌。
12.一种客户端设备,包括:
处理器;
播放器代码;
计算机存储器,所述计算机存储器保持由处理器执行来执行内容保护方法的计算机程序指令,所述方法包括:
生成针对内容的部分的请求;
从服务器接收已加密片段,所述已加密片段具有与之相关联的授权控制消息(ECM),所述授权控制消息向会话特定密钥授予权利,一个或多个解密密钥适于从所述会话特定密钥导出;
使用所述授权控制消息中的信息向所述服务器发出对于获取所述会话特定密钥的请求;
从所述服务器接收会话特定密钥,响应于在所述服务器处接收到对于获取所述会话特定密钥的所述请求,在所述服务器处生成所述会话特定密钥;
从所述会话特定密钥导出所述一个或多个解密密钥;
使用所述一个或多个解密密钥来对接收的已加密片段进行解密,所述解密仅在所述部分将要被所述播放器代码呈现时发生。

说明书全文

将数据保密性扩展到播放器应用中

[0001] 本申请基于并要求2011年12月29日递交的申请No.13/339,492的优先权,该申请基于并要求2010年12月31日递交的申请No.61/428,893的优先权。

技术领域

[0002] 本申请一般地涉及以广播收听规模向流行的运行时环境和移动设备进行高清晰(HD)视频的在线递送。

背景技术

[0003] 分布式计算机系统现有技术中是公知的。一种这样的分布式计算机系统是由服务提供商操作和管理的“内容递送网络”或“CDN”。服务提供商通常代表第三方提供内容递送服务。这种类型的“分布式系统”通常是指通过一个或多个网络联接的自主计算机的集合以及被设计用于辅助各种服务的软件、系统、协议和技术,其中,各种服务诸如是内容递送或对外包站点基础设施的支持。通常,“内容递送”是指内容的存储、缓存或传送、代表内容提供商的流传输媒体和应用,包括一起使用的辅助技术,包括但不限于,DNS查询处理、供应、数据监视和报告、内容定、个性化和商业智能
[0004] 尽管内容递送网络提供了显著的优势,但是,通常,它们包括为多个第三方运行时环境支持内容递送的专用平台,而这多个第三方运行时环境又基于它们自己的专有技术、媒体服务器和协议。要实现和维护这些不同的平台,特别是全局地并且随着终端用户的增多而成比例地实现和维护这些不同的平台,是昂贵的。并且,同时,内容提供商(诸如大型广播商、影片发行人等)期望它们的内容以补充诸如广播TV(包括高清晰或“HD”电视)和DVD之类的传统媒体的方式被在线递送。此内容也可以以不同的比特率提供。终端用户也期望像他们现在与通过卫星或线缆递送的传统的基于DVR的内容交互那样与该内容交互。另一复杂之处在于基于因特网的内容递送不再限于诸如台式机之类的固定线路环境,因为越来越多的终端用户现在使用诸如 之类的移动设备来通过移动环境接收和观看内容。
[0005] 因此,需要提供一种集成式内容递送网络平台,其具有以广播收听规模向最流行的运行时环境(诸如等)以及向诸如iPhone之类的移动设备递送在线内容(诸如HD质量的视频)的能,以与观众对传统广播TV的期望相匹配。本文中所公开的技术解决了这种需要。
发明内容
[0006] 一种保护媒体安全的方法将数据保密性扩展到集成的基于HTTP的递送平台内的播放器应用中,其备用于向在固定线路和移动环境两者中的多种类型的客户端设备上操作的流行运行时环境进行HD视频和音频质量的内容的在线递送。该技术被设计用于避开可伸缩攻击,诸如由链路/令牌共享和自动更新服务、密钥共享、传输级内容解密、静态复制等引起的攻击,而不依靠数字权限管理(DRM)。该方法在内容转运到客户端浏览器环境并在其中静止的同时保护内容。
[0007] 在一个实施例中,内容从边缘网络服务器被供应给具有媒体播放器的进行请求的客户端浏览器。具体地,并且响应于由边缘网络服务器接收的针对内容的部分的请求,服务器生成向会话特定密钥授予权利的授权控制消息(ECM)并将所述ECM与所述部分相关联,其中适于从会话特定密钥导出一个或多个解密密钥。所述内容的部分通常表示以离散比特率的可配置长度的连续视频和音频数据的时间片。会话特定密钥和解密密钥两者都不需要被包括在消息本身中,解密密钥适于用来在部分将被客户端播放器呈现时在运行时解密部分。边缘网络服务器加密内容的部分来生成已加密片段,并且其随后响应于该请求而供应已加密片段(和所述ECM,所述ECM可以被嵌入在其中)。在客户端处,ECM中的信息(通常,受令牌保护的URL)被用来获取会话特定密钥。使用该密钥,导出一个或多个解密密钥,并且解密密钥随后被用来解密接收的已加密片段。解密在部分将要被播放器代码呈现时在运行时发生。
[0008] 以上已经概述本发明的多个有关特征中的一些。这些特征应当解释为仅仅是说明性的。通过以不同的方式应用所公开的发明或通过如将描述那样修改本发明,可以获得许多其它有益结果。附图说明
[0009] 为了更完整地理解本发明及其优势,现在参考以下结合附图进行的描述,在附图中:
[0010] 图1图示出其中可以实现说明性实施例的示例性方面的分布式计算机系统环境的示例性框图
[0011] 图2是图1中的内容递送网络中的边缘服务器机器的示例性框图;
[0012] 图3图示出其中可以实现本公开的安全媒体保护技术的基于http的内容递送体系架构;
[0013] 图4示出图3中的内容递送体系架构的可替代实施例;
[0014] 图5图示出本公开的保护技术通过其进行操作的边缘服务器-客户端浏览器交互;
[0015] 图6图示出本公开的安全媒体保护技术的优选操作;
[0016] 图7是图示出本技术的各个步骤的UML图;
[0017] 图8图示出示出ECM消息被如何封装的第一“有效载荷加密”实施例;
[0018] 图9图示出第二“内容加密”实施例,其示出对于已分段的数据如何封装ECM消息;
[0019] 图10图示出示出对于MPEG2传输流如何封装ECM消息的第三实施例;以及[0020] 图11图示出用于在 运行时环境中使用的HTTP动态流传输的实施例。

具体实施方式

[0021] 图1图示出一已知分布式计算机系统,(如下所述)其通过本文中的技术被扩展为提供单个基于HTTP的平台,该单个基于HTTP的平台具有以广播收听规模向最流行的运行时环境和向固定线路环境和移动环境两者中的最新设备递送在线HD视频的能力。
[0022] 在此代表性实施例中,分布式计算机系统100被配置为内容递送网络(CDN)并且被假定为具有围绕因特网分布的一组机器102a-n。通常,这些机器中的大多数是处于因特网边缘附近(即,处于终端用户接入网络处或与其临近)的服务器。网络操作命令中心(NOCC)104可以用于实行和管理系统中各种机器的操作。第三方站点,诸如网络站点106,将内容(例如,HTML、嵌入式页面对象、流传输媒体、软件下载等)的递送卸载到分布式计算机系统
100,并且具体地,卸载到“边缘”服务器。通常,内容提供商通过(例如由DNS CNAME)将给定内容提供商域或子域别名(aliasing)为由服务提供商的权威域名服务管理的域来卸载它们的内容递送。期望这样的内容的终端用户可以被导向到分布式计算机系统来更可靠和更高效地获取该内容。尽管未详细示出,但是分布式计算机系统也可以包括其它基础设施,诸如从边缘服务器收集使用率和其它数据、跨越一个或一组区域聚合该数据,并将该数据传递给其它后端系统110、112、114和116以辅助监视、日志记录、警报、计费、管理和其它的操作性和管理性功能的分布式数据收集系统108。分布式网络代理118监视网络以及服务器负载,并将网络、流量和负载数据提供给DNS查询处理机构115,DNS查询处理机构115针对被CDN管理的内容域是权威的。分布式数据传输机构120可以用于向边缘服务器分发控制信息(例如用于管理内容、辅助负载平衡等的元数据)。
[0023] 如图2中所示,CDN中的给定机器200(本文中有时称为“边缘机器”)包括运行支持一个或多个应用206a-n的操作系统内核(诸如Linux或变体)204的商用硬件(例如,因特尔奔腾处理器)202。为了辅助内容递送服务,例如,给定机器通常运行一组应用,诸如HTTP代理207、名称服务器208、本地监视进程210、分布式数据收集进程212等等。HTTP代理207包括缓存、以及用于管理该缓存和从边缘机器的内容递送的管理器进程(有时称为全局主机或“ghost”)。对于流传输媒体,机器通常包括由所支持的媒体格式所要求的一个或多个媒体服务器,诸如Windows Media服务器(WMS)或Flash2.0服务器。当被配置为CDN“边缘”机器(或“边缘服务器”)时,图2中示出的机器可以被配置为优选地基于特定域、特定客户,优选地使用通过使用配置系统被分发给边缘服务器的配置文件,来提供一个或多个扩展的内容递送特征。给定配置文件优选是基于XML的,并且包括辅助一个或多个高级内容处理特征的一组内容处理规则和指示。配置文件可以经由数据传输机制被递送给CDN边缘服务器。美国专利No.7,111,057示出了用于递送和管理边缘服务器内容控制信息的有用的基础设施,并且此边缘服务器控制信息和其它边缘服务器控制信息(有时称为“元数据”)可以由CDN服务提供商本身或(经由外联网等)由操作源服务器的内容提供商客户来供应。
[0024] CDN可以包括存储子系统(本文中有时称为“存储装置”),诸如美国专利No.7,472,178中记载的存储子系统,该专利的公开通过引用被并入本文。
[0025] CDN可以操作服务器缓存层级架构来提供客户内容的中间缓存;在美国专利No.7,376,716中记载了一种这样的缓存层级架构子系统,该专利的公开通过引用被并入本文。
[0026] 对于实况流传输递送,CDN可以包括实况递送子系统,诸如美国专利No.7,296,082中记载的实况递送子系统,该专利的公开通过引用被并入本文。
[0027] 2010年8月17日递交的美国申请No.12/858,177记载了上述技术能够被如何扩展为提供集成式基于HTTP的递送平台,该集成式基于HTTP的递送平台用于向最流行的运行时环境和向固定线路环境和移动环境两者中的最新设备提供HD视频质量内容的在线递送。该平台支持“实况”和“点播”内容的递送。
[0028] 如在申请No.12/858,177中所记载的,以下术语应当具有如下代表性含义。仅为了说明的方便起见,以下(对于实况流传输递送)的描述在Adobe Flash运行时环境的上下文中,但是这不是限制性的,因为针对固定线路和移动两者的其它运行时环境(包括但不限于Microsoft Silverlight、Apple iPhone等等)也可以实现类似类型的解决方案。
[0029] 编码器是客户拥有的或管理的机器,其取得某些格式下(流传输、卫星等等)的一些原始实况视频馈送并将数据递送到为流传输递送而编码的进入点。进入点(EP)通常是在CDN流传输机器上运行的进程,其从客户的编码器接收视频数据并使得该数据对于实况流的消费者可用。对于Adobe Flash,这是被配置为从编码器接受连接的Flash Media服务器(FMS)。Flash媒体服务器是用于可从Adobe公司获得的Flash媒体的服务器进程。在该实施例中,中间区域(IR)通常是诸如美国专利No.7,296,082和美国专利No.6,751,673中记载的、该CDN已经将其配置为类似于流传输设置反射器(a streaming set reflector)那样工作的Flash媒体服务器。这些机器将流从FMS EP中继到FMS边缘区域,提供扇出(fan out)和路径分集。“区域”通常暗示共址的并且通常通过后端局域网而相互互连以进行负载共享的一组机器(以及他们的相关联的服务器进程)。Flash边缘机器是已经被配置为接受客户端请求的Flash媒体服务器。在代表性实施例中,这是在Flash EP、IR和边缘机器上运行的软件。中间格式(IF)是用于将流数据从EP发送到边缘服务器HTTP代理的(CDN的)内部格式。如以下将更详细地描述的,IF优选包括若干不同的片,包括“流清单”、“片段索引”和“IF片段”。实况、DVR和VOD被定义如下:“实况”是指在事件发生时实时地供应的媒体;“DVR”是指供应从“实况”馈送获得但是在稍后的时间被供应的内容;“VOD”是指从单个完整的(即不是递增地改变的)文件或文件集供应的媒体。实时消息传输协议(RTMP)是Flash使用的流传输和RPC协议。加密的实时消息传输协议(RTMPE)是使用构建到服务器和客户端中的密码的RTMP的加密版本。“SWF”或“小网络格式”是用于Flash客户端应用的格式。SWF验证是指这样一种技术,借助该技术,Flash播放器可以通过发送SWF本身的散列以及嵌入在客户端和服务器中的密码来向FMS证实其正在播放未修改的SWF。
[0030] 图3图示出如在2010年8月17日递交的申请No.12/858,177中记载的实况流传输递送的体系架构的概览。如在图3中可见,该系统一般被分割成两个独立的层:流记录层300和流播放器层302。(通过流记录层300提供的)记录进程从编码器304向前开始。优选地,即便当前没有观众,流也被记录(因为稍后可能存在DVR请求)。(通过流播放器层302提供的回放进程)播放在给定时刻开始的给定流。因此,“实况流”实际上等同于开始时间为“现在”的“DVR流”。
[0031] 参考图3,实况流传输进程开始于流从编码器304被递送到进入点306。EP区域(未示出)中的RTMP拉取器组件308(例如,其在基于Linux的机器上运行)被指示去订阅EP306上的流,并且将作为结果产生的数据推送到一个或多个归档器310进程,所述归档器310进程优选在其它机器上运行。如图所述,归档器310之一可以由于跨越归档进程执行群首选举协议(leader election protocol)而操作为“群首”(leader)。优选地,归档器310充当用于实况或接近实况的请求的边缘服务器HTTP代理进程(所述代理进程中的一个在312处示出)的源服务器。边缘服务器HTTP代理312向进行请求的终端用户客户端提供HTTP递送,其中终端用户客户端中的一个是客户端314。“客户端”是包括连接到因特网的适当硬件和软件、至少适用HTTP并且包括内容呈现引擎的设备。客户端设备类型将依据设备是通过固定线路环境还是移动环境连接到因特网而不同。代表性的客户端是计算机,该计算机包括浏览器,浏览器通常带有用于媒体播放器、编解码器等的本机或插件支持。如果使能DVR,则内容优选也被上载到存储子系统316,以使得存储子系统用作如将描述的针对DVR请求的源。
[0032] 还如图3中所示,内容提供商可以选择递送流的两个副本即主要副本和备份副本,以使得在发生网络或其它问题时流可以以最少的中断继续。优选地,主要流和备份流被视为贯穿该系统上行直到穿过边缘服务器HTTP代理是独立的,优选边缘服务器HTTP代理优选具有如下能力,其在主要流有困难时从主要流转移到备份流,并且反之亦然。
[0033] 优选使用诸如在美国专利No.6,108,703、No.7,240,100、No.7,293,093和其它美国专利中记载的技术之类的技术,将(来自终端用户客户端314的)内容请求引导到CDN边缘机器HTTP代理312。当HTTP代理312接收到针对给定流的HTTP请求时,HTTP代理312有可能经由缓存层级结构318(例如参见美国专利No.7,376,716和其它美国专利)作出优选由HTTP代理元数据驱动(如在美国专利No.7,240,100、No.7,111,057和其它美国专利中所记载的)的各种请求,来获知和下载流以供应给客户端314。优选地,流传输特定的知识由直接连接到客户端314的边缘机器HTTP代理312处理。(从HTTP代理发布的)任何前进(go-forward)(缓存丢失)请求优选是标准HTTP请求。在一个实施例中,内容作为渐进式下载FLV文件从HTTP代理312被递送至客户端314。如以上注意到的,本文中对Adobe FLV的提及在本文中通过示例使用,这是因为图3中示出的体系架构不限于使用Adobe FLV。对于安全的流,优选地,客户端314首先使用边缘服务器认证技术和/或SWF-验证反向通道来向HTTP代理312进行认证。
[0034] 当客户端314请求特定的流时,(通常客户端已经经由DNS被引导到的)HTTP代理312通过取回“流清单”开始流传输进程,其中,“流清单”优选仅包含流的缓慢改变的属性以及HTTP代理追踪到实际流内容所需的信息。用于下载该清单的URL优选是从(例如经由图1的分布式数据传输机制)被递送给HTTP代理的元数据确定性地构建的。优选地,清单本身与流清单管理器系统(未示出)相关联地存储和/或存储在存储子系统316中。优选地,流清单描述构成流的各种“轨道”,其中优选地,每个轨道构成比特率和类型的不同组合,其中类型是“音频”、“视频”或“交错式_音频视频”(interleaved_AV)。流清单优选针对每个轨道包括一系列的“indexlnfo”(索引信息)时间范围,其描述对于HTTP代理请求该时间范围的内容所需要的前进URL模板、流特性和各种其它参数。
[0035] 对于“实况”请求,HTTP代理开始请求相对于“现在”的内容,“现在”一般近似等于边缘机器HTTP代理进程上的时间。给定查找时间,HTTP代理下载“片段索引”(Fragment Index),“片段索引”的名称优选是基于indexlnfo范围中的信息和时间上的查找时间(epoch seek time)而计算的。优选地,片段索引覆盖了给定时间段(例如每几分钟)。通过咨询片段索引,获得“中间格式(IF)片段”号和距该片段的偏移。HTTP代理随后可以开始(例如经由缓存层级结构318或从CDN基础设施内的其它地方)下载文件,跳过在指定偏移之前的数据,并随后从那儿开始(向进行请求的客户端)供应。优选地,针对最优缓存IF片段的大小由HTTP代理确定。一般,除非流清单通过新的indexlnfo范围指明其他方式,对于实况流传输,HTTP代理随后继续从连续编号的IF片段供应数据。
[0036] 在实况的基于HTTP的递送的上下文中,中间格式(IF)描述用于获取从RTMP拉取器直到边缘机器HTTP代理的数据的流的内部表示。“源”格式(SF)是进入点306提供内容所用的格式,而“目标”格式(TF)是边缘机器HTTP代理312将数据递送给客户端314所用的格式。这些格式不需要是相同的。因此,SF可以不同于TF,即,流可以以FLV格式被获得并以动态的或自适应的(可变比特率)格式被供应。格式是用于递送流的容器;通常,尽管也可以实现不同编解码器之间的代码转换,实际的原始音频和视频组被认为是不透明数据。只要底层的编解码器被适当管理,通过将格式传递通过HTTP代理(并经由传统的HTTP递送给客户端),用于递送内容的容器可以被改变。
[0037] 上述体系架构对于特别是通过诸如Flash之类的格式进行的实况流传输是有用的。该平台还可以用于支持视频点播(VOD)。特别地,该解决方案可以提供来自客户和基于存储子系统的源的VOD流传输、提供单比特率和多比特率(SBR和MBR)流传输、提供对以flv和mp4/flv容器存储的源内容的支持(支持的mp4/flv编解码器包括用于音频的AAC、MP3、PCM以及用于视频的H.264),并且使超出终端用户直接请求的内容之外的内容的下载最少。
[0038] 对于VOD递送,(图3的)流记录器层300优选被翻译层替代。对于使用HTTP的VOD递送,可以(例如通过扫描FLV或解析MP4MOOV原子)来实时动态地从源内容生成片段索引并缓存这些索引。实际数据取回随后可以被实现为直接从边缘区域处的源素材进行的或经由中间翻译(例如通过cache-h父)到中间格式的“部分对象缓存”(POC)取回。部分对象缓存是指HTTP代理仅按照需要获取片段中的内容对象而不是下载整个内容对象的能力。HTTP代理可以缓存这些片段以用于将来的使用,而不是在被从代理供应之后释放它们。以这种方式从其取回内容对象片段的源服务器必须支持HTTP范围请求的使用。
[0039] 如在2010年8月17日递交的专利申请No.12/858,177中所记载的,通常,VOD内容被卸载以用于HTTP递送到CDN。在第一实施例中,转换工具(脚本)被用来将源内容flv转换成IF,作为结果产生的IF文件随后被上载到存储子系统。在该方法中,元数据被用来让HTTP代理前进到存储子系统以取回流清单,流清单随后参考用于保留内容的存储子系统。在该方法中,mp4/flv的文件首先被转换成flv(例如使用ffmpeg复制模式)来将容器改变为flv。另一种方法是让CDN客户上载原始媒体文件到存储子系统并在那儿运行转换工具。另一可替换选择时让客户(或编码器)直接产生IF中的内容。
[0040] 翻译层方法被记载在2010年8月17日递交的专利申请No.12/858,177中。在该方法中,点播动态IF生成器取得针对IF的请求(清单、索引和片段)并通过(或者从存储子系统或者从客户源)动态取回flv或mp4/f4v输入文件范围来满足这些请求。从这儿开始,HTTP代理与以上描述的“转换工具”选项实质上相同。生成器机器优选运行其自己的HTTP代理(“翻译器HTTP代理”)来缓存各种输入和输出、以及翻译器进程(以下描述),该翻译器进程(例如从到翻译器HTTP代理的本地主机连接)接受请求并基于经由相关联的缓存进程从HTTP代理取回的数据生成IF。可替代地,翻译器进程可以包括翻译器HTTP代理的一部分,在该情况下,IF生成在代理内发生。片段生成也可以在边缘机器HTTP代理或甚至更下游(到客户端本身内)中执行,例如其中,客户端维护与一个或多个对等客户端的会话连接。
[0041] VOD方法的体系架构和请求流程在图4中示出。在该实施例中,翻译层400位于源402(例如客户源或存储子系统或两者)和流播放器层404之间。在代表性实施例中,翻译层在CDN内其自己的部分(例如,Microsoft IIS或等同网络)中执行,优选在专用于此目的的区域中执行。可替换地,翻译器(如下所述)可以在基于HTTP的边缘机器区域的子集上运行。
[0042] 上述实施例提供对于对象递送利用HTTP边缘网络的格式不可知流传输体系架构。边缘网络可以包括一个或多个安全机构。在代表性实施方式中,如在图5中可见,假定终端用户机器500具有相关联的客户端浏览器502和媒体播放器504。将由媒体播放器呈现的内容可通过网络505从例如如上所述的运行HTTP代理进程(在本文中有时称为“ghost”)508的边缘服务器机器506递送到终端用户机器。如以下将更详细描述的,代理具有优选在元数据控制下加密内容的能力。播放器包括播放器组件510(一个或多个编解码器)和安全性模块(AUTH模块)512。该模块包括用于识别运行的播放器以及安全地将结果传送给边缘服务器的目的的密码散列和加密方法。AUTH模块优选是允许散列计算算法(KDF)的实时变化的可更新的播放器侧插件,不需要播放器运行时的任何播放器补丁。可替换地,AUTH模块可以是与其它播放器代码一体的。作为安全性机制,播放器代码可以经受“播放器验证”操作,该操作提供用于边缘服务器(更一般地,边缘网络)验证播放器实现方式的手段。播放器验证防止未被授权的播放器播放受保护的内容(通常通过深度链接攻击)。播放器验证机制确保播放器以及可选地其贮存的AUTH模块是可信的。这通常通过(例如使用MD5、SHA-1等)对播放器和AUTH模块进行散列来产生用于边缘服务器进行的验证的消息摘要。播放器验证方案还可以(周期性地)测试(在客户端上的)运行的图像来验证安全性代码的存在,并且其可以使AUTH模块模糊。另外,边缘网络通常强制实施边缘“令牌授权”(或令牌认证)方案,该方案提供对终端用户凭证的验证和访问控制的转移。公知的是,令牌授权使用访问控制参数和会话信息的由服务器生成的散列。服务器或者在URL查询串或者在cookie中将令牌传送给播放器。令牌授权方案工作来减轻链路共享或黑客攻击。
[0043] 当令牌授权和播放器验证提供有用的优势时,可以期望提供另外的内容保护机制。现在描述作为本公开的主题的一种这样的技术。
[0044] 将保密性扩展到播放器中
[0045] 上述网络通常使用SSL来在内容从边缘服务器ghost进程流传输到驻存在浏览器中的播放器应用时保护内容。对SSL的这种使用,尽管对于电子商务是有效的,但是并不是被设计用于保护所关心的应用数据不受终端用户的攻击。因此,传递通过终端用户的浏览器上的存储器的数据不受保护。尽管存在例外情形,但是如今的大多数浏览器并不包括安全的存储器或处理器来卸载被流传输的多媒体数据的解密。另外,能够处理匿名的SSL/TLS会话的任何应用可以因为单独的制作未授权的副本的目的而扮演合法浏览器。更糟糕的是,即使合法浏览器也被允许将已解密数据缓存到非易失性存储装置,而使得副本可被任何用户利用浏览器访问进行读取。
[0046] 因此,高级内容拥有者在他们的内容正被递送给终端用户客户端系统时或在其静止在客户端系统上时保护他们的内容不被黑客偷窃方面面临着巨大的挑战。由于SSL终止于浏览器,而使得内容在缓存中被暴露,所以即使作为渐进式媒体下载的一部分而递送的内容是通过SSL递送的,其在缓存或盘中被暴露。被递送给播放器运行时的高级内容需要在运行时自始至终以及在缓存或盘中时受到保护。本文中所描述的方法在播放器运行时自始至终对内容加密,并且向不需要完全的DRM解决方案及其开销但是仍然需要防止内容在其转运或静止时被未被授权的访问而访问。
[0047] 本文中所描述的技术将数据保密性扩展到播放器应用中来避开针对递送服务的可伸缩攻击。基本技术工作如下。响应于服务器接收的针对内容部分的请求,服务器生成向会话特定的密钥授予权利的特殊消息并将该特殊消息与该部分相关联,其中从该会话特定密钥可以导出一个或多个解密密钥。解密密钥用于在部分将被播放器呈现时在运行时解密该部分。在递送之前,服务器加密部分来生成已加密片段,并且其随后响应于该请求来供应已加密片段(和该消息)。在客户端处,消息中的信息(通常,令牌保护的URL)用于获取会话特定密钥。使用该密钥,导出解密密钥,并且那些密钥随后用于解密接收的已加密片段。解密发生在运行时。该方法在内容转运到客户端浏览器环境或在其中静止时保护内容。
[0048] 优选地,以及如将描述的,该方法使用对称密钥加密、临时密钥安装(会话密钥)、基于HMAC的密钥导出、(如以下所定义的)AUTH模块绑定和代码模糊的方面来保护内容不受流录制器录制以及静止数据的复制。该解决方案将内容保护方案移到播放器应用中,将加密维持到回放点。当内容拥有者要求不需要DRM时,该方法提供这样一种保护解决方案,该保护解决方案允许客户以对内容的盗窃和不当使用形成负担得起的、轻量的威慑来货币化内容。具体而言,该方法的保护针对以下行为:针对递送服务的可伸缩攻击、针对加密密钥的可伸缩攻击、可伸缩最后一英里内容篡改、传输级内容解密以及缓存中的静止复制。与传统的DRM系统不同,该方法不需要支持策略的规范或支持离线访问。而是,当客户端开始回放时,通过使用传统的访问参数,各个访问请求被准许或拒绝。当准许访问时,播放器译解针对该播放器的安全性模块被唯一地保护的字节集。
[0049] 通过以这种方式使用可配置安全性元素的组合,播放器安全性模块接受内容流中提供解密有效载荷所需指令的消息。如将描述的,这些消息用于产生保护明文内容的密钥。消息格式支持组、每个会话、和共享密钥安装以及基本有效载荷加密(例如,用于诸如的某些媒体格式)和容器加密(例如,用于某些其它媒体格式,诸如
和 )。然而,与DRM方案不同,消息本身不
需要包含密钥,并且他们不需要携带策略信息。而是,优选地,消息通过条件访问向通过在该消息中的URL引用的会话特定密钥授予权利。以这种方式,优选针对内容的每个部分,对会话密钥的访问需要有效边缘认证令牌。连同在消息的受保护部分中允许的某些控制字,该技术允许系统更频繁地切换密钥,使持续攻破的险较低。这通过使用一组可更新密钥导出函数和元数据配置参数来提供。
[0050] 本公开的安全媒体内容保护机制保护在去往播放器的途中的内容不被窃取。如果期望,可以使用端到端加密(诸如经由SSL)来保护从服务器外出到客户端浏览器的数据。此加密防止网络分组捕获从内容被导向的播放器分离内容。
[0051] 图6图示出基本方法。在步骤600,通常播放器被加载在客户端浏览器或其它呈现引擎中,并向运行http代理(ghost)的边缘服务器发出针对内容清单的请求,http代理(ghost)被供应用于提供期望的功能性。在步骤602,接收到请求的http代理执行授权检查;如果检查通过,则该代理建立并向进行请求的播放器供应包括该清单的响应。播放器随后读取清单并请求期望内容的第一片段。这是步骤604。通常,“片段”表示以离散比特率的可配置长度的连续视频和音频数据的时间片。播放器请求(在步骤604生成)被边缘服务器http代理接收。边缘服务器执行另一授权检查;如果检查成功,则边缘服务器代理加密片段。这是步骤606。在步骤608,边缘服务器代理以一消息封装已加密第一片段,该消息称为授权控制消息(ECM);如将看见的,该消息被用于提供解密其余有效载荷(即视频和/或音频内容)所需的指令。特别地,该消息用于产生保护明文内容的密钥;然而,ECM不需要包括实际的密钥。而是,ECM通过条件访问向的会话特定密钥授予权利,优选地,通过该消息中的URL的引用。(尽管不要求,但是优选清单和内容片段(URL)是受令牌保护的)。在步骤610,边缘服务器代理供应已加密片段(其已用ECM封装)。在步骤612,播放器从片段读取ECM。播放器随后向边缘服务器代理作出另一请求来请求会话密钥。这是步骤614。在步骤616,边缘服务器代理执行另一授权检查;如果检查通过,则边缘服务器创建会话密钥。在步骤618,会话密钥被发送给客户端。在步骤620,播放器解密片段,并且在步骤622,播放器播放(呈现)片段。这完成基本操作。
[0052] 图7是图示出用于基于Flash的播放器的上述方案的基本操作的UML图。在该图中,Flash播放器700与边缘网络服务器代理702(Ghost)交互。内容本身可以在其已经被内容提供商706(内容网站)上载到边缘网络数据存储系统704(NetStorage)之后从那儿获取。步骤1将内容上载到服务提供商。步骤2辅助令牌授权,并且步骤3可以涉及播放器验证。步骤4-
15对应于之前描述的安全媒体保护方案。
[0053] ECM和密钥
[0054] 以下术语在本文档的上下文中具有具体含义。
[0055] 临时密钥:本质上是临时的密钥。
[0056] 会话密钥:用于导出一个或多个加密密钥的临时值。
[0057] 内容加密密钥:用于保护节目数据的临时实例的临时密钥。该密钥是借助密钥导出函数从会话密钥导出的。
[0058] ECM加密密钥:用于保护ECM结构的临时密钥。该密钥是借助密钥导出函数从会话密钥导出的。
[0059] 授权控制消息(ECM):用于从q服务器/头端向q客户端/播放器递送访问标准和加密参数的数据结构。
[0060] 条件访问:基于回放时的订户/用户权利状况来控制对受保护资源的访问的手段。
[0061] 一般,该技术涉及起源于在播放器中执行或与播放器关联地执行的可更新安全性模块(AUTH)的内容加密。该技术的特征还在于通过授权控制消息传送、有效载荷加密和密钥管理的形式进行的轻量条件访问功能性。优选地,在被形成并被用来将CDN特定的访问标准(加密参数)运载到AUTH模块的数据结构中携带该实现方式中的控制消息。优选地,每个授权控制消息(ECM)与其保护的内容复用,并且其进一步以使得仅被授权访问该内容的所供应播放器被允许加密和播放该流的方式而受到保护。
[0062] 该系统的主要部分被包括在边缘服务器ghost进程和播放器AUTH模块的以下特征中。
[0063] ●内容加扰(GHost和播放器AUTH)
[0064] ○授权控制消息(ECM)
[0065] ○有效载荷加密
[0066] ○容器加密
[0067] ●密钥管理服务
[0068] ○服务器(GHost)
[0069] -密钥管理:会话密钥生成器
[0070] -加密配置元数据
[0071] -密钥导出函数
[0072] -会话管理
[0073] ○客户端(播放器AUTH)
[0074] -对会话密钥的请求
[0075] -密钥导出函数
[0076] 如以上参考图6或图7所述,内容请求由边缘服务器ghost进程处理,边缘服务器ghost进程针对某些内容形式,返回描述对于VOD文件或实况事件所需要的部分的文件。每个部分表示以离散比特率的可配置长度的连续视频和音频数据的时间片。当播放器准备好开始回放时,其请求如在清单中识别的文件的片段,并随后等待带有被请求的数据的响应。当本公开的技术被使能时,ghost进程准备ECM并且针对每个配置元数据,加密供递送给播放器的响应。依赖于操作的模式,ECM可以置于媒体容器(有效载荷加密)内、被带外递送或被加前缀到已加密片段(内容加密)。有效载荷加密对敏感性编解码数据进行加扰,将关心的数据周围的信息留作明文。该方法在图8中示出。优选地,使用空间对齐来使ECM与已加扰数据同步,ECM被立即插入在其保护的数据之前。对于分段的数据,诸如Adobe Flash,优选地,ECM被插入到在FLV标签报头之后但是在已加密数据的第一字节之前的定制报头中。该方法在图9中示出。对于本机MPEG2传输流,优选地,ECM驻存在使用在节目地图表(PMT)中定义的分组id(PID)而被分离地复用的传输流(TS)中。该方法在图10中示出。已加扰分组通常具有被适当设置的TS报头的传输加扰控制比特。容器加密将数据视为向其添加前缀的不透明二进制大型对象(blob)和ECM。在该模式中,优选所有容器信息连同节目数据(音频/视频)被一起加扰。
[0077] 图11图示出在 运行时环境中使用的HTTP动态流传输的实施例。该实施例仅仅是代表性的。
[0078] 为了辅助加密密钥管理,在一个实施例中,边缘服务器ghost进程针对被递送给客户端的内容的每个片段使用唯一的临时密钥。该密钥和内容两者优选来自ghost进程的同一实例,并且加密会话状态优选被本地存储。为了防止访问滥用,可以使用边缘令牌化以及SSL/TLS来在(从边缘服务器到客户端的)实际传输期间保护保密性。
[0079] 当播放器发起部分请求时,接收到该请求的ghost进程创建加密会话对象来存储临时密钥和跟踪加密状态所需要的其它会话上下文信息。这些加密会话对象随后被存储在内部会话表中,被用会话id串进行密钥安装,并被保留直到会话结束或超时。优选地,会话对象具有有限的寿命并且将自然地导致会话密钥的重新协商。如果播放器与一些其它用户共享其会话id,则可以使用令牌认证来限制并发访问的滥用。
[0080] 当客户端解析ECM时,其遇到到会话密钥的URL。该URL通常指向https资源,但是优选地,其包括用于保护资源不受几种普通形式的未授权访问的短期边缘认证令牌。
[0081] 在播放器内,AUTH模块负责解析ECM,下载适当的密钥安装材料,解密数据并将数据传递给编解码器以用于回放。优选地,AUTH模块包括若干密钥导出函数,其中,当给定会话特定的会话密钥时,密钥导出函数产生解密和验证数据完整性所需要的密钥集。优选地,该模块是动态加载的代码,该代码是或能够与播放器分离地下载到客户端。该模块可以使用模糊被隐匿,并且在一些情况下,可以在攻破的刹那间被改变。对该模块的任何修改导致播放器验证签名和播放器引导进程的改变。
[0082] 密钥导出函数是许多密码系统的构造块。假定在客户端和服务器之间缺少强大的相互认证,并且在客户端上不存在可靠的存储装置,则在客户端和服务器之间共享内容密钥是不期望的。为了减轻通过到不值得信任的客户端的不安全的信道进行密钥交换所涉及的风险,所描述的技术优选使用利用已模糊密码的HMAC密钥导出函数,其在给定会话密钥(K_SESSION)和其它参数时,可以计算或者ECM密钥(K_ECM)、内容密钥(K_CONTENT)或HMAC混淆(SALT)。所选择的KDF实现方式是在因特网RFC5869中找到的HKDF。
[0083] 优选的实现方式(针对各个实施例的图8至图10)定义采用会话密钥和ECM数据的三个函数(KDF1、KDF2和KDF3)。KDF1和KDF2用于导出K_ECM和K_CONTENT,并且KDF3用于导出用于HMAC的SALT。
[0084] 本公开的优选方法使用内容加扰、密钥管理和配置元数据的组合来使能用于支持HTTP的客户端的轻量保护方案。在该部分中,建立内容加扰的基本要求,详细描述授权控制消息并且有效载荷加密与该结构绑定到一起。
[0085] 在多数内容保护方案中,关心的数据(音频/视频)和访问控制信息(访问标准)分开存储。尽管访问标准的实现方式可以根据方案不同而不同,但是多数包括对加密密钥、特定解密控制字/指令以及在某些情况下诸如评级/道德级别之类的策略和家长控制的参考。依据访问标准受到怎样的保护、其传递的权限以及它们被如何传递,相关的信息可以被存储在DRM许可、ECM、清单或索引/播放列表(m3u8)文件之一中。选择使用哪种方案随着内容权限、运行时要求和播放器能力而变化。一般,DRM许可是最全功能的实现方式,之后为ECM,其中清单和索引文件是货币化的内容分发中最普通的。影响决策制定过程的因素包括内容的感知值、对离线回放的支持、硬件支持(TPM、安全解码路径、安全密钥阶梯、安全id等)和内容拥有者要求。ECM传统上在看起来比较低程度的总体复杂度比DRM许可供应更少的特征。同时,ECM供应对消息间隔的间隔尺寸的资源控制,同时采用更少的资源进行生成和消耗。
[0086] 如以上注意到的,授权控制消息或ECM是用于从服务器/头端向客户端/播放器递送访问标准和加密参数的数据结构。优选地,该消息被完全包括在第一响应中,并且在会话期间以缩写形式被重复。当客户端被授权播放该流时,其获得由ECM识别的会话密钥,导出必要的保护密钥(K_ECM和K_CONTENT)并且开始解密。优选地,授权控制消息被分裂成两半。第一半是公众可访问的并且包含客户端用来获取会话密钥和导出保护密钥的信息。该结构的公共部分以版本字段开始,之后为4比特消息类型、16比特KDF版本、128比特初始化向量,并且以可变长度的空值结束的URL串结束。ECM的第二半使用K_ECM加密,并且其包含用于解密媒体有效载荷数据的参数。ECM的私有部分通过使用K_ECM、使用ECM消息类型中的第4比特中指定的类型的密码、将已加密CRC16的第一字节通过已加密HMAC的最后一个字节作为输入传递给解密方法而被解密。
[0087] 优选地,数据的每个已加密部分将包括ECM。对用于已加密数据的每个请求的第一响应将包括具有公共和私有部分的ECM、以及到唯一会话密钥的URL。所描述的方法基于边缘认证令牌的有效性和任何支持的基于源的认证来向会话密钥准予播放器条件访问。可替换实现方式可以包括对用于与DECE联合的SAML委托的支持,或对用于与垂直应用的OAUTH和其它SSO技术集成的支持。
[0088] 来自配置元数据的加密参数和其它服务器信息被服务器复制到ECM中并且被客户端从ECM读取。客户端负责获取适当的会话密钥,加载正确的认证模块并导出对于解密位于CEM的私有部分中的“访问标准”所需要的K_ECM。
[0089] 在有效载荷加密模式中,仅媒体数据(MDAT)盒内的音频和视频数据被加密。有效载荷加密在加密和解密期间需要额外的解析,但是每单元加密较少的总字节。在容器加密模式中,来自输入媒体片段的全部字节被加密,CEM随后作为前缀加到HTTP响应的开头。在该操作模式中,有效载荷(视频/音频基本流数据)和周围数据两者都与类型无关地被加密。该模式的优点在于其不需要复杂的解析,后续的开发和维护更加简单。
[0090] 存在可供选择用于已加密数据的各种密码。最适当的选择将需要再期望的密码强度、数据的时间属性和吞吐量要求之间进行折中。在一个实施例中,密码是AES,但是这不是限制性的,因为实现方式支持适配客户端和服务器的运行时环境内的任何密码。
[0091] 优选地,对于每个部分,唯一的K_ECM和K_CONTENT是使用对应的KDF、工作会话密钥和ECM中包含的额外信息来导出的。这有助于避免公知的攻击,产生新密钥的稳定流和使能使用会话密钥的不频繁的下载来对部分进行随机访问。
[0092] 密钥管理服务(KMS)提供到密钥导出函数的接口。其包含用于生成会话密钥、导出保护密钥、取回消息认证码SALT以及验证给定消息的HMAC的例程。如以上注意到的,优选地,在服务器侧生成的信息通过令牌认证被保护并且使用服务器侧会话对象被引用。KMS的服务器实现方式优选地生成强大的随机数,并且其提供用于将会话密钥变换成ECM密钥、内容加密密钥或SALT的功能。KMS的客户端实现方式优选地支持密钥导出和HMAC验证器,并且其在客户端AUTH模块中实现,并且其在运行时通过动态加载被加载。
[0093] 每个以上所述的过程优选地在计算机软件中作为在一个或多个处理器中可执行的程序指令集实现而作为专用机器。
[0094] 在其上提供该主题的代表性机器可以是运行Linux或Linux变体操作系统和一个或多个引用来执行所述功能性的基于因特尔奔腾的计算机。以上描述的过程中的一个或多个被实现为用于执行所述功能性的计算机程序,即计算机指令集。
[0095] 尽管以上描述了通过本发明的某些实施例执行的特定顺序的操作,但是应当理解,该顺序是示例性的,因为可替代实施例可以以不同的顺序执行操作,组合某些操作,重叠某些操作等。说明书中对给定实施例的提及指示所述实施例可以包括特定特征、结构或特点,但是每个实施例可以不是必须包括该特定特征、结构或特点。
[0096] 尽管已经在方法或过程的上下文中描述了所公开的主题,但是该主题还涉及用于执行本文中的操作的设备。该设备可以是特定的机器,其被专构建用于所需用途,或其可以包括以其他方式通过存储在计算机中的计算机程序而被选择性地激活或重新配置的计算机。这样的计算机程序可以存储在计算机可读存储介质中,计算机可读存储介质诸如但不限于是任何类型的盘,包括光盘、CD-ROM、磁光盘、只读存储器(ROM)、随机访问存储器(RAM)、磁卡或光卡或适合于存储电子指令的任意类型的介质,并且每一个都被耦合到计算机系统总线。本发明的给定实现方式是以给定编程语言编写的软件,该软件协同运行诸如Linux之类的操作系统的标准因特尔硬件平台上的DNS兼容的名称服务器(例如BIND)而运行。该功能性可以被内建到名称服务器代码中,或其可以作为该代码的附件被执行。实现本文中的技术的机器包括处理器、计算机存储器,计算机存储器保存被处理器执行来执行上述方法的指令。
[0097] 尽管系统的给定组件已经被分开描述,但是本领域普通技术人员将明白,这些功能中的一些可以在给定指令、程序序列、代码部分等中被组合或共享。
[0098] 尽管系统的给定组件已经被分开描述,但是本领域普通技术人员将明白,这些功能中的一些可以在给定指令、程序序列、代码部分等中被组合或共享。本文中所描述的任何应用或功能性都可以通过提供到另一应用中的钩子(hook),通过辅助机器用作插件,通过链接到机器等被实现为本机代码。
[0099] 已经描述了本发明,要求保护的内容如下。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈