用于在模板模式下有效支持短加密区间的系统和方法与流程

文档序号:12278116阅读:242来源:国知局
用于在模板模式下有效支持短加密区间的系统和方法与流程

技术领域

本发明涉及媒体流领域,且在具体实施例中,涉及用于在模板模式下有效支持短加密区间的系统和方法。



背景技术:

超文本传输协议动态自适应流媒体(DASH),也称为MPEG-DASH,被开发用于实现在因特网中对传统的超文本传输协议(HTTP)网络服务器发送的媒体内容进行高质量的流式传输。在DASH架构中,媒体内容可以以不同速率编码为媒体流。媒体内容可以分割为多个片段文件,在接收到来自客户端对内容的请求后,这些片段文件可以各自独立地从服务器或网络向客户端设备进行流式传输。服务器还(例如,为视频或节目)提供一组片段文件对应的媒体表示描述(MPD)。MPD包括允许客户端播放内容的信息。客户端可以使用生成统一资源定位符(URL)的片段模板获取片段来提取内容。MPD中提供了片段模板。在加密片段中,MPD还包括密钥和随机生成的初始化向量(IV),这些初始化向量和密钥一起用于在客户端侧对片段内容进行解密。需要一种有效的IV表示形式来支持片段模板模式。



技术实现要素:

根据实施例,一种用于在超文本传输协议动态自适应流媒体(DASH)中传送模板模式下的加密信息的方法包括在媒体表示描述(MPD)中将用于生成统一资源定位符(URL)的模板从网络服务器发送到客户端来获取用于加密片段的初始化向量(IV);如果所述MPD中不含IV值,从所述客户端接收根据所述模板配置的URL;以及在接收到所述URL后,将所述URL对应的IV返回到所述客户端。

根据另一实施例,一种用于在DASH中传送模板模式下的加密信息的方法包括在客户端处,从网络服务器接收MPD中用于生成URL的模板来获取用于加密片段的IV;在检测到所述MPD中不含IV值或IV基值后,使用所述模板配置所述IV的URL;发送所述IV的URL;以及接收IV。

根据另一实施例,一种用于在DASH中传送模板模式下的加密信息的网络部件包括处理器和存储有待所述处理器执行的程序的计算机可读存储介质。所述程序包括进行如下操作的指令:在MPD中将用于生成URL的模板发送到客户端来获取用于加密片段的IV;如果所述MPD中不含IV值,从所述客户端接收根据所述模板配置的URL;以及在接收到所述URL后,将所述URL对应的IV返回到所述客户端。

根据又一实施例,一种用于在DASH中传送模板模式下的加密信息的用户设备包括处理器和存储有待所述处理器执行的程序的计算机可读存储介质。所述程序包括进行如下操作的指令:从网络服务器接收MPD中指示用于生成URL的模板的URL IV属性来获取用于加密片段的IV;在检测到所述MPD中不含IV值后,使用所述模板配置所述IV的URL;发送所述IV的URL;以及接收IV。

附图说明

为了更完整地理解本发明及其优点,现在参考以下结合附图进行的描述,其中:

图1是DASH架构示例。

图2是在DASH中通过片段模板表示有效地表示和使用加密内容的IV的实施例方法的流程图。

图3是可用于实施各种实施例的处理系统的图。

具体实施方式

下文将详细论述当前优选实施例的制作和使用。然而,应了解,本发明提供可在各种具体上下文中体现的许多适用的发明性概念。所论述的具体实施例仅仅说明用以实施和使用本发明的具体方式,而不限制本发明的范围。

图1所示为用于将媒体(例如,视频、音乐、游戏、应用等)流传输到客户端(例如,订户或一般用户)的DASH架构100的示例。媒体可以包括直播事件或节目、点播内容或视频、或这两者的组合。DASH架构100包括一个或多个媒体服务器110,这些媒体服务器110,例如以基于国际标准化组织(ISO)基媒体文件格式(BMFF)的片段文件的形式提供媒体内容。DASH架构100包括一个或多个客户端120,这些客户端120包括用户设备或装置,例如机顶盒(STB)、台式电脑、笔记本电脑、平板电脑、智能手机或任意其它类型的移动/个人设备。客户端120可以通过任意接入网130接收来自服务器110的媒体内容,接入网130包括互联网、无线局域网(WLAN)、WiFi网络或热点、蜂窝网、线缆架构、光纤骨干网或接入网、或这些项的组合等。客户端120使用HTTP接收内容前首先需要请求内容。

在DASH架构100中,可以以不同的速率将服务器110中的原始内容编码为媒体流(例如,视频流)。视频或其它媒体内容可以分割为多个片段,这些片段可以各自独立地通过接入网130从服务器110向客户端120进行流式传输。服务器110还(例如,为视频或节目的各组片段文件)提供视频/媒体文件对应的媒体表示描述(MPD),包括获取片段(例如,片段URL)和播放内容(例如,视频速率信息)的信息。服务器110还提供MPD文件的统一资源定位符(URL)来指示MPD文件在服务器110或网络130中的位置。

