直播安全体系、播放安全、推流安全以及内容安全方案分享

今天的内容包括直播安全体系、播放安全、推流安全以及内容安全四个部分。

首先,我们简单介绍一下直播场景中的安全风险、危害,以及我们应该从哪些方面来保障我们的直播安全。

直播的主要流程是主播通过推流URL,将流推到云服务等云端平台上,云端根据客户需要,对直播流进行转码等处理,之后终端观众再通过拉流URL进行播放。在这个流程里,假如没有任何的安全策略将会发生什么呢?在主播端,如果主播的推流URL是自己根据一定规则拼接生成的,那么一旦这个拼接规则被泄露,任何人都将可以通过这个规则拼接出推流URL来进行推流,也就是我们常说的盗推。盗推就有可能会导致主播在正常直播时被踢下线,或是额外产生大量推流费用。如果有恶意用户推送违规内容的话,甚至可能会导致我们的直播业务域名被封禁,影响平台内所有用户。

在观众端。如果观众观看的URL是以一定的规律自己拼接而成,或是可以通过抓包、网页调试工具等方法被获取到,如果这些播放链接被二次分发,那就存在被盗播的风险。例如被一些APP用来引流,可能产生大量非预期内的带宽费用,从而导致平台经济损失。可以看出,没有任何的安全策略,将会为整个平台的正常运营带来很大的风险。

在实际直播中,我们通常使用推流地址和播放地址由直播业务后台生成的方法,解决主播和观众自己拼接地址带来的规则泄露问题。这也是一种安全策略。当然,真实的直播场景要复杂的多。每个直播平台面向的观众、直播的内容和运营的策略也都不同,很难用一种方案覆盖所有场景,因此需要结合实际需要来选择适合业务场景的安全方案。

一般情况下,在整个直播流程中,播放因为涉及到的链路和使用的设备最为复杂,是整个直播安全方案中的重点。接下来我将根据不同的业务场景,简单介绍如何使用安全策略,保证播放安全。

如果直播场景不需要很高的安全性,只是想要简单的提高盗播门槛,那推荐使用Referer校验的方式。Referer是HTTP协议中的一个header字段,一般用来判断访问的来源。在使用FLV或者是HLS协议播放时,可以通过Referer来判断播放请求是否来自于允许的来源。

如果直播仅面向固定的观众和设备,并且这些设备的IP都已知的话,比如作为源站或是明确部分IP不被允许播放的场景,那推荐使用IP黑白名单的方式来提高安全性。这个功能的配置也非常简单,只需要在云服务器控制台中打开开关,将允许或不允许的IP贴到配置项中即可使用。由于IP地址的伪造难度相对来说较大,因此具有不错的安全效果。但一般情况下播放端的公网IP很难获取到,并且经常变化,所以这种方式比较难实施。因此只适合观众少,设备IP固定的场景。

在日常直播中,更多的场景直播平台希望直播内容可以被更多的观众观看,比如各种游戏类、娱乐类的直播。那使用前两种方式就都不适合了。在这种场景下,推荐使用防盗链的方式来防止盗播。防盗链的原理是业务端和云端约定一个统一的鉴权规则。业务端按照鉴权规则生成防盗链播放链接下发给客户端。客户端通过这个播放链接播放时,云端会使用相同的规则,对播放链接中的鉴权参数进行校验计算,只有校验成功才允许播放。在整个过程中,客户端接触不到鉴权规则,并且因为鉴权参数一般使用md5的哈希算法计算而来,很难反推计算出原始的鉴权Key等关键信息。因此终端用户自行破解生成播放链接的难度很大,提升了播放的安全性。要生成云服务器的防盗链播放链接,首先需要在控制台上打开Key鉴权功能,然后根据鉴权sercret生成规则生成secret,再将secret 和过期时间time参数拼接到播放链接中就可以了。相较于前两种方式,防盗链策略也非常容易配置使用,并且它的安全性相对来说更高,可以满足多种直播场景,是我们直播中最广泛使用的安全策略之一。

