阿里云周源:一篇文章读懂四代视频加密技术演进

在刚刚圆满落幕的LiveVideoStackCon峰会上,阿里云高级技术专家周源进行了《视频加密和DRM的实施实践》主题分享。周源,有十多年音视频研发经验,之前在淘宝视频负责开放平台,目前在阿里云视频云部门负责媒体处理,在大规模系统建设和云计算方面都有非常丰富的实战经验。本文为演讲原文,希望对视频内容安全从业者有一些启发。

在视频加密这块,其实是一个攻防战,攻防的手段非常多,还会不断的翻新,有很多技术手段,技术的发展也是日新月异。视频保护技术其实已经升级了好几代,我会给大家介绍下每一代技术是怎么做的、背后的原理、遇到的问题以及业界的解法。会从数据加密、全链路保护、数字版权管理、内容识别四个方面来介绍。

数据加密原理——算法的选择


最初,数据加密原理非常简单,我们在生活中如果有一样东西你想保护它,你会怎么办,你的第一反应可能就是拿把锁把他锁起来,自己保护好钥匙。在数字领域,这个“锁”有好多种,一种叫对称型的,一种叫非对称型的。

这两种算法分别有各自的优缺点,对称型算法的优点是计算量非常小,速度快,效率高。而它的缺点是密钥的管理和分发非常困难,如果别人配了相同的一把钥匙,就可以打开这把锁了,不够安全。常见的算法包括AES、EDS。非对称型算法的优缺点其实和对称型是相对的,优点是算法是公开的,你可以看到所有细节,即使这样,安全性也非常高。非对称算法有两种类型的钥匙:公钥和私钥。公钥可以开放给所有人,内容只能通过私钥加密,加密完成后,使用公钥就可以解密,但是不能进行加密。但是缺点是加密和解密花费的时间长,速度慢,所以不适合对大量数据加密,只适合少量数据的加密。常见的算法包括RSA、ECC。

在视频场景下,怎么去权衡对称加密和非对称加密?

媒体介质经历了几次升级,最早是文本,几十KB就是非常大的一个小说了;到了图片就发展到了几百KB,甚至MB的级别;如今视频时代,量级上到GB级别。所以视频的第一个特点是数据量大,加密算法速度不行的话是不够实用化的。

视频的应用越来越广泛,它不仅仅局限于某一个平台。用户会在各种操作系统、各种终端设备上去观看视频,在选择算法的同时,一定要考虑平台标准化这块。

更进一步的话,需要考虑移动端的功耗问题,大家做视频都在能耗和发热做斗争,选择算法的时候,一定要考虑功耗问题。

 

最终的选择——AES算法


基于以上考虑,业界大家最终会选择AES算法。它具有以下特点:

  1. 安全性,AES算法从数学上证明是安全的。把加密好的文件给到你,你没拿到钥匙的情况下,暴力破解需要花2104亿年的时间,这几乎是一个不可能完成的任务。现在也存在一种旁路攻击的方法,攻击的是实现方法,不是算法本身。攻击成本比较高,在增加成本的前提下,实现上是有规避的方法。所以安全性还是有保障的。
  2. 这个算法衡量了时-空占比,速度快、消耗小,适合小型系统上工作。
  3. 算法也非常标准化,也在绝大部分的硬件芯片、软件平台中进行内置,可以用硬件本身的能力快速做计算。

一般情况下密钥越长,安全性越高。但是密钥短并不代表运算速度一定会快。同时,因为均衡了时-空占比,AES算法的资源消耗也是最低的。所以,AES算法在对称算法中是首选。

 

AES算法的经典应用——HLS数据加密

举个例子,HLS协议使用M3U8文件格式。关键性的信息是下图中橙色的一行,这里加了KEY的信息。它的原理是播放器从网上把m3u8下载下来,解析后得到KEY,并且传递给服务器询问请求通过不通过,服务器如果认证通过,会把真实的KEY返回给播放器进行播放。

 

仅仅使用AES加密来包含内容时,它的安全问题出在哪里呢?

它的最关键的问题是——钥匙URL。因为URL要被写在文件里的,不管你做什么变化,无论加session、referer、token,它都是标准的HTTP请求,这是HLS加密的最大风险点。

因为网络请求是公开的,我们怎么保障网络传输安全性?防御中间人攻击?
而在客户端拿到钥匙后,实际上是明文内容,客户端的安全性又该如何保障?

如此我们便有了新解法——全链路保护


这里有两个很重要的原则,第一个是中间网络是不可信的,第二个是客户端是不可信的。接下来看看这两个问题如何解决。

关于中间网络不可信,HTTPS是最经典的方案。因为HTTPS整个流程保证了没有任何人能窃取中间的信息,安全的从服务端传递到客户端。

 

