有奖捉虫:云通信与企业服务文档专题,速来> HOT

名词解释

客户:使用腾讯云直播产品的使用方,通常为腾讯云账号的拥有者。
用户:腾讯云客户产品的终端使用者,通常为观众。

直播安全的应用场景

应用场景
说明
直播防盗播
直播播放链接是一个 URL ,没有防盗链的播放 URL ,任何人拿到都可以播放。并且播放 URL 往往具有一定的规律,譬如以 协议:\\\\播放域名\\AppName\\流ID 方式拼接,如果没有防盗链,任何人猜测到规则后,可以按照规则自己拼凑,遍历播放,观看所有的流。一是内容无法保密,二是盗播造成的流量还需要自己买单。
筛选观众
直播内容不允许让观众随意观看,希望满足某些条件的人群才能观看,譬如会员,已经登录过的用户,完成购买的用户等等。
内容版权限制
直播内容的版权方有明确的限制,必须在可信的安全环境下播放。譬如迪斯尼电影,中国的电视台直播等。
内容安全
直播内容具有一定机密性或者私密性,只有特定的人才能观看。
以上直播场景都需要直播安全,下面从简单到复杂逐个介绍腾讯云直播安全方案。整体上,直播的安全由两个方向保证,一个是播放 URL ,也就是对播放 URL 的使用和分发进行限制,另外一个方向就是内容,对直播的内容进行加密。前者实现较为简单,不需要播放器支持,任何播放器都可以。后者需要播放器支持,甚至需要硬件和操作系统支持。
下面详细介绍一些常用的直播播放安全方案和特点,以及实施方法。

Referer 鉴权

适用场景:如果对于直播的内容安全并不十分在意,只是希望提高一下播放门槛,可以使用 Referer 防盗链。
实施方法:进入 云直播控制台 > 域名管理 > 选择播放域名 > 访问控制 > 打开 Referer 防盗链 并填写 Referer 内容。
优势:实施简单,控制配置即可。
存在的问题:播放请求中的 Referer 是可以修改、伪造的,知道 Referer 限制内容后,可以修改播放请求中的 Referer ,绕过服务端的 Referer 限制。

IP 黑白名单

适用场景:明确知道允许或者不允许播放的用户外网播放 IP ,通过 IP 黑名单限制
实施方法:同 Referer 鉴权,在访问控制中填写 IP 黑白名单。
优势:实施简单,控制台配置,限制策略严谨,无法伪造。
存在的问题:允许或者不允许播放的用户外网 IP 并不容易知道,而且可能会变化。

播放防盗链

适用场景:直播并无特别的安全要求,只是需要防止盗播。
实施方法:同 Referer 鉴权,在直播控制台启用 Key 鉴权,填写密钥。这样生成的播放 URL 会带 txTime 和 txSecret ,通过后台通过 Key 解密 txSecret 来校验播放 URL 的合法性。具体原理和方法参见 防盗链计算
优势:实施简单,在控制台打开配置。播放 URL 按前面文档生成 txTime 和 txSecret 即可。
存在的问题:在有效期内,拿到播放 URL 的观众就可以播放。播放 URL 容易被传播出去,从而被盗播。有效期设置越长,盗播可能性越大;有效期较短,拿到 URL 时可能已经过期。播放过程中意外断开,重新播放时需要再获取新播放 URL 。网络不稳定的播放用户可能要频繁获取播放 URL 。通常建议播放 URL 有效期设置为24个小时。

播放防盗链结合远程鉴权

为了防止观众通过不合理渠道获取到播放 URL 从而引发盗播,在播放防盗链的基础上,添加了一层客户自定义 token 验证方式,提供高安全性的防盗链机制。
使用场景:直播播放需要精确控制允许播放的人群,譬如会员,已经登录的观众等。
实施方案:在腾讯云完成播放防盗链验证通过后,调用客户的业务服务端接口,将播放请求转发至用户的业务服务,业务端提取 token 信息进行验证,验证通过后将验证结果返回腾讯云直播,来决定是否允许播放。增加一层客户自己的验证,客户能自己控制是否允许播放。具体方案如下:


1.1 向客户业务服务(token 服务)申请播放链接。
1.2 客户业务服务根据请求合法性,下发播放 URL ,播放 URL 包含腾讯云防盗链 txSecret 和客户自己派发的 token ,腾讯云防盗链可以设置比较短,譬如5分钟。
1.3 使用带腾讯云防盗链和业务 token 的播放链接请求腾讯云直播
1.4 腾讯云直播验证腾讯云防盗链,通过后转发带客户 token 的播放 URL 到客户 token 服务
1.5 客户 token 服务验证通过后,通过 HTTP status 回复验证结果。200为通过,其他为非法。
1.6 腾讯云直播根据 token 验证结果决定是否返回直播内容资源到客户端。
实施方法:开启播放防盗链并启用远程鉴权。具体实施过程请联系腾讯云商务或者提工单联系腾讯云直播。
方案优势:客户可以自己灵活控制什么样的用户允许播放。
存在的问题:客户需要自己开发 token 派发服务。直播内容并没有加密,观众可以通过合法播放链接录制直播内容,或者实时转发直播内容。黑客可以通过网络抓取直播内容。