一般情况下,防盗链已经可以满足大部分场景的需要。但如果防盗链播放地址被泄露,并且这个播放地址还在有效时间之内,那这个地址依然可以播放,还是存在被盗播的风险。如果直播场景需要保证播放链接即使被泄露也能防止盗播,或者希望可以添加一些自定义的鉴权规则,实现类似筛选观众这样的功能,那推荐使用防盗链加token验证的方式来实现。这种方式在播放时,云端除了防盗链鉴权之外,还会向客户配置的token 验证服务发起校验,只有校验通过之后才允许播放。比如说我们要配置一个播放链接,一名用户只能播放一次。那就可以在自定义的token信息里带上用户的ID,然后在校验时增加“一名用户在一个播放链接只能播放一次”的策略,就可以实现。使用这样的方法,即使播放链接被泄露也能防止盗播。

本文福利, C++音视频学习资料包、技术视频,内容包括(音视频开发,面试题,FFmpeg webRTC rtmp hls rtsp ffplay srs↓↓↓↓↓↓见下面↓↓文章底部↓↓

以上的这几种方法,都是通过控制链接能不能被访问,能不能吐数据来保证直播安全。但是整个链路的数据传输仍然是明文的,在公网上传输依旧存在着被非法拷贝和传播的风险。

如果直播场景是内部会议等内容比较机密的场景,那就需要更加安全的方案。在这种场景下,推荐使用防盗链+token验证+hls:aes128加密的方案。这个方案在主播推流成功之后,云端会自动向业务的密钥管理系统KMS获取加密密钥,并使用加密密钥对音视频数据进行加密。播放时,播放端从云端的CDN获取到的是加密的音视频流,无法直接播放,需要终端向密钥管理系统申请解密密钥才可以播放。在这种情况下,即使有人可以成功拉到流,但由于无法获取到解密密钥,依然是无法播放直播内容的,这就进一步降低了直播内容被截取的风险。不过这种方式只支持HLS协议,而国内应用较多的FLV协议则无法使用。

如果直播场景需要使用FLV协议播放,那么推荐使用防盗链加自研DRM的方案。在推流成功后,云端会自动从KMS获取加密密钥,并通过密钥对FLV数据进行加密。与HLS加密方案相比,既通过加密的方式保证了安全性,又可以使用FLV协议来兼顾低延时。

通过防盗链以及在防盗链基础上的这些扩展方案。我们保证了直播流不会被轻易的盗链播放,通过对数据进行加密,保证了数据在传输过程中不会被轻易的盗取原始数据。但这样也并非完全安全。因为不管在链路上对数据进行何种保护,最终都要到用户的手机、电脑等终端上进行解密播放,实际上终端的播放过程也存在着安全风险。一般情况下,音视频的解密播放流程如上图所示。音视频数据在解封装之后需要使用解密Key进行解密,然后再对解密后的数据进行解码,变成音视频原始数据,经过音视频同步,最后进行渲染播放。在用户终端上进行播放的过程中,解密的原始Key、解码后的原始音视频数据都存在于用户终端的系统内存中,仍然存在通过调试工具、注入、逆向等方式,获取到原始加密密钥和音视频数据的风险,依旧存在安全隐患。

行业DRM方案解决了这个问题,其中应用比较广泛的是苹果公司的FairPlay方案和谷歌的WIDEVINE方案。其中苹果的FirePlay方案只能在苹果系统上使用,因此应用范围有局限。而WIDEVINE方案没有类似的限制,通过WIDEVINE方案加HLS协议,可以做到安卓、iOS和Web端的全覆盖,这一方案也是目前使用比较多的行业DRM方案。WIDEVINE方案的安全播放模型如上方中间图所示,播放的流程并非都在应用媒体播放器中完成。而是引入了一个新的模块CDM,通过CDM模块来完成生成播放请求、解密播放许可、解密数据等处理过程。CDM模块将所有涉及解密的操作都从应用播放器中剥离,保证解密数据都处在可控的环境中,这也是WIDEVINE方案安全播放的核心。根据CDM模块是否进行解密,解密是否需要TEE(硬件可信执行环境),可将WIDEVINE的安全级别划分为L1、L2和L3三个级别。其中L1级别的安全性最高,要求解密、解码、渲染均处在芯片的TEE中。L2级只需要解密在TEE中完成。L1、L2都需要硬件参与,因此要使用WIDEVINE方案认可的芯片,终端要求比较高。L3级别相对于L1和L2级别来说,安全性比较低。它的解密动作全部在CDM软件模块中完成。但这个方式不需要硬件支持,非常适合使用在浏览器等场景下。

通过对L1、L2、L3的介绍,我们也可以发现:安全性越高,对终端设备的要求也就越高,兼容性相对也就越差。如果需要播放有版权的内容或者是版权方有明确的DRM要求,那推荐使用防盗链加行业DRM的方案。DRM提供商可以根据配置给不同的终端分发包括不同播放时间、许可证有效期等要求的播放许可。行业DRM方案与其他方案相比,实现了硬件级、系统级的安全播放,拥有出色的安全性,但也存在着实施复杂、全流程黑盒较多、兼容性不佳等问题。因此一般只在明确有版权要求时,才建议使用

对比以上几种方案的安全性、实施复杂度,我们可以发现随着安全性的提升,实施的复杂度、成本也在增加。所以一味追求最高的安全性可能并不是最适合业务场景的方案。如果直播的场景需要较高的安全性,又不想做太多复杂的配置,那么最推荐使用的是播放防盗链加远程鉴权的方案。如果是应用在会议等场景,需要数据安全传输,那推荐使用HLS加密的方案。

与播放相比,推流链路更短,涉及到的主播数量跟观众相比也要少得多,如果需要跟播放一样自定义鉴权规则,推流也同样提供了推流鉴权加token验证的方式来支持这种场景

推流一般使用RTMP协议。因为音视频数据伪造起来 比较困难,所以RTMP协议便可以满足大部分推流安全需求。如果有非常敏感的直播,需要全链路的加密传输,也可以使用RTMPS协议进行推流。如果需要使用自定义域名,那也只需要提供对应的域名和证书。通过工单的方式提供到云服务器,配置完成后就可以使用了。

最后再简单介绍一下内容的安全。对直播平台来说,除了保证推流和播放安全外,内容合规也是直播平台能否稳定、持续运营的关键。随着业务发展,主播越来越多,通过人工扫描去判断直播间是否合规已无法满足直播平台发展的效率和成本需求。在这种场景下,推荐使用腾讯云直播的截图鉴黄功能来进行安全加固。在控制台上配置好截图鉴黄功能和相关的回调地址后,如果直播间存在违规风险,就会触发回调。业务方在收到回调后,可通过人工二次确认等方式辨别这个直播间是否真的违规,在确认违规后,可通过直播的禁推功能来及时封禁直播间,保证直播安全。

在现实的互联网中,没有百分之百安全的方案,也没有百分之百适用于所有场景的方案。我们需要根据业务的实际需求来选择合适的安全方案,保障直播业务的安全稳定可靠运行。

原文链接:直播安全体系、播放安全、推流安全以及内容安全方案分享 - 资料 - 我爱音视频网 - 构建全国最权威的音视频技术交流分享论坛

 本文福利, C++音视频学习资料包、技术视频,内容包括(音视频开发,面试题,FFmpeg webRTC rtmp hls rtsp ffplay srs↓↓↓↓↓↓见下面↓↓文章底部↓↓

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Linux计算机名自动变为bogon,修改计算机名

Linux计算机名自动变为bogon,修改计算机名 问题:这次机房停电,部分VM计算机名自动变为bogon,判断故障:因开启VM的时候,网卡需要获取DNS,但是DNS服务器还没有起来,故自动在resolv.con…

波动速读入门训练(含黄卡、曼陀螺使用方法)提供卡片

波动速读入门训练(含黄卡、曼陀螺使用方法)提供卡片 入门训练是进行波动速读的基础 在波动速读之前要进行入门训练,入门训练包括这样几项: 1、视觉训练; 2、ESP(超感觉能力)训练; 3…

【行为识别】基于matlab差影法三维人体姿态行为识别【含Matlab源码 277期】

⛄一、简介 该课题为基于MATLAB差影法的人体姿态识别。需要准备对应的模板图片作为背景图,然后测试图和背景图进行作差,结合形态学知识,提取出人体轮廓,接上最外接矩形,得出矩形长宽,计算长宽比例&#xf…

神经网络的三种训练方法,神经网络训练过程图解

如何训练神经网络 1、先别着急写代码训练神经网络前,别管代码,先从预处理数据集开始。我们先花几个小时的时间,了解数据的分布并找出其中的规律。 Andrej有一次在整理数据时发现了重复的样本,还有一次发现了图像和标签中的错误。…

手撕“汉诺塔算法”之详细图解

hello,你好呀,我是灰小猿,一个超会写bug的程序猿, 今天和大家分享一个递归经典算法案例---“汉诺塔”。 汉诺塔问题回顾 汉诺塔(Tower of Hanoi)源于印度传说中,大梵天创造世界时造了三根金钢石柱子,其中一…

图模型-随机游走算法

文章目录 推荐基本概念PageRankPersonalRankTextRankSimRank 推荐基本概念 其中用户user[A,B,C],物品item[a,b,c,d],用户和物品有以下的关系 上述便是一个典型的二分图,我们用G(V,E)来表示,其中V为用户user和物品item组成的顶点集即[A,B,C…

matlab 训练一个用于降维的暹罗网络(孪生网络)

原文:https://ww2.mathworks.cn/help/deeplearning/ug/train-a-siamese-network-for-dimensionality-reduction.html 这个例子展示了如何训练一个暹罗网络使用降维来比较手写数字。 暹罗网络是一种深度学习网络,它使用两个或多个具有相同架构和共享相同参…

运动规划RRT*算法图解

RRT*算法: 具体过程: 1. 产生一个随机点xrand。 2. 在树上找到与xrand最近的节点xnearest。 3. 连接xrand与xnearest。 4. 以xrand为中心,ri为半径,在树上搜索节点。 5. 找出潜在的父节点集合Xpotential_parent,其目的…

三分钟教会你汉诺塔图解

C语言实现汉诺塔 汉诺塔的实现主要分为3个步骤和一个出口条件 1、将n - 1个碟子从 x 经由 z 移动到 y 2、将第 n (x上的最大一个碟子) 个移动到 z 3、再将n - 1个碟子由 y 经过 x 移动到 z 4、递归出口n 1的时候 a -> c #define _CRT_SECURE_NO_WARNINGS #include<std…

python 画曼陀罗花_巧用Adobe Illustrator绘制精美的曼陀罗花

在本教程中我告诉你如何创建曼陀罗&#xff0c;在Adobe Illustrator看起来很复杂&#xff0c;但技术是真的很简单 软件名称&#xff1a;Adobe Illustrator CC(AI) 2016特别版 64位 简体中文完整版软件大小&#xff1a;1.67GB更新时间&#xff1a;2016-04-11立即下载 使一个新的…

深圳多九云优曼陀罗彩绘疗愈系统 ---- 化解潜意识冲突、领悟生命意义

曼陀罗是一种经典的艺术疗愈工具&#xff0c;著名心理学家荣格认为曼陀罗创作能使人更好地了解自我、回归自性&#xff0c;并自发地有一种心理疗愈的作用。 本系统取曼陀罗积聚福德、智慧圆满的艺术疗法&#xff0c;云配置免安装&#xff0c;在移动端、PC 端全网络彩绘及创意分…

当你灵感枯竭的时候,如何深挖客户需求?采用曼陀罗思考法(5W1H模式),相信你会找到出路

这六个路径其实就是英语当中所提到的六个常用问句 &#xff08;5W1H&#xff09;&#xff1a;What、Why、Who、Where、When、How。每一件事情或主题&#xff0c;如果都可以透过这六个路径&#xff0c;其实也就可以得到一个完整的景观 了。在六个路径与曼陀罗图的搭配操作上&…

Matlab.图像处理设计-曼陀罗图片绘制

Matlab.图像处理设计-曼陀罗图片绘制 【程序设计】 本次设计的内容是用Matlab.绘制曼陀罗图形&#xff0c;通过在Matlab.中对给定形状的图片进行移动、旋转和叠加等方式来实现。 设计中用到了二值化处理、图片移动处理、图片旋转处理、图片叠加处理、输出图像等五种图像处理方…

曼陀罗彩绘疗愈系统--艺术疗愈

曼陀罗是一种经典的艺术疗愈工具&#xff0c;著名心理学家荣格认为曼陀罗创作能使人更好地了解自我、回归自性&#xff0c;并自发地有一种心理治疗的作用。 本系统取曼陀罗积聚福德、智慧圆满的艺术疗法&#xff0c;云配置免安装&#xff0c;在移动端、PC 端全网络彩绘及创意分…

曼陀罗花对女性有什么作用?

如果您不是看完武侠片来提问的&#xff0c; 那我就给您介绍一下曼陀罗花是什么样子的&#xff0c; 曼陀罗在我们身边其实也是很常见的。公园里 或者谁家院子里&#xff0c;开花的时候跟个黄瓜挂在那树上差不多。 武侠片里说曼陀罗是剧毒&#xff0c;听起来也是如梦如幻的名字&…

Python+Selenium+Unittest 之selenium11--WebDriver操作方法1-常用操作

目录 1、send_keys("输入的内容") &#xff08;输入文字&#xff09; 2、clear() (清除元素内的内容) 3、click()&#xff08;点击元素&#xff09; 4、quit()关闭浏览器 5、refresh()&#xff08;刷新浏览器页面&#xff09; 6、set_window_size()和用 maxim…

美丽的曼陀罗曲线

最近看到一篇微信朋友圈上的文章&#xff0c;说两个行星运行轨迹的中心连线可以画出一个美丽的曼陀罗曲线&#xff0c;于是就写了一段代码生成这样的曲线&#xff0c;结果真是令人惊叹的美丽。 代码参见 &#xff1a; http://runjs.cn/detail/lbgqwfiu 或者 http://codepen…

波动速读入门训练(含黄卡、曼陀螺使用方法)

http://www.cnnlp.com/viewthread.php?tid5337&extrapage%3D1 波动速读入门训练&#xff08;含黄卡、曼陀螺使用方法&#xff09; 入门训练是进行波动速读的基础 在波动速读之前要进行入门训练,入门训练包括这样几项: 1.视觉训练 2.ESP(超感觉能力)训练 3.右脑记忆训…

思维导图 基础篇(06)思维方法-曼陀罗思考法

系列文章解读&说明&#xff1a; 本系列文章主要内容是 思维导图 基础课&#xff0c;旨在帮助更多 热爱学习的伙伴 更具体的了解思维导图&#xff0c;同时也会让 更多的伙伴从 思维导图 认知 误区中走出。 系列文章总纲链接为&#xff1a;专题总纲目录&#xff08;01&…

曼陀罗思考法

一 曼陀罗思考法的意义 曼陀罗艺术原本起源于佛教&#xff0c;被今泉浩晃先生加以系统化利用之后&#xff0c;却成为绝佳的计划工具。曼陀罗生活笔记最终目的是将「知识」转变为实践的「智慧」。按照此方法制作备忘录&#xff0c;应付学业与工作上各项疑惑&#xff0c;灵感将不…