它整个流程是:黑色的部分是公开的,谁看到都不会影响安全性。客户端向服务端请求一次,服务端会返回公钥,客户端用公钥去把自己的对称钥匙保护一次。接着把加密后的对称钥匙传递给服务端,服务端使用秘钥解码后得到对称钥匙。这时候客户端和服务端双方都知道对称钥匙了,然后用对称钥匙对数据加密进行传递。这个方案即解决了安全性问题,又解决了效率问题。

关于客户端不可信。通常客户端是非常复杂的,常见的是浏览器,标准也很多(如下图)。但是在整个规划中,很重要的一点是:“有定义,但没有实现”。每个浏览器都支持H5的DRM方案,但是每个浏览器的支持方式都是不一样的。

 

H5整个流程是,当解码器拿到加密数据之后,数据流会经过CDM,这个模块会和外部系统进行通讯,去和License服务获取内容钥匙和授权规则,经过了这一步才能真正把流解密成明文数据去做渲染。所以,虽然有了H5的规范,但是实际上还是会被厂商绑定,客户端安全性完全由厂商提供的CDM来决定。

移动端方面,分为Web端和APP。Web端浏览器是非常复杂的,各种定制的WebKit引擎不支持内容解码模块(Content Decryption Module),只能采用JavaScript去写代码,它是明文代码,安全性很差。现在有一个新的技术WebAssembly,它是把JS编译一下,增加了破解的难度,但是还是没有从源头解决这个问题。APP是没有任何标准了,都靠自己去定制。

如此看来,我们想解决客户端不可信这件事,其实还有很多障碍在里面。同时,客户端不可信带来了很多问题,你没法知道你客户端里是好人还是坏人,如果是恶意用户,他的破坏力普通比较强,会给平台带来很大的损失。

全链路的保护解决了网络传输的安全,但是客户端的安全问题没有得到彻底完全的解决,所以在业界有了第三种解法:数字版权保护(DRM)。

更安全的加密方式——数字版权保护DRM


DRM基本是三足鼎立的情况,微软的PlayReady,谷歌的Widevine,苹果的FairPlay。不同操作系统、浏览器和移动平台需要不同的方案,所以看起来我们没办法用一套方案把所有的加密都做完。

 

所以如何跨平台把问题解决掉?——多重DRM解决方案

我们分别来看看三个厂商的方案:PlayReady方案中,当你的设备和服务得到一个认证后,才能接着发起License请求,分了两个阶段来提交。Widevine方案中,通过第一段来控制是否有权限复杂的钥匙,再从License去拿真正的钥匙。FairPlay方案中,播放器第一个流程是认证,第二个流程是获取License。

如此,我们有了多重DRM解决方案,它的流程是Player去问认证服务允不允许访问视频,后台经过认证后,会给一个认证后的token。当认证允许访问的时候,通过CDN分发网络从源站获取内容,当拿到内容后,有了token和视频KEY ID,就会把License返回,这里才有真正能解密内容的钥匙。

 

多重DRM可以降低加密成本,对于不同平台,把整个流程做一致化,只需要一份加密资产,降低了加密流程成本和管理成本。同时,因为原生 DRM 客户端在其原生平台上通常是免费提供的,也可以消除客户端的许可成本。

从技术角度上,整个业界有通用加密格式的规范,可以很好的把加密内容安全地传输到客户端。但是有一个现实情况,FairPlay的加密算法是不同的,为了实现多重DRM方案,我们需要两份加密资产,才能真正做到跨平台的保护。

那么DRM是否是最终的加密方案呢?从安全性上来讲,DRM用了非对称算法,但是依然会面临主密钥泄露这个问题,网上也出现HDCP主秘钥泄露、4K视频版权保护技术被破解等案例。

我们用钥匙去保护视频、在全链路保护上做了很多改进,并且采用了更安全的多重DRM方案,我们试图用各种方法把内容保护起来,这些思路都叫被动保护。被动包含的每种方法都有自己的缺陷,所以我们给出一种新的思路,叫内容识别。

主动保护——内容识别


目前,版权保护遇到的问题是“内容所有权”跟“版权”的关系越来越复杂,这使我想起凯文.凯利在《必然》中曾提出:“对已有事物的重新排列和再利用,而对传统的财产观念和所有权概念产生巨大的影响。”

这里面就延伸出来很多问题,用户是否对原有素材做了一定的转化,还是仅仅复制了原作?我们应该是严格禁止还是开放包容的态度?在这个全民导演的时代,我们可以看到很多用户把自己录制或者网上收集的素材重混起来,就成为了很成功的新作品。当然,版权方也有真实的案例,即使得内容得到了很好的二次传播,还惊喜地获得额外的收益。面对这样的情况,我们该如何进行高效地内容识别和保护?

 