MPD从服务器110发送到客户端120并描述了可用内容(例如,内容片段)、可用内容的各种替代形式、(例如,内容片段的)URL地址,以及其它特征的清单(例如,列表)。MPD可以通过HTTP从内容服务服务器110发送到客户端120。客户端120通过解析MPD了解内容(例如,视频或节目)时序、内容或媒体可用性、媒体类型、分辨率、最小及最大带宽、是否存在多媒体分量的各种编码替代形式、访问性特征和所需数字权限管理(DRM)、媒体分量在网络中的位置,以及其它内容特征。媒体内容(例如,点播视频或直播节目)划分为多个可以单独转发的寻址片段。这些片段分别表示媒体内容的一块或一部分,并且具有MPD中指示的对应URL和时长。

客户端120使用MPD中的信息选择合适的编码替代形式并通过使用HTTPGET请求提取内容片段来开启对内容的流式传输。例如,信息包括文件/片段在服务器110和/或网络130中的位置。客户端120还可基于网络状况确定客户端120的视频速率(例如,确定那些匹配合适的下载速率的待获取的片段文件)。

当前,SegmentList字段或参数可在媒体表示描述(MPD)中用于片段加密。SegmentList可以指示加密的片段列表。在加密片段中,还可提供随机生成的初始化向量(IV)用于在客户端处解密同一SegmentList中的片段。当SegmentTemplate字段或参数在MPD用于描述获取片段的模板时,IV为片段数目。这降低了加密的安全性,因为在这种情况下很容易了解或发现待解密的IV序列并且可以未经授权访问内容。此外,在HTTP直播流媒体(HLS)中,通过将IV置于#EXT-X-KEY标签中在(MPD中的)m3u8清单中插入随机IV。这种做法并不适用于在模板模式下表示片段,这样使得HLS内容在模板模式下的兼容性下降。

本文提供了在DASH中通过模板模式表示形式有效地表示和使用加密内容的IV的系统和方法实施例。实施例包括使用用于(在客户端处)推演IV的URL模板。通过在每个加密区间或每个片段添加一个额外的HTTP GET请求,使得使用随机生成的IV成为可能。加密区间为使用同一解密参数(密钥和IV)的时间段。加密区间适用于需要频繁使用#EXT-X-KEY标签的情况。URL模板属性添加到(MPD的)ContentProtection元素来生成用于推演IV的URL模板。客户端在模板模式下运行时可以检查密钥和IV值,或为推演自URL模板的$Number$或$Time$变量使用最早的片段在每个加密区间内检查一次密钥和IV值,或者如果ContentProtection元素中不含CryptoPeriod元素,则在每个片段内检查密钥和IV值。

在实施例中,(MPD中的)ContentProtection元素包括CryptoPeriod元素和用于指示IV模板URL的@ivURLTemplate属性,如图1所示。

表1

