视频安全-加密技术

举报
Higeeon 发表于 2019/09/16 20:54:36 2019/09/16
【摘要】 为什么要视频加密 国外大片往往会先在电影院上映,下映后才到各大网络平台上播放。那为何不能同步呢?这里除了影院的播放收益模式外,还有一个很大的原因是难以控制网络的传播,以及把控视频被盗版等风险。在电视、各大视频网站中,国外大片播放时都会做很多特殊技术处理,以减少盗版的可能,甚至在被盗版后还能相应取证。如果视频被盗版并非法传播,那相关视频付费业务将收到严重威胁,版权问题也可能会引发经济纠纷...

为什么要视频加密

    国外大片往往会先在电影院上映,下映后才到各大网络平台上播放。那为何不能同步呢?这里除了影院的播放收益模式外,还有一个很大的原因是难以控制网络的传播,以及把控视频被盗版等风险。

在电视、各大视频网站中,国外大片播放时都会做很多特殊技术处理,以减少盗版的可能,甚至在被盗版后还能相应取证。如果视频被盗版并非法传播,那相关视频付费业务将收到严重威胁,版权问题也可能会引发经济纠纷。为此,对视频服务加密就尤为重要。


视频加密技术

    视频安全可以从整体传输流程考虑。比如下图中视频源经由网络传输到终端用户侧,这中间就包括网络传输、终端播放等环节的安全处理。现有的处理技术也是从这几个方面来保证整体的安全性。

image.png

1.传输安全

    主要通过网络传输中进行防劫持处理,而https技术就是在网络传输层进行非对称加密,防止传输过程中被窃听劫持。但该技术在视频应用中相对较少,CDN处理相对麻烦,时延会增加很多,不划算。


2.资源访问授权

    通过验证的用户才能访问到视频内容,这里主要指防盗链技术。业内防盗链技术主要有,黑白名单、referer、时间戳防盗链,基本都是应用在CDN边缘节点。这种方案视频也是容易被下载,尤其是在防盗链被破解或者时间有效期内。这种技术大部分厂商的CDN都能做,但是有些定制功能的防盗链技术,那就各有差异了。


3.内容安全

    对视频本身进行加密,大部分采用对称加密算法将视频内容进行完全加密,用户获得加密后的视频内容后,通过验证密钥后,终端解密播放。

视频的播放又分成了点播和直播,如果是一个大的完整视频的加密,或者是本地加解密,那方法是非常多的,可以自建各种内部的加解密算法,如视频帧加密等,可自行专利搜索了解。本文主要是针对流媒体通用加密技术。

    1)HLS的AES 128加密,这是将密钥获取方式写在m3u8文件中,而对每个ts单独进行完整加密。终端播放器拿到秘钥后,对每个ts进行解密再进行播放。如果不对密钥获取方式进行特殊处理,VLC等常用播放器就能进行解密并播放。

    2)DRM,比较有名的就是微软的DRM,一般需要终端上需要集成相应sdk。国外大片往往都需要相应的DRM技术进行加密。

    3)广电的加解扰技术,本质上也是视频的加密和解密。前端往往通过CAS系统进行视频的加密(加扰)+授权信息+解扰密钥的加密。后终端上通过智能卡+解扰器完成解密,并在终端上进行播放。有些智能卡是采用类似ESAM的技术。这种类型的电视盒子与普通的相比,可能价格会差上几倍。

    4)rtmpe,rtmp的加密版本,与http相比没有本地缓存,正版服务器流媒体价格不菲,不容易CDN,服务器压力大等,但是加密也是靠谱的,速度还快。


3.其他方式

    1)混淆地址加密,这个其实主要是将原有的访问地址做一个混淆,导致无法直接获取到视频的原地址,虽然方式很简单易破解,但是实施成本低,也有一定的市场。

    2)地址映射,这里与上面混淆有些类似,但是终端往往是先取到一个视频ID,回源请求时源站进行相关验证会给一个播放地址,这个播放地址再结合上面的混淆技术,终端必须多次请求后才能获取到真正的视频地址。这种本质上是增加破解视频url的成本,但对于视频本身也并没有加密。


关于破解

    有加密就有反加密,这真是来来回回的斗争。不管是出于何目的,忽视商业行为的破解总是不合法的,不建议去尝试,但也有必要提出来可以为相关厂商在采用技术方案时可有所考量。


1.防盗链

    简单地如referer,时间戳等,这种破解技术相对成本不算高。

2.drm

    由于标准统一、公开,技术爱好者总是想去破解,当前貌似也有一些方式。

3.hls

    标准的hls,直接解析m3u8就可以拿到秘钥,那将视频解密也是分分钟的事情。如果是有些定制的,也可以伪装成终端来获取秘钥。

4.https

    任何人都可以与服务器建立https链接并获取数据,可以伪装成端去获取到数据,因此重要的是端上的工作。


加密方案建议

    以上提到的相关技术都容易被独立突破,当前破解难度较大就是广电的加解扰技术。因为其解密过程都是在终端硬件上处理,破解难度较大,但总体成本也较高。

    厂商在选取方案时要综合考虑场景,是线下还是线上,也可以多种技术结合混用。本文也针对线上流媒体,从较为安全+通用的角度上提出一些建议:

    1.防盗链,除了常用的时间戳等,还可以考虑中心认证防盗链技术。

    2.采用id映射+地址混淆,增加获取真实播放地址的难度。

    3.hls视频播放,本身视频已经是分片了,整体获取视频拼接会增加一定的复杂性,另外大部分的播放器都能较好兼容。采用此方案,可在服务器端增加获取密钥方式进行验证的环节,不定时进行更新密钥获取方式——这种能够一定程度上避免被破解。但密钥拿到了也很难避免播放器播放。当然条件允许时,可以将密钥在播放器侧进行二次处理成真正的密钥,这样视频才能正常播放,但是这种方式就无法适用到大部分播放器了。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。