视频指纹——给视频赋予唯一身份

阿里云视频云团队自研了视频指纹技术,它是一种识别、提取、压缩视频的技术,可以产生唯一的“指纹”来代表视频文件进行视频查找。你可以通过算法得到指纹信息,用这个指纹信息和版权库中的视频进行检索匹配,就可以很迅速地找到相似的视频源。它不仅判断唯一性,还可以找到究竟使用了视频源的哪一段。

 

视频指纹技术可以解决如下的场景的问题:

1. 版权保护

新增视频与版权库做比对,对存在版权风险的视频进行播放控制,降低侵权风险;对自有版权的视频资源,从公网抓取视频数据鉴别,防止自有版权内容被侵权。

2. 原创识别

能识别这段视频是从哪个片子剪辑出来的,识别视频是否是原创视频、剪辑后视频、自媒体再创造视频。

3. 广告分成

传播不要紧,当能做到视频回溯的时候,就可以判断新上传的视频原创性,检索分成库召回认领视频,找到真正的视频版权主,从而支撑广告分成业务生态。

回顾


整体视频保护技术历经了几次升级,最后,我们进行一个回顾和总结。

数据加密

它是有安全基础,有算法保障的,但是没有解决问题

全链路保护

整体的保护方案,但是无法落地,没办法大规模使用

数字版权管理(DRM)

更完善、更安全的保护方案,但是依旧存在风险

内容识别

改变思路,变被动为主动,开拓更广阔的空间


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云原生数据库如何打造业务弹性

云计算带来了业务弹性上的极大优势,阿里云数据库高级产品专家时慢从应用架构的变迁,客户实战案例,业务分析等方面详细介绍POLARDB,及如何利用POLARDB设计互联网创新型应用的数据库架构。 应用架构的变迁——为什么我们需要超级MyS…

SpringMVC 集成 mybatisPlus

文章目录一、基础配置1. pom2. web.xml二、配置文件2.1.spring-context.xml2.2. spring-datasource.xml2.3. spring-mvc.xml2.4. jdbc.properties2.5. logback.xml三、基础类3.1. 实体类3.2. 接口类3.3. 接口映射xml3.4. service接口3.5. 接口实现类3.6. 控制层四、数据库方面4…

四大开源项目联合发布 腾讯已成Github全球贡献前十公司!

近日在Techo开发者大会上,腾讯正式对四大重点开源项目进行了联合发布,包括分布式消息中间件TubeMQ、基于最主流的 OpenJDK8开发的Tencent Kona JDK、分布式HTAP数据库 TBase,以及企业级容器平台TKEStack。 截至目前,腾讯已经在Gi…

实践 | Sentinel 扩展性设计

Sentinel 提供多样的 SPI 接口用于提供扩展的能力。用户可以在用同一个 sentinel-core 的基础上自行扩展接口实现,从而可以方便地给 Sentinel 添加自定义的逻辑。 初始化逻辑扩展机制 为了统一初始化的流程,我们抽象出了 InitFunc 接口代表 Sentinel 的…

android 各版本市占率,Android各版本市占率:果冻豆遥遥领先

近日,谷歌公布了最新Android系统各版本的市场占有率。虽说已发布两年之久且推出三个版本的果冻豆系统出现了小幅下滑,但60.8%的市占率依然遥遥领先其它各版本。Android各版本市占率:果冻豆遥遥领先(图片来源于cnbeta)从 谷歌统计数据显示&…

腾讯首度披露基础架构演进史:“海量之道”进化“生而为云”

近日腾讯Techo开发者大会在北京召开。会上腾讯云副总裁、云架构平台部总经理谢明首次对外披露了腾讯基础设施演进与创新历程。他介绍在微信、QQ等国民级业务不断发展的背后,包括服务器、网络、IDC、计算、存储、数据库等在内的基础设施和技术架构一直在不断进化&…

阿里云专家穆轩的《杭州九年程序员之“修炼”手册》

对于一个从未到过南方的内蒙汉子来说,北京的大学一直是中学时憧憬的殿堂,而离家上千公里浙江大学,则是从来没有考虑过的地方。机缘巧合之下,被一位年近七旬的浙大老师说服,我自此开始了南下“修炼”之旅。没想到转眼间…

主流开源开发者工具落地阿里云,进一步提升开发者体验

在云计算大数据时代,企业的不断上云,业务的不断发展,技术架构的不断演进,导致资源、应用和数据的管理成本不断增加,运维难度不断加大。业务场景的不断和复杂和变化,不得不引起我们更多的思考: …

SpringBoot 集成 mybatisPlus