此外,可以包括CryptoPeriod元素的可选@IV属性来表示CryptoPeriod中适用性)。(从服务器或网络发送到客片段的初始化向量。如果存在@IV属性,那么当使用关联密钥进行加密或解密时可将该属性值用作IV。该值可以解释为文本格式的128位十六进制数并且可以使用0x或0X作为前缀。

如果ContentProtection元素中存在@ivUrlTemplate属性,那么可(在客户端处)从@ivUrlTemplate属性中推演IV URL(除非当前CryptoPeriod元素中存在@IV属户端的)HTTP响应内容可以包含文本或二进制表示形式的IV值。例如,IV值可以是文本格式的128位十六进制数并且可以使用0x或0X作为前缀。如果一个CryptoPeriod中既不存在@IV也不存在@ivUrlTemplate属性,那么当对媒体片段进行加密或解密时可(例如,在ISO/IEC 23009-1的第5.3.9.4.4节中的模板构建以及其它地方)使用片段序号作为IV。序列号的大字节序二进制表示形式可以放入16个八位字节的缓存区中并(在左侧)补零。

在另一实施例中,(MPD中的)ContentProtection元素包括CryptoPeriod元素和用于指示IV模板URL的@ivUriTemplate属性,如图2所示。

表2

IPTV/有线电视生态系统中频繁的加密区间更换非常普遍,在IPTV/有线电视生态系统中,同一密钥和初始化向量的组合在2至10秒内有效。这种情况下可以使用多个CryptoPeriod元素。然而,当MPD更新不频繁时,CryptoPeriod元素占据的MPD空间量变大。另一方面,加密区间的长度更易于预测(例如,长度为4个片段的恒定时长)。因此,声明例如120个10片段长的加密区间的游程编码可以节省ContentProtection元素中约119个无用行。当与密钥和IV模板一起使用时,总共为密钥和IV节省了90%的HTTP请求长度。在实施例中,还(向ContentProtection元素)添加了CryptoTimeline元素,CryptoTimeline元素使用游程编码推演加密区间界限。因此,每个推演的加密区间内的第一片段号用于为加密区间引入密钥和IV对。CryptoTimeline元素可配置有多个如表3所示的属性。

表3

如果使用上述的CryptoTimeline元素,那么需要(如上所述的)密钥和IV模板。对于每个CryptoTimeline元素,在CryptoTimeline指定的每个时段开始处,根据密钥和IV模板提取密钥和IV对。对于每个@d时长中的片段,均使用相同的密钥/IV对。

在另一实施例中,CryptoTimeline元素包括指示对应IV的@ivBase属性,如表4所示。

表4

通常,在密钥旋转场景下,不指定@firstStartOffset和@numCryptoPeriods,并且每个@numSegments片段的密钥/TV对均可更改。

在示例中,当存在具有固定时长的4片段长的加密区间时,ContentProtection元素可以包括以下语法:

因此,在每个加密区间内向许可证服务器请求密钥和IV。例如,对于头4个片段,密钥URL为https://example.com/keys/key.cgi?cid=c0c96a693f6b&sn=00001,IV URL为URL is http://example.com/keys/iv.cgi?cid=c0c96a693f6b&sn=00001。对于接下来的5至8个片段,密钥URL为https://example.com/keys/key.cgi?cid=c0c96a693f6b&sn=00005,IV URL为URL is http://example.com/keys/iv.cgi?cid=c0c96a693f6b&sn=000015。

图2所示为使用模板IV URL以及模板密钥URL用于解析DASH中的内容加密的实施例方法200。在步骤201处,服务器或网络210(在MPD中)发送指示密钥URL模板和IV URL模板的ContentProtection元素。例如,ContentProtection元素中的CryptoPeriod元素包括@ivUrlTemplate属性和@keyUrlTemplate,如表1所示。ContentProtection元素还包括用于在客户端处推演一个或多个加密区间的CryptoTimeline元素。在步骤202处,客户端根据@ivUrlTemplate推演IV URL(除非还包括@IV属性以向客户端指示IV值)。客户端还根据@keyUrlTemplate推演密钥URL。如果存在CryptoTimeline元素,那么客户端还可通过使用(如上所述的)游程编码的CryptoTimeline元素推演加密区间。在步骤203处,客户端发送密钥和IV URL,例如在从CryptoTimeline元素推演的每个加密区间的开始发送密钥和IV URL,或者如果ContentProtection元素中不含CryptoPeriod元素,则在每个片段内发送密钥和IV URL。在步骤204处,服务器或网络使用密钥和IV对每个加密区间或片段作出响应。在步骤205处,客户端使用(例如,每个加密区间或每个片段)对应的密钥和IV解密片段。

图3是可用于实施各种实施例的处理系统300的方框图。特定设备可以利用所示的所有部件,或仅部件的子集,且集成水平随设备而异。此外,设备可包含部件的多个实例,例如多个处理单元、处理器、存储器、发射器、接收器等等。处理系统300可包括配备一个或多个输入/输出设备(如网络接口、存储接口等)的处理单元301。处理单元301可包括中央处理器(CPU)310、存储器320、大容量存储设备330,以及连接到总线的I/O接口360。所述总线可以为任何类型的若干总线架构中的一个或多个,包括存储总线或者存储控制器、外设总线等等。

CPU310可包括任意类型的电子数据处理器。存储器320可包括任意类型的系统存储器,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、只读存储器(ROM)或其组合等等。在实施例中,存储器320可包括在开机时使用的ROM以及执行程序时使用的存储程序和数据的DRAM。在实施例中,存储器320是非瞬时的。大容量存储器设备330可包括任意类型的存储器设备,其用于存储数据、程序和其它信息,并使这些数据、程序和其它信息通过总线访问。大容量存储器设备330可包括如下项中的一种或多种:固态磁盘、硬盘驱动器、磁盘驱动器、光盘驱动器等等。

处理单元301还包括一个或多个网络接口350,其可包括以太网电缆等有线链路,和/或接入节点或者一个或多个网络380的无线链路。网络接口350允许处理单元301通过网络380与远程单元通信。例如,网络接口350可以通过一个或多个发射器/发射天线以及一个或多个接收器/接收天线提供无线通信。在实施例中,处理单元301耦合至局域网或广域网用于数据处理并与远程设备进行通信,远程设备可包括其它处理单元、互联网、远程存储设施等等。

虽然已参考说明性实施例描述了本发明,但此描述并不意图限制本发明。所属领域的一般技术人员在参考该描述后,会显而易见地认识到说明性实施例的各种修改和组合,以及本发明的其它实施例。因此,希望所附权利要求书涵盖任何此类修改或实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1