HLS AES128 加密流内容,播放防盗链结合远程鉴权

在播放防盗链结合远程鉴权的基础上,使用 AES128 加密算法对 HLS 的 TS 视频帧加密。
使用场景:使用 HLS 协议播放,流媒体内容涉及版权、机密或者隐私,不希望被黑客在网络上抓取到。
实施方案:使用 HLS 标准支持的AES128对TS视频流的视频帧进行加密。具体流程如下:
img


实施方法:开启播放防盗链并启用远程鉴权。具体实施过程请联系腾讯云商务或者提工单联系腾讯云直播。
方案优势:加密方案是 HLS 标准方案,支持 HLS 协议的播放器天然支持。密钥存取有成熟产品支持,播放解密内置在播放器中,播放防盗链和远程鉴权可以组合使用,安全性高,方案成熟,集成简单。
存在的问题:仅仅支持 HLS 方式播放场景。

行业 DRM 方案

主要指支持国际和国内经过认证的 DRM ,譬如苹果的 Fairplay DRM,Google 的 Widevine DRM,国内的 ChinaDRM 等。其基本原理是通过向权威服务申请 DRM 证书,通过证书管理身份信息和加解密流的密钥以及密钥使用限制。
使用场景:版权方有明确限制性,要求使用认可的标准 DRM 方案。
实施方案:目前腾讯云仅支持苹果的 Fairplay DRM,Google 的 Widevine DRM 两种 DRM 方案,更多 DRM 方案还在研发中。
实施方法:具体实施过程请联系腾讯云商务或者提工单联系腾讯云直播。
方案优势:媒体解密通过操作系统或者硬件完成,安全级别较高。权限控制比较灵活,譬如可以控制只允许观看视频前十分钟等
存在的问题:仅支持指定的协议, HLS 或者 Dash。实施较为复杂,需要按照标准申请证书,播放器需要开发,集成 DRM 组件。主流浏览器支持不完整,譬如 Fairplay 需要使用 HLS 协议,且仅支持 iOS 和 macOS 平台播放;Widevine 虽支持在 Firefox 等非 Chromium 内核浏览器播放,但是需单独加载 CDM 模块,整体体验不流畅。黑盒部分较多(许可证请求过程和加解密过程),调试和兼容性比较麻烦。

腾讯云自研流内容加密方案

大部分隐私直播或者需要内容安全的直播并不需要硬件级别安全,以及复杂的证书派发验证过程。而且在国内直播中,FLV 直播方式也比较流行。需要针对 FLV 的安全直播方案。详情请参见 接入流程
使用场景:在使用 FLV 协议播放的情况下,希望流内容加密,黑客无法通过网络抓取。
实施方案:腾讯云直播自研流加密方案,客户设置对流加密的密钥,腾讯云直播读取密钥并对指定流加密。用户播放时,客户先对用户鉴权,然后给客户端派发解密密钥,解密视频流。 自研加解密流程如下:


实施方法:具体实施过程请联系腾讯云商务或者提工单联系腾讯云直播。
方案优势:全部过程可控,密钥和加解密有产品和工具支持,腾讯云提供播放器 SDK,集成方便,方案成熟。
存在的问题:需要集成 SDK,只能支持客户自研播放器。Web 端和浏览器无法播放。

几种直播播放安全特点和实施方案的优缺点对比

安全方案
安全方案
特点
存在的问题
实施复杂度
推荐程度
Referer 鉴权
对 HTTP 请求的 Referer 进行鉴权
简单易实施,配置即生效
可伪造 Referer 内容
非常简单



IP 黑白名单
对访问的 IP 进行鉴权
简单易实施,配置即生效
观众 IP 不容易获取,可能经常变化
非常简单



播放防盗链
加密播放 URL ,对 URL 进行鉴权
简单易实施,配置即生效
防盗链有效期不好把控,太长容易盗链,太短时需要频繁获取。
非常简单



播放防盗链+远程鉴权
加密播放 URL ,对 URL 进行鉴权,提供客户自行鉴权过程
易实施,盗取门槛相对较高,需要客户配合开发 token 鉴权
-
简单



HLS 加密
对播放 URL 加密,同时对流内容加密
易实施,需要客户配合开发 token 鉴权
只能对 HLS 协议支持, FLV 不能用
简单



行业 DRM 方案
对内容加密,也可以对播放 URL 加密,支持软件和硬件级安全保障
较复杂,需要播放器开发,兼容问题较多
实施复杂,兼容问题多,iOS 和 Android 要分别支持
复杂



自研加密方案
对内容和播放 URL 加密
较复杂,需要播放器开发,全流程可控
私有方案,需要遵循腾讯云通讯协议,无浏览器支持
复杂