文章目录一、1. pom2. application.yml3. dao层接口集成baseMapper4. 启动类上扫描5. 创建数据库6. 初始化表结构7. 浏览器验证8. 源码地址一、 1. pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/P…

让开发变得更简单 | 阿里云中间件推出全新开发者服务

要码出未来&#xff0c;除了程序员专属的节日福利&#xff0c;还需要实打实的为程序员解决手头的难题。 10月24日&#xff0c;阿里云中间件推出全新开发者服务&#xff0c;发布3款开发工具&#xff0c;包括Alibaba Cloud Toolkit 、链路追踪Tracing Analysis和应用高可用服务AH…

免费!这里有一份开发者进阶“宝典”求带走

戳蓝字“CSDN云计算”关注我们哦&#xff01;作为开发者&#xff0c;无论是前端还是后端&#xff0c;做机器学习还是云计算、架构&#xff0c;保持对技术的敏感性都是非常重要的事。新技术一般发源于人力、财力等各方面资源都很雄厚的大厂&#xff0c;经过时间的沉淀逐渐成为技…

阿里云发布多款云管工具,任何角色都可以轻松完成云上运维

无论是在传统的开发过程&#xff0c;还是在云上&#xff0c;运维都是一个十分重要而又繁重的工作。随着企业规模的扩大&#xff0c;系统架构的复杂度在增加&#xff0c;部署规模也在不断扩大&#xff0c;控制台不再能满足其需求&#xff0c;需要一个便捷、实用的运维系统或者运…

阿里云容器技术专家莫源:乘风踏雪归来,仍是此间少年

我叫刘中巍&#xff0c;花名莫源&#xff0c;是阿里云容器服务团队的技术专家&#xff0c;13年加入阿里云&#xff0c;从零开始参与多款云产品的研发。在1024开发者节之际&#xff0c;来分享下自己的成长故事。 “平凡但不安分”的男孩 我是一个来自北方的孩子&#xff0c;从小…

12306 的技术扒光在你面前,100 万人如何抢 1 万张票

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | IT牧场责编 | 阿秃12306 抢票&#xff0c;极限并发带来的思考每到节假日期间&#xff0c;一二线城市返乡、外出游玩的人们几乎都面临着一个问题&#xff1a;抢火车票&#xff01;虽然现在大多数情况下都能订到票&#xff0…

android monkey优化,GitHub - baozhida/AndroidMonkey: 这个项目是CrashMonkey4Android可执行文件,修复了一些bug,做了一些优化...

简介这个项目是CrashMonkey4Android可执行文件原版不支持64位java&#xff0c;只支持32位的此版本支持java 64位&#xff0c;并且修改了一些内部逻辑&#xff0c;把CrashMonkey4Android 和CrashMonkey4Android_tradefederation 重新打包2017-3-13更新1.去掉了每个monkey操作时候…

常见Serialize技术探秘(ObjectXXStream、XML、JSON、JDBC byte编码、Protobuf)

目前业界有各种各样的网络输出传输时的序列化和反序列化方案&#xff0c;它们在技术上的实现的初衷和背景有较大的区别&#xff0c;因此在设计的架构也会有很大的区别&#xff0c;最终在落地后的&#xff1a;解析速度、对系统的影响、传输数据的大小、可维护性及可阅读性等方面…

MariaDB强势席卷DB-Engines榜单后续,与阿里云达成全球独家战略合作

2018年10月份&#xff0c;DB-Engines 发布了月全球数据库排名&#xff0c;排名前三的一如既往还是Oracle、MySQL、Microsoft SQL Server。排名是重要指标&#xff0c;同时增长率的重要性也同样备受重视。 MariaDB以黑马之势&#xff0c;强势席卷DB-Engines榜单 在DB-Engines跟…

2025年将达6.4万亿美元!AI这下玩大了……

最近&#xff0c;在看大厂新季度财报时&#xff0c;发现了“搜狗”亮眼的成绩。就在前天&#xff0c;搜狗发布了2019年第三季度财报&#xff1a;营收3.149亿美元&#xff0c;实现14%的同比增长&#xff0c;高于行业增长速度。搜狗的净利润达3660万美元&#xff0c;比去年同期增…

存储系统设计——NVMe SSD性能影响因素一探究竟

目录 1 存储介质的变革 2 NVME SSD成为主流 2.1 NAND FLASH介质发展 2.2 软件层面看SSD——多队列技术 2.3 深入理解SSD硬件 3 影响NVME SSD的性能因素 3.1 GC对性能的影响 3.2 IO PATTERN对性能的影响 3.2.1 顺序写入Pattern对SSD性能优化的奥秘 3.2.2 读写冲突Patte…