用于保护和验证视频文件的方法、系统和介质
1.分案说明
2.本技术属于申请日为2018年4月11日的中国发明专利申请201880037097.x的分案申请。
技术领域
3.所公开的主题涉及保护和验证视频文件。
背景技术:4.内容消费者经常观看从诸如与视频共享服务相关联的服务器的服务器下载或流式传输的媒体内容,诸如视频。在这样的情况下,服务器可以存储视频以及与视频相关的信息,诸如视频的标题、视频的创建者的名称、视频的描述或与视频相关的缩略图图像。然而,在一些情况下,视频或相关联的信息可能变得被破坏。例如,恶意用户可能删除或修改信息的部分。在一些这样的情况下,可能难以安全地存储视频和相关联的信息以及检测信息何时被修改和/或破坏。
5.相应地,期望的是提供用于保护和验证视频文件的新方法、系统和介质。
技术实现要素:6.根据所公开的主题的各种实施例,提供了用于保护和验证视频文件的方法、系统和介质。
7.根据所公开的主题的一些实施例,提供了一种用于验证视频流的方法,该方法包括:在用户设备处接收呈现与视频档案相关联的视频的请求,其中视频档案包括文件列表、与文件列表相对应的签名、视频元数据、与视频元数据相对应的签名以及与视频相对应的至少一个加密的视频流,并且其中文件列表指示要被包括在视频档案中的多个文件;验证与文件列表相对应的签名;响应于确定已经验证与文件列表相对应的签名,确定在文件列表中被指示的多个文件是否被包括在视频档案中;响应于确定在文件列表中被指示的多个文件被包括在视频档案中,验证与视频元数据相对应的签名;响应于确定已经验证与视频元数据相对应的签名,请求与视频流相对应的解密密钥;响应于接收解密密钥,解密加密的视频流;并且使得解密的视频流被呈现在用户设备上。
8.在一些实施例中,该方法进一步包括确定视频档案中不包括未在文件列表中被指示的文件。
9.在一些实施例中,该方法进一步包括确定与视频元数据相关联的视频标识符和与加密的视频流相关联的视频标识符是否相匹配。
10.在一些实施例中,视频档案包括与加密的视频流相关联的缩略图图像,并且缩略图图像在文件列表中被指示。
11.在一些实施例中,该方法进一步包括验证与缩略图图像相关联的签名,其中视频档案包括与缩略图图像相关联的签名。
12.在一些实施例中,视频档案文件包括与加密的视频流相对应的索引信息。在一些实施例中,视频档案文件可以附加地包括与索引信息相对应的签名,并且该方法可以进一步包括验证与索引信息相对应的签名。
13.在一些实施例中,该方法可以进一步包括用户设备向服务器传输对与视频相对应的视频流的请求,并且作为响应,在用户设备处从服务器接收视频档案。
14.在一些实施例中,请求与视频流相对应的解密密钥可以包括用户设备向服务器传输对解密密钥的请求,并且所述接收解密密钥可以包括用户设备从服务器接收解密密钥。
15.在一些实施例中,可以从用户设备的用户接收呈现与视频档案相关联的视频的请求。
16.根据所公开的主题的一些实施例,提供了一种用于验证视频流的系统,该系统包括存储器和硬件处理器,该存储器和硬件处理器当执行被存储在存储器中的计算机可执行指令时,被配置为:在用户设备处接收呈现与视频档案相关联的视频的请求,其中视频档案包括文件列表、与文件列表相对应的签名、视频元数据、与视频元数据相对应的签名以及与视频相对应的至少一个加密的视频流,并且其中文件列表指示要被包括在视频档案中的多个文件;验证与文件列表相对应的签名;响应于确定已经验证与文件列表相对应的签名,确定在文件列表中被指示的多个文件是否被包括在视频档案中;响应于确定在文件列表中被指示的多个文件被包括在视频档案中,验证与视频元数据相对应的签名;响应于确定已经验证与视频元数据相对应的签名,请求与视频流相对应的解密密钥;响应于接收解密密钥,解密加密的视频流;并且使得解密的视频流被呈现在用户设备上。
17.在一些实施例中,硬件处理器可以进一步被配置为确定视频档案中不包括未在文件列表中被指示的文件。
18.在一些实施例中,硬件处理器可以进一步被配置为确定与视频元数据相关联的视频标识符和与加密的视频流相关联的视频标识符是否相匹配。
19.在一些实施例中,视频档案可以包括与加密的视频流相关联的缩略图图像,并且其中缩略图图像在文件列表中被指示。
20.在一些实施例中,硬件处理器可以进一步被配置为验证与缩略图图像相关联的签名,其中视频档案包括与缩略图图像相关联的签名。
21.在一些实施例中,视频档案文件可以包括与加密视频流相对应的索引信息。
22.根据所公开的主题的一些实施例,一种包含计算机可执行指令的非暂时性计算机可读介质,该指令当由处理器执行时,使得处理器执行本文描述的方法。根据所公开的主题的一些实施例,提供了一种用于验证视频流的系统,该系统包括:用于在用户设备处接收呈现与视频档案相关联的视频的请求的装置,其中视频档案包括文件列表、与文件列表相对应的签名、视频元数据、与视频元数据相对应的签名以及与视频相对应的至少一个加密的视频流,并且其中文件列表指示要被包括在视频档案中的多个文件;用于验证与文件列表相对应的签名的装置;用于响应于确定已经验证与文件列表相对应的签名而确定在文件列表中被指示的多个文件是否被包括在视频档案中的装置;用于响应于确定在文件列表中被指示的多个文件被包括在视频档案中而验证与视频元数据相对应的签名的装置;用于响应于确定已经验证与视频元数据相对应的签名而请求与视频流相对应的解密密钥的装置;用于响应于接收解密密钥而解密加密的视频流的装置;以及用于使得解密的视频流被呈现在
用户设备上的装置。
23.根据所公开的主题的一些实施例,提供了一种用于存储视频流的方法,该方法包括:在服务器处接收由用户设备传输到服务器的视频流和与视频流相对应的视频元数据;生成文件列表,该文件列表指示要被包括在与视频流相对应的视频档案文件中的多个文件,其中文件列表至少包括视频流和视频元数据;生成与文件列表相对应的签名和与视频元数据相对应的签名;使用密钥加密视频流以生成加密的视频流;以及将加密的视频流、文件列表、视频元数据、与文件列表相对应的签名和与视频元数据相对应的签名存储在视频档案文件中,其中视频档案文件与用于生成加密的视频流的密钥相关联地存储。
24.视频档案文件可以被存储在服务器的存储器中。用于生成加密的视频流的密钥可以被存储在服务器的存储器中。
25.根据所公开的主题的一些实施例,提供了一种用于存储视频流的系统,该系统包括存储器和硬件处理器,该存储器和硬件处理器当执行被存储在存储器中的计算机可执行指令时,被配置为:在服务器处接收由用户设备传输到服务器的视频流和与视频流相对应的视频元数据;生成文件列表,该文件列表指示要被包括在与视频流相对应的视频档案文件中的多个文件,其中文件列表至少包括视频流和视频元数据;生成与文件列表相对应的签名和与视频元数据相对应的签名;使用密钥加密视频流以生成加密的视频流;以及将加密的视频流、文件列表、视频元数据、与文件列表相对应的签名和与视频元数据相对应的签名存储在视频档案文件中,其中视频档案文件与用于生成加密的视频流的密钥相关联地存储。
26.根据所公开的主题的一些实施例,提供了一种包含计算机可执行指令的非暂时性计算机可读介质,该指令当由处理器执行时,使得处理器执行用于存储视频流的方法,该方法包括:在服务器处接收由用户设备传输到服务器的视频流和与视频流相对应的视频元数据;生成文件列表,该文件列表指示要被包括在与视频流相对应的视频档案文件中的多个文件,其中文件列表至少包括视频流和视频元数据;生成与文件列表相对应的签名和与视频元数据相对应的签名;使用密钥加密视频流以生成加密的视频流;以及将加密的视频流、文件列表、视频元数据、与文件列表相对应的签名和与视频元数据相对应的签名存储在视频档案文件中,其中视频档案文件与用于生成加密的视频流的密钥相关联地存储。
27.根据所公开的主题的一些实施例,提供了一种用于存储视频流的系统,该系统包括:用于在服务器处接收由用户设备传输到服务器的视频流和与视频流相对应的视频元数据的装置;用于生成文件列表的装置,该文件列表指示要被包括在与视频流相对应的视频档案文件中的多个文件,其中文件列表至少包括视频流和视频元数据;用于生成与文件列表相对应的签名和与视频元数据相对应的签名的装置;用于使用密钥加密视频流以生成加密的视频流的装置;以及用于将加密的视频流、文件列表、视频元数据、与文件列表相对应的签名和与视频元数据相对应的签名存储在视频档案文件中的装置,其中视频档案文件与用于生成加密的视频流的密钥相关联地存储。
附图说明
28.当结合以下附图考虑时,参考所公开的主题的以下详细描述,可以更全面地理解所公开的主题的各种目的、特征和优点,其中相同的附图标记标识相同的元件。
29.图1示出了根据所公开的主题的一些实施例的适合于实现本文描述的用于保护和验证视频文件的机制的说明性系统的示意图。
30.图2示出了根据所公开的主题的一些实施例的可以在图1的服务器和/或用户设备中使用的硬件的详细示例。
31.图3示出了根据所公开的主题的一些实施例的用于存储视频流和验证视频文件的信息流图。
32.图4示出了根据所公开的主题的一些实施例的用于保护和验证视频文件的过程的示例。
具体实施方式
33.根据各种实施例,提供了用于保护和验证视频文件的机制(其可以包括方法、系统和介质)。
34.在一些实施例中,本文描述的机制可以将视频流存储在包括其他文件的视频档案文件中,诸如与视频流相关联的元数据、与视频流相关联的缩略图内容和/或任何其他合适的内容。在一些实施例中,这些机制可以生成文件列表,该文件列表指示包括在视频档案文件中的文件。例如,在一些实施例中,文件列表可以指示视频流的名称或位置、包括元数据的文件的名称或位置、一个或多个缩略图图像的名称或位置和/或任何其他合适的文件。此外,在一些实施例中,机制可以为包括在视频档案文件中的文件中的一个或多个生成密码签名,并且所生成的签名可以附加地存储在视频档案文件中。例如,在一些实施例中,可以为文件列表生成第一签名,可以为元数据生成第二签名,可以为缩略图内容生成第三签名等。在一些实施例中,视频档案文件可以被存储在服务器上,例如,与视频共享服务相关联的服务器。以这种方式将视频流存储在视频档案文件中可以使得能够在用户设备处检测视频档案文件已经被破坏或修改。
35.在一些实施例中,本文描述的机制可以基于视频档案文件的内容来验证视频档案文件是否已经被破坏或修改。例如,在一些实施例中,已经接收和/或存储视频档案文件的用户设备可以通过验证包括在视频档案文件中的密码签名中的每一个来验证视频档案文件的内容。作为另一示例,在一些实施例中,用户设备可以确定在被包括在视频档案文件中的文件列表中被指示的所有文件是否存在于视频档案文件中,以确定没有与视频档案文件相关联的信息被删除。作为又一示例,在一些实施例中,用户设备可以确定在视频档案文件中不包括未在文件列表中被指示的文件,以确定没有文件被添加到视频档案文件中。在一些实施例中,在使得视频流被呈现在用户设备上之前,用户设备可以验证视频档案文件尚未被破坏。通过检测视频档案文件已经被破坏或修改,已经接收和/或存储视频档案文件的用户设备可以防止视频流在用户设备上的呈现。因此,如果用户设备检测到视频档案文件已被破坏或修改,则不会引致与播放视频流相关联的、用户设备上的计算资源(例如,存储器和/或处理资源)。另外,检测可以防止用户设备被由恶意用户添加到视频流和/或相关联的信息的恶意内容损害。因此,实施例可以解决与检测到视频流和/或相关联的信息何时已经被破坏或修改相关联的问题。
36.尽管本文描述的机制通常被描述为与视频内容相关,但是在一些实施例中,所描述的技术可以用于存储和/或验证任何合适类型的媒体内容,包括实时流式传输的内容、音
频内容(例如,音频书、音乐文件和/或任何其他合适类型的音频内容)、电子书和/或任何其他合适类型的媒体内容。此外,在一些实施例中,本文描述的机制可用于验证以任何合适的方式存储或接收的媒体内容,诸如由用户设备流式传输的媒体内容、本地存储在用户设备上的媒体内容、被存储在与用户设备相关联的外部存储器上的媒体内容、从第一用户设备传递到第二用户设备的媒体内容和/或任何其他合适的媒体内容。
37.转向图1,根据所公开主题的一些实施例示出了可以使用的用于验证视频文件的硬件的示例100。如所图示的,硬件100可以包括一个或多个服务器102、通信网络104和/或一个或多个用户设备106,诸如用户设备108和110。
38.服务器102可以是用于存储和/或向用户设备106提供媒体内容的任何合适的服务器。例如,在一些实施例中,服务器102可以存储媒体内容,诸如视频、电视节目、电影、实时流式传输的媒体内容、音频内容和/或任何其他合适的媒体内容。在一些实施例中,服务器102可以将媒体内容存储在档案文件中,该档案文件包括与媒体内容相关联的元数据、与媒体内容相关联的缩略图图像和/或任何其他合适的内容,并且可以存储指示档案文件中包括的文件的文件列表,如下文结合图4更详细所述。在一些实施例中,响应于从用户设备接收到请求,服务器102可以向用户设备传输包括媒体内容流和任何相关联的文件的档案文件。
39.在一些实施例中,通信网络104可以是有线和/或无线网络中的一个或多个的任何合适的组合。例如,通信网络104可以包括以下中的任何一个或多个:互联网、内联网、广域网(wan)、局域网(lan)、无线网络、数字订户线路(dsl)网络、帧中继网络、异步传输模式(atm)网络、虚拟专用网络(vpn)和/或任何其他合适的通信网络。用户设备106可以通过一个或多个通信链路连接到通信网络104,该通信网络104可以经由一个或多个通信链路连接到服务器102。通信链路可以是适合于在用户设备106和服务器102之间传送数据的任何通信链路,诸如网络链路、拨号链路、无线链路、硬连线链路、任何其他合适的通信链路或者这样的链路的任何合适的组合。
40.用户设备106可以包括适合于请求媒体内容项、接收包括媒体内容流和相关联的信息的档案文件、验证所接收的档案文件和/或任何其他合适的功能的任何一个或多个用户设备。例如,在一些实施例中,用户设备106可以包括移动设备,诸如移动电话、平板计算机、可穿戴计算机、膝上型计算机、交通工具(例如,汽车、船、飞机或任何其他合适的交通工具)娱乐系统和/或任何其他合适的移动设备和/或任何合适的非移动设备(例如,台式计算机和/或任何其他合适的非移动设备)。作为另一示例,在一些实施例中,用户设备206可以包括媒体回放设备,诸如电视、投影仪设备、游戏控制台、台式计算机和/或任何其他合适的非移动设备。
41.尽管服务器102被图示为一个设备,但是在一些实施例中,由服务器102执行的功能可以使用任何合适数量的设备来执行。例如,在一些实施例中,可以使用多个设备来实现由服务器102执行的功能。
42.尽管在图1中示出了两个用户设备108和110以避免使图过于复杂化,但是在一些实施例中可以使用任何合适数量的用户设备和/或任何合适类型的用户设备。
43.在一些实施例中,可以使用任何合适的硬件来实现服务器102和用户设备106。例如,在一些实施例中,设备102和106可以使用任何合适的通用计算机或专用计算机来实现。
例如,移动电话可以使用专用计算机来实现。任何这样的通用计算机或专用计算机可以包括任何合适的硬件。例如,如图2的示例硬件200所示,这样的硬件可以包括硬件处理器202、存储器和/或存储204、输入设备控制器206、输入设备208、显示/音频驱动器210、显示和音频输出电路212、通信接口214、天线216和总线218。
44.在一些实施例中,硬件处理器202可以包括任何合适的硬件处理器,诸如微处理器、微控制器、数字信号处理器、专用逻辑和/或用于控制通用计算机或专用计算机的运行的任何其他合适的电路。在一些实施例中,硬件处理器202可以由被存储在服务器(例如,诸如服务器102中的一个)的存储器和/或存储204中的服务器程序控制。例如,在一些实施例中,服务器程序可以使得硬件处理器202将媒体内容流以及相关联的信息存储在档案文件中,并且响应于接收到对媒体内容流的请求而将档案文件传输给用户设备和/或执行任何其他合适的动作。在一些实施例中,硬件处理器202可以由被存储在用户设备106的存储器和/或存储204中的计算机程序控制。例如,计算机程序可以使得硬件处理器202接收包括媒体内容流和任何其他合适文件的档案文件、验证档案文件的内容、呈现媒体内容流和/或执行任何其他合适的动作。
45.在一些实施例中,存储器和/或存储204可以是用于存储程序、数据、媒体内容和/或任何其他合适信息的任何合适的存储器和/或存储。例如,存储器和/或存储204可以包括随机存取存储器、只读存储器、闪存、硬盘存储、光学介质和/或任何其他合适的存储器。
46.在一些实施例中,输入设备控制器206可以是用于控制一个或多个输入设备208和从一个或多个输入设备208接收输入的任何合适的电路。例如,输入设备控制器206可以是用于从触摸屏、从键盘、从鼠标、从一个或多个按钮、从语音识别电路、从麦克风、从照相机、从光学传感器、从加速度计、从温度传感器、从近场传感器和/或任何其他类型的输入设备接收输入的电路。
47.在一些实施例中,显示/音频驱动器210可以是用于控制和驱动对一个或多个显示/音频输出设备212的输出的任何合适的电路。例如,显示/音频驱动器210可以是用于驱动触摸屏、平板显示器、阴极射线管显示器、投影仪、一个或多个扬声器和/或任何其他合适的显示和/或呈现设备的电路。
48.通信接口214可以是用于与一个或多个诸如图1所示的网络104的通信网络接合(interface)的任何合适的电路。例如,接口214可以包括网络接口卡电路、无线通信电路和/或任何其他合适类型的通信网络电路。
49.在一些实施例中,天线216可以是用于与通信网络(例如,通信网络104)无线通信的任何合适的一个或多个天线。在一些实施例中,天线216可以省略。
50.在一些实施例中,总线218可以是用于在两个或更多个组件202、204、206、210和214之间通信的任何合适的机制。
51.根据一些实施例,硬件200中可以包括任何其他合适的组件。
52.转向图3,根据所公开主题的一些实施例示出了用于将视频流存储在视频档案文件中并由用户设备验证所接收的视频档案文件的信息流图的示例300。在一些实施例中,信息流图300的框可以在第一用户设备(用户设备108)、服务器102和第二用户设备(用户设备110)上执行。
53.在302处,用户设备108可以向服务器102传输视频流用于存储。在一些实施例中,
视频流可以是由用户设备108记录的视频内容。附加地或替代地,在一些实施例中,视频流可以由任何其他合适的设备记录。在一些实施例中,视频流可以具有任何合适的持续时间。在一些实施例中,用户设备108可以附加地传输与视频流相关联的任何其他合适的信息。例如,在一些实施例中,用户设备108可以传输视频流的标题、视频流的创建者的名称、类别或流派信息、视频流的描述、要与视频流相关联的缩略图图像和/或任何其他合适的信息。
54.在304处,服务器102可以存储所接收的视频流。在一些实施例中,服务器102可以将视频流存储在视频档案文件中,该视频档案文件附加地包括对应于与视频流相关联的其他信息(例如,元数据、缩略图图像和/或任何其他合适的信息)的文件。例如,在一些实施例中,由用户设备108传输的附加信息(例如,视频流的标题、视频流的创建者的名称、关键字或类别信息、视频流的描述、视频流的多个视图、视频流上传到服务器102的日期、持续时间信息、指示视频流被指派或分组到的集合的频道信息和/或任何其他合适的信息)可以作为元数据被存储在元数据的文件中。作为另一示例,在一些实施例中,与视频流相关联的每个缩略图图像可以作为图像文件被存储在视频档案文件中。作为又一示例,在一些实施例中,与视频流相关联的索引信息可以作为文件被存储在视频档案文件中。作为更特定的示例,在一些实施例中,索引信息可以包括指示与视频流相关联的不同章节或事件开始或结束的时间点或帧的内容表。
55.在一些实施例中,视频档案文件可以是以任何合适的格式的。例如,在一些实施例中,视频档案文件可以是包括视频流和任何其他文件的任何适当文件格式(例如,zip、jar、tar和/或任何其他合适的格式)的容器文件。在一些实施例中,视频档案文件可以以任何合适的方式压缩。替代地,在一些实施例中,视频档案文件可以是未压缩的。
56.在一些实施例中,服务器102可以生成指示被存储在视频档案文件中的文件的文件列表。例如,在视频档案文件包含视频流、缩略图图像和包括与视频流相关联的元数据的文件的情况下,服务器102可以生成文件列表来指示视频流的名称和位置、缩略图图像的名称和位置以及元数据文件的名称和位置。在一些实施例中,服务器102可以将文件列表包括在视频档案文件中。
57.在一些实施例中,服务器102可以包括签名,每个签名与视频档案文件中的文件相关联。例如,在一些实施例中,服务器102可以包括与元数据文件相对应的签名、每个缩略图图像文件的签名、视频流的签名、文件列表的签名和/或任何其他合适的签名。在一些实施例中,服务器102可以使用任何合适的技术或技术组合来生成每个签名。例如,在一些实施例中,服务器102可以使用数字签名算法(dsa)、椭圆曲线dsa(dsa)和/或使用任何其他合适的技术来生成签名。在一些实施例中,用于生成签名的任何合适的参数(例如,指示密钥长度的参数和/或任何其他合适的参数)可以被包括在视频档案文件中以允许客户端设备验证签名。
58.在一些实施例中,服务器102可以使用任何合适的密码散列函数(例如,sha-224、sha-256和/或任何其他合适的散列函数)来生成每个签名。在一些这样的实施例中,服务器102可以对散列函数使用任何合适的输入。例如,在一些实施例中,针对每个签名对散列函数的输入可以基于与签名相关联的文件的文件名。作为更特定的示例,对于与被命名为“缩略图.jpg”的缩略图图像文件相对应的签名,并且对散列函数的输入可以包括“缩略图.jpg”。附加地或替代地,在一些实施例中,针对每个签名对散列函数的输入可以包括指示
视频流和/或视频档案文件的身份的视频标识符。
59.在一些实施例中,服务器102可以在将视频流包括在视频档案文件中之前加密视频流。在一些实施例中,服务器102可以使用任何合适的加密技术或算法来加密视频流。例如,在一些实施例中,服务器102可以使用任何合适的对称加密算法或非对称加密算法来加密视频。在一些实施例中,服务器102可以存储由用户设备用于解密视频流的密钥(例如,公共加密密钥和/或私有加密密钥)连同视频档案文件。
60.在一些实施例中,服务器102可以在视频档案文件中存储可以由用户设备用于请求解密密钥和/或解密视频流的任何合适的加密信息,如下所述。
61.注意,在一些实施例中,视频档案文件中可以包括任何其他合适的信息,诸如视频档案文件的版本号、创建视频档案文件的日期、视频标识符信息和/或任何其他合适的信息。例如,在一些实施例中,指示视频流的身份的视频标识符信息可以被存储在视频元数据文件中以及指示关于视频流的索引信息的文件中。在一些这样的实施例中,可以在视频元数据文件和索引信息文件之间验证视频标识符信息,以验证两者文件是有效的。
62.视频档案文件的具体示例如下所示:
63.视频_1_标题.ytb
64.版本_号
65.元
66.文件列表
67.视频.json
68.流.meta
69.加密.meta
70.文件列表.sig
71.视频.json.sig
72.流.meta.sig
73.流
74.[视频_id]-[itag].stream
[0075]
图像
[0076]
缩略图.jpg
[0077]
缩略图.jpg.sig
[0078]
在这个具体示例中,“视频_1_标题.ytb”可以是包括加密的视频流、视频元数据、缩略图图像、文件列表和于每个文件的签名的视频档案文件。例如,“文件列表”可以指示“视频_1_标题.ytb”中的文件、“视频.json”可以包括与视频相关联的元数据,该元数据可以以任何合适的格式(例如,javascript object notation或json、编码的和/或任何其他合适的格式)存储,“流.meta”可以包括关于视频流的信息,诸如索引信息,“加密.meta”可以包括指示视频流如何被加密和/或签名如何被生成的信息,以及“缩略图.jpg”可以是与视频流相关联的缩略图图像。作为另一示例,“文件列表.sig”、“视频.json.sig”、“流.meta.sig”和“缩略图.jpg.sig”可以分别是与“文件列表”、“视频.json”、“流.meta”和“缩略图.jpg”相关联的签名。
[0079]
注意,在一些实施例中,服务器102可以创建与从任何合适数量的用户设备接收的
视频流相对应的任何合适数量的视频档案文件。也就是说,在一些实施例中,可以在任何合适的时间重复框302和304。在一些实施例中,所生成的视频档案文件可以被存储在服务器102的存储器204中。
[0080]
在306处,用户设备110可以从服务器102请求特定的视频流。
[0081]
在一些实施例中,响应于由用户设备110的用户进行的任何合适的动作,请求可以被接收。例如,在一些实施例中,请求可以响应于用户选择用于下载到用户设备110和/或用于在用户设备110上流式传输的特定视频或媒体内容项。在一些实施例中,可以经由与对应于服务器102的媒体内容共享服务相关联的用户接口来接收动作。
[0082]
在308处,服务器102可以识别并向用户设备110传输与所接收的请求相对应的视频档案文件。
[0083]
在310处,用户设备110可以验证视频档案文件的内容。例如,在一些实施例中,用户设备110可以确定视频档案文件的文件列表中的所有文件是否被包括在视频档案文件中,以及确定视频档案文件不包括未在文件列表中被指示的附加文件。作为另一示例,在一些实施例中,用户设备110可以验证视频档案文件中的每个文件的签名。图4中示出并且下文结合图4描述了用于验证视频档案文件的内容的更详细的技术。
[0084]
在312处,响应于验证视频档案文件的内容,用户设备110可以从服务器102请求解密密钥,用于解密包括在视频档案文件中的视频流。
[0085]
在314处,服务器102可以识别与视频档案文件相对应的解密密钥,并且可以将所识别的解密密钥传输到用户设备110。
[0086]
在316处,用户设备110可以使用所接收的解密密钥来解密视频流。用户设备110然后可以使得解密的视频流被呈现在用户设备110上。
[0087]
注意,在一些实施例中,用户设备110可以在308处接收视频档案文件并且可以存储视频档案文件以用于在离线时呈现视频流。在一些这样的实施例中,当接收到视频档案文件时和/或在呈现视频流之前,用户设备110可以在310处验证视频档案文件的内容。
[0088]
转向图4,根据所公开的主题的一些实施例示出了用于在用户设备上验证所接收的视频档案文件并呈现包括在视频档案文件中的视频流的过程的示例400。
[0089]
过程400可以通过在402处接收呈现与视频档案文件相关联的视频流的请求开始。在一些实施例中,可以以任何合适的方式接收请求。例如,在一些实施例中,可以经由用户接口接收呈现已经下载并存储在用户设备上的视频的请求。注意,在一些这样的实施例中,视频可以被存储在诸如用户设备的本地存储器的任何合适的位置中、与用户设备相关联的外部存储器设备(例如,硬盘驱动器、安全数字或sd卡和/或任何其他合适的存储器设备)上。作为另一示例,在一些实施例中,可以经由网页(例如,与视频共享服务相关联的网页和/或任何其他合适的网页)接收请求以下载和/或流式传输视频。
[0090]
如上结合图3的框302所述,在一些实施例中,视频档案文件可以包括任何合适的文件。例如,在一些实施例中,视频档案文件可以包括视频流或一组均包括完整视频流的一部分的视频流。作为另一示例,在一些实施例中,视频档案文件可以包括指示与视频流相关联的元数据的文件,该元数据诸如视频流的标题、视频流的创建者的名称、视频流的多个视图、创建视频流的日期、视频流的描述、视频流的持续时间和/或任何其他合适的信息。作为又一示例,在一些实施例中,视频档案文件可以包括与视频流相关联的一个或多个缩略图
图像(例如,来自视频流的屏幕捕获、由视频流的创建者创建或选择的图像或图标和/或任何其他合适的缩略图图像)。注意,在一些实施例中,缩略图图像可以包括任何合适的图像、图标、图形、动画、视频或其他可视内容。作为再一示例,在一些实施例中,视频档案文件可以包括指示视频档案文件中的所有文件的文件列表。另外,在一些实施例中,包括在视频档案文件中的各个文件可以与签名相关联,并且签名中的每个可以附加地包括在视频档案文件中。
[0091]
在404处,过程400可以验证与包括在视频档案文件中的文件列表相关联的签名。过程400可以使用任何合适的技术或技术组合来验证签名。例如,在签名由服务器102使用特定算法(例如,dsa、ecdsa和/或任何其他合适的算法)生成的情况下,过程400可以使用由算法指定的验证技术来验证签名。例如,在一些实施例中,过程400可以基于用于生成签名的算法来执行计算或一系列计算。作为更特定的示例,在一些实施例中,过程400可以使用用于生成签名的密码散列函数来计算用于验证签名的一个或多个值。在一些实施例中,过程400可以使用任何其他合适的信息来计算用于验证签名的一个或多个值,诸如用于生成签名的参数(例如,基于密钥长度的参数、基于散列函数的参数、用于生成签名的随机选择的值和/或任何其他合适的参数)、与视频档案文件和视频流相关联的视频标识符和/或任何其他合适的信息。在一些实施例中,响应于确定基于签名的计算满足特定标准,过程400可以确定签名是有效的,该特定标准例如是由用于生成签名的算法指定的标准。注意,在一些实施例中,可以在视频档案文件中指示基于由服务器102用于生成签名的信息的、验证签名所需和/或使用的信息。例如,在一些实施例中,信息可以包括在视频档案文件中包括的、指示用于生成每个签名的参数(例如密钥长度、随机选择的种子值、散列函数和/或任何其他合适的信息)的文件中。作为更特定的示例,在一些实施例中,信息可以被存储在诸如“加密.meta”的文件中,如以上结合图3的框302所述。
[0092]
如果在404处,过程400确定与文件列表相关联的签名是无效的(例如,在404处“否”),则过程400可以在框416处结束。
[0093]
如果在404处,过程400确定与文件列表相关联的签名是有效的(例如,在404处“是”),则过程400可以前进到框406并且可以确定在文件列表中被指示的所有文件是否被包括在视频档案文件中。例如,在文件列表指示一个或多个特定缩略图图像将被包括在视频档案文件中和/或元数据文件将被包括在视频档案文件中的情况下,过程400可以验证所指示的缩略图图像和所指示的元数据文件被包括在视频档案文件中。在一些实施例中,过程400可以附加地或替代地确定未在文件列表中被指示的附加文件是否被包括在视频档案文件中。
[0094]
如果在406处,过程400确定并非所有在文件列表中被指示的文件都被包括在视频档案文件中和/或未在文件列表中被指示的附加文件被包括在视频档案文件中(例如,在406处“否”),则过程400可以在框416处结束。
[0095]
如果在406处,过程400确定在文件列表中被指示的所有文件都被包括在视频档案文件中和/或没有未在文件列表中被指示的附加文件被包括在视频档案文件中,则过程400可以前进到框408并且可以验证与元数据文件相关联的签名。在一些实施例中,过程400可以以任何合适的方式验证与元数据文件相关联的签名,例如,使用以上结合框404描述的技术。
[0096]
如果在408处,过程400确定与元数据文件相关联的签名是无效的(例如,在408处“否”),则过程400可以在框416处结束。
[0097]
如果在408处,过程400确定与元数据文件相关联的签名是有效的(例如,在408处“是”),则过程400可以前进到框410并且可以请求用于解密包括在视频档案文件中的视频流的解密密钥。在一些实施例中,过程400可以从托管视频档案文件的服务器和/或从任何其他合适的实体请求解密密钥。附加地或可替代地,在一些实施例中,过程400可以从数字版权管理(drm)服务器请求解密密钥。在一些实施例中,对解密密钥的请求可以包括任何合适的信息,诸如与视频档案文件相关联的视频标识符。
[0098]
响应于接收到解密密钥,过程400可以解密包括在视频档案文件中的视频流。在视频档案文件中包括多个视频流的情况下(例如,其中每个视频流是较大视频流的块或部分),过程400可以使用解密密钥或不同的解密密钥单独解密每个视频流。在一些实施例中,过程400可以使用任何合适的技术或算法来解密视频流。例如,在一些实施例中,过程400可以根据任何合适的解密算法使用从服务器接收的解密密钥来解密视频流。注意,在一些实施例中,过程400可以对视频流的解密的部分执行任何合适的附加验证。例如,在一些实施例中,过程400可以使用包括在视频档案文件中的签名和/或使用解密的流字节计算的签名(例如,由服务器102生成的、与解密的视频流相关联的签名和/或任何其他合适的签名)来验证解密的流字节。
[0099]
在414处,过程400可以使得解密的视频流被呈现在用户设备上。在一些实施例中,解密的视频流可以以任何合适的方式呈现。例如,在一些实施例中,解密的视频流可以在视频播放器窗口内呈现,该窗口包括用于操纵视频流的回放的任何合适的控件(例如,音量控件、快进控件、倒带控件、暂停控件和/或任何其他合适的控件)。
[0100]
过程400可以在416处结束。
[0101]
注意,在一些实施例中,过程400可以在解密视频流之前执行任何其他合适的验证程序。例如,在一些实施例中,过程400可以确定与指示视频流的索引信息的文件相关联的签名是否是有效的,类似于上文结合框404所述。作为另一示例,在一些实施例中,索引信息文件和元数据文件均可以包括指示视频流的识别信息的视频标识符,并且过程400可以确定索引信息文件中的视频标识符与元数据文件中的视频标识符相匹配。
[0102]
附加地,注意,在一些实施例中,在过程400响应于确定视频档案文件的至少一部分是无效的(例如,在404、406和/或408处为“否”)而在框416处终止的情况下,过程400可以呈现指示视频档案文件的内容被确定为无效的消息。例如,在一些实施例中,过程400可以(例如响应于确定附加文件被添加到视频档案文件、文件从视频档案文件中丢失和/或任何其他合适的信息)呈现指示视频档案文件可能被修改和/或视频档案文件可能被破坏的消息。
[0103]
在一些实施例中,图3和图4的过程的上述框中的至少一些可以以不限于图中所示和结合图描述的顺序和序列的任何顺序或序列来运行或执行。而且,图3和图4的以上框中的一些可以在适当的情况下基本上同时地或并行地执行,以减少时延和处理时间。附加地或替代地,可以省略图3和图4的过程的上述框中的一些。
[0104]
在一些实施例中,任何合适的计算机可读介质可以用于存储用于执行本文的功能和/或过程的指令。例如,在一些实施例中,计算机可读介质可以是暂时性的或非暂时性的。
例如,非暂时性计算机可读媒体可以包括介质,诸如磁性介质(诸如硬盘、软盘和/或任何其他合适的磁性介质)、光学介质(诸如光盘、数字视频光盘、蓝光光盘和/或任何其他合适的光学介质)、半导体介质(诸如闪存、电可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)和/或任何其他合适的半导体介质)、在传输期间不是短暂的或者不缺乏任何持久性表相的任何适当的介质和/或任何合适的有形介质。作为另一示例,暂时性计算机可读介质可以包括网络上、线路、导体、光纤、电路中的信号、在传输期间短暂的或缺乏任何持久性表相的任何合适的介质和/或任何合适的非有形介质。
[0105]
在本文描述的系统收集关于用户的个人信息或利用个人信息的情况下,可以向用户提供控制程序或特征是否收集用户信息(例如,关于用户的社交网络、社交动作或活动、职业、用户的偏好或用户的当前位置的信息)的机会。此外,在存储或使用某些数据之前,可以以一种或多种方式对该数据进行处理,使得个人信息被移除。例如,可以处理用户的身份,使得不能针对用户确定个人可识别信息,或者可以在获得位置信息的情况下对用户的地理位置进行概括化处理(诸如达到城市、zip码或州级)使得无法确定用户的特定位置。由此,用户可以控制如何收集有关用户的信息和信息如何由内容服务器使用。
[0106]
相应地,提供了用于保护和验证视频文件的方法、系统和介质。
[0107]
尽管在前述说明性实施例中已经描述和说明了本发明,但是应当理解,本公开仅通过示例的方式进行,并且在不脱离仅由所附权利要求书限定的本发明的精神和范围的情况下,可以对本发明的实施方式的细节进行许多改变。所公开的实施例的特征可以以各种方式组合和重新排列。
技术特征:1.一种用于验证视频流的方法,所述方法包括:在用户设备处接收呈现与视频档案相关联的视频的请求,其中所述视频档案包括文件列表、与所述文件列表相对应的签名以及与所述视频相对应的至少一个加密的视频流,并且其中所述文件列表指示要被包括在所述视频档案中的多个文件;验证与所述文件列表相对应的签名;响应于确定已经验证与所述文件列表相对应的签名,确定在所述文件列表中被指示的所述多个文件是否与所述视频档案中包括的文件匹配;以及响应于确定在所述文件列表中被指示的所述多个文件不与在所述视频档案中包括的文件匹配,阻止对用于解密所述加密的视频流的解密密钥的请求。2.根据权利要求1所述的方法,其中,确定在所述文件列表中被指示的所述多个文件不与在所述视频档案中包括的文件匹配包括确定所述视频档案缺失所述多个文件中的文件。3.根据权利要求1所述的方法,其中,确定在所述文件列表中被指示的所述多个文件不与在所述视频档案中包括的文件匹配包括确定所述视频档案中包括所述多个文件中未包括的文件。4.根据权利要求1所述的方法,进一步包括在确定在所述文件列表中被指示的所述多个文件是否与在所述视频档案中包括的文件匹配之前验证与视频元数据相对应的签名。5.根据权利要求1所述的方法,其中,所述视频流是在服务器处从第二用户设备接收的,并且其中,所述视频档案是由所述用户设备从所述服务器接收的。6.根据权利要求5所述的方法,其中,进一步包括验证与视频元数据相对应的签名,其中,所述视频元数据指示关于所述第二用户设备的信息,并且其中,所述视频元数据和与所述视频元数据相对应的签名被包括在所述视频档案中。7.一种用于验证视频流的系统,所述系统包括:硬件处理器,所述硬件处理器:在用户设备处接收呈现与视频档案相关联的视频的请求,其中所述视频档案包括文件列表、与所述文件列表相对应的签名以及与所述视频相对应的至少一个加密的视频流,并且其中所述文件列表指示要被包括在所述视频档案中的多个文件;验证与所述文件列表相对应的签名;响应于确定已经验证与所述文件列表相对应的签名,确定在所述文件列表中被指示的所述多个文件是否与所述视频档案中包括的文件匹配;以及响应于确定在所述文件列表中被指示的所述多个文件不与在所述视频档案中包括的文件匹配,阻止对用于解密所述加密的视频流的解密密钥的请求。8.根据权利要求7所述的系统,其中,确定在所述文件列表中被指示的所述多个文件不与在所述视频档案中包括的文件匹配包括确定所述视频档案缺失所述多个文件中的文件。9.根据权利要求7所述的系统,其中,确定在所述文件列表中被指示的所述多个文件不与在所述视频档案中包括的文件匹配包括确定所述视频档案中包括所述多个文件中未包括的文件。10.根据权利要求7所述的系统,其中,所述硬件处理器进一步在确定在所述文件列表中被指示的所述多个文件是否与在所述视频档案中包括的文件匹配之前验证与视频元数据相对应的签名,其中,所述视频元数据和与所述视频元数据相对应的签名被包括在所述
视频档案中。11.根据权利要求7所述的系统,其中,所述视频流是在服务器处从第二用户设备接收的,并且其中,所述视频档案是由所述用户设备从所述服务器接收的。12.根据权利要求11所述的系统,其中,所述硬件处理器进一步验证与视频元数据相对应的签名,其中,所述视频元数据指示关于所述第二用户设备的信息,并且其中,所述视频元数据和与所述视频元数据相对应的签名被包括在所述视频档案中。13.一种包含计算机可执行指令的非暂时性计算机可读介质,所述计算机可执行指令在由处理器执行时使得所述处理器执行一种用于验证视频流的方法,所述方法包括:在用户设备处接收呈现与视频档案相关联的视频的请求,其中所述视频档案包括文件列表、与所述文件列表相对应的签名以及与所述视频相对应的至少一个加密的视频流,并且其中所述文件列表指示要被包括在所述视频档案中的多个文件;验证与所述文件列表相对应的签名;响应于确定已经验证与所述文件列表相对应的签名,确定在所述文件列表中被指示的所述多个文件是否与所述视频档案中包括的文件匹配;以及响应于确定在所述文件列表中被指示的所述多个文件不与在所述视频档案中包括的文件匹配,阻止对用于解密所述加密的视频流的解密密钥的请求。14.根据权利要求13所述的非暂时性计算机可读介质,其中,确定在所述文件列表中被指示的所述多个文件不与在所述视频档案中包括的文件匹配包括确定所述视频档案缺失所述多个文件中的文件。15.根据权利要求13所述的非暂时性计算机可读介质,其中,确定在所述文件列表中被指示的所述多个文件不与在所述视频档案中包括的文件匹配包括确定所述视频档案中包括所述多个文件中未包括的文件。16.根据权利要求13所述的方法,其中,所述方法进一步包括在确定在所述文件列表中被指示的所述多个文件是否与在所述视频档案中包括的文件匹配之前验证与视频元数据相对应的签名,其中,所述视频元数据和与所述视频元数据相对应的签名被包括在所述视频档案中。17.根据权利要求13所述的非暂时性计算机可读介质,其中,所述视频流是在服务器处从第二用户设备接收的,并且其中,所述视频档案是由所述用户设备从所述服务器接收的。18.根据权利要求17所述的非暂时性计算机可读介质,其中,所述方法进一步包括验证与视频元数据相对应的签名,其中,所述视频元数据指示关于所述第二用户设备的信息,并且其中,所述视频元数据和与所述视频元数据相对应的签名被包括在所述视频档案中。
技术总结提供了用于保护和验证视频文件的方法、系统和介质。在一些实施例中,该方法包括:在用户设备处接收呈现与视频档案相关联的视频的请求,其中所述视频档案包括文件列表、与所述文件列表相对应的签名以及与所述视频相对应的至少一个加密的视频流,并且其中所述文件列表指示要被包括在所述视频档案中的多个文件;验证与所述文件列表相对应的签名;响应于确定已经验证与所述文件列表相对应的签名,确定在所述文件列表中被指示的所述多个文件是否与所述视频档案中包括的文件匹配;以及响应于确定在所述文件列表中被指示的所述多个文件不与在所述视频档案中包括的文件匹配,阻止对用于解密所述加密的视频流的解密密钥的请求。解密所述加密的视频流的解密密钥的请求。解密所述加密的视频流的解密密钥的请求。
技术研发人员:阿努伊
受保护的技术使用者:谷歌有限责任公司
技术研发日:2018.04.11
技术公布日:2022/7/5