互联网泛娱乐直播安全的解决之道

简介: 阿里云的CDN和视频云产品在直播安全场景下有广泛的应用,阿里巴巴集团的淘宝、优酷等业务的直播正是基于这些产品底层能力,构建了强大的直播安全体系。这个基于阿里巴巴集团自身业务实践打磨出来的架构设计,也被众多上云客户所采用。本篇文章,阿里云产品架构师小流将与大家分享这些架构实践背后的一些思考,希望对在寻找稳定、高效、经济的直播安全体系的开发者有所帮助。

阿里云的CDN和视频云产品在直播安全场景下有广泛的应用,阿里巴巴集团的淘宝、优酷等业务的直播正是基于这些产品底层能力,构建了强大的直播安全体系。这个基于阿里巴巴集团自身业务实践打磨出来的架构设计,也被众多上云客户所采用。本篇文章,阿里云产品架构师小流将与大家分享这些架构实践背后的一些思考,希望对在寻找稳定、高效、经济的直播安全体系的开发者有所帮助。

分享主要分三块:
首先,对系统架构做一个整体介绍,先了解系统架构的全貌。
然后,把架构中的核心内容拆解出来,进行详细的解读。
最后,探讨这个架构的优势。

整体系统架构

2020年11月4日,国家网信办正式发布《互联网直播服务管理规定》,对互联网直播服务提供者、互联网直播发布者和用户的相关行为作出规范,对一些不合法的直播行为做出了约束。新规要求:互联网直播服务,要“先审后发、即时阻断”。该规定自2020年12月1日起施行。下图的架构设计,囊括了直播内容的产生、存储和消费的整个生命周期,每个阶段都有相应的措施,通过“防、控、封、堵”等多种方式,来确保直播安全。

屏幕快照 2021-03-18 下午3.21.46.png

第1块橙色部分是内容生产安全模块。这个模块主要是对内容生产者进行身份验证,以确保内容生产者的合法性,尽可能从源头上规避非法发布者产生非法内容。是直播安全的第一道防线。
第2块是审核及管控模块,对应架构图中的黄色部分。这个模块是整个直播安全体系的核心,这个模块主要对内容生产后进行检查审核,并对非法内容的播放进行管控。
第3块是播放安全模块,对应架构图中浅蓝色部分。这个模块主要是对观众身份进行验证,以确保直播内容不被别人所用,保障内容的安全性,同时,有效解决盗链问题,确保资产安全,避免资损。
上面3个模块是传统直播安全体系必备的模块,主要解决内容的安全问题,契合了《互联网直播服务管理规定》中先审后发、即时阻断的要求。我们在实际的业务运维中发现,直播基础架构与直播的质量和稳定性息息相关,基础架构的安全也至关重要。因此,我们把架构安全也纳入直播安全体系里面来。图中金色部分是架构安全模块,在这里面有一些特殊的设计,我们后面会讲到。

各个模块详细解读

一、内容生产安全

我们知道,直播是一种实时性、互动性显著的互联网传播内容的形式。不同于传统的文字、图片、视频等传播形式,直播紧密的将用户与直播内容交互在一起,用户本身也是内容生产的一份子。因此,很有必要对生产内容的用户进行严格管控,进行有效的身份验证。要对身份进行验证,最有效的手段就是进行鉴权。
鉴权有多种方式。通常是通过时间戳管控有效期,通过加密算法验证身份合法性。传统方案的做法是:用户与平台协商一个密钥,将用户推流的url、时间戳、密钥等信息构成一个字符串,按照约定的算法将字符串转化成相应的鉴权信息;相关信息发送到CDN节点后,由CDN进行比对;如果时间戳在约定范围内,且鉴权值正确,则正常服务;反之,则拒绝。这种方案,需要把密钥部署到CDN。这样,除了平台内部以外,多了一个鉴权key泄露的风险。所以,在我们设计的方案里,我们推荐对内容安全有要求的用户,使用远程鉴权。

屏幕快照 2021-03-18 下午3.37.17.png

我们看上边这个架构图。远程鉴权的方案里,用户在下发推流地址时,将按照加密规则生成的url下发到推流端。推流端请求到CDN节点,CDN节点在收到推流请求时,根据约定,通过http等方式将相关的鉴权信息,比如:url参数、UA、ClientIp等等,透传给用户自有的远程鉴权服务器。鉴权服务根据透传的信息,验证合法性,并响应鉴权结果给到CDN节点。CDN节点,根据回调的结果,进行处理。

当然,远程鉴权可以与传统的本地鉴权组合使用,先在本地做一层判断,再进行远程鉴权。这种做法,可有效解决推流key泄露导致的盗推,同时避免大量非法推流请求透传至远程鉴权服务器,将服务器打爆。

二、审核及管控安全

近些年来,由于视频业务爆发,对视频监管及审核提出了更高的要求,视频直播的识别及审核规格要升级。审核规格的升级,往往意味着技术难度和成本的增加。如何在满足业务需求的情况下,选择成本最优的智能审核方案,是每个直播平台面对的难题。一般情况,要做严格的审核,采用1s一张的非关键帧的截图,是一个比较稳妥的做法。但非关键帧的截图,对截图服务的机器开销会比较大,即客户的使用成本会比较高。如果是大平台,流的数量非常大,全量走非关键帧截图,成本开销会非常大。因此,考虑采用差异化的截图策略,在成本和收益上,做到一个平衡,以期通过技术手段,在避免成本的浪费的同时,最大程度上做到识别不遗漏。比如:核心大主播,这类主播数量少,但重要性高,容易被人关注及攻击,走非关键帧截图;敏感高危类目走非关键帧截图;游戏直播和赛事直播走关键帧截图。这里说的非关键帧截图,是指强制1s一张截图;关键帧截图,是根据用户推流的gop,每个gop截一张。

屏幕快照 2021-03-18 下午3.37.25.png

我们来看整体的架构设计:平台主播推流到阿里云CDN;阿里云CDN,在收流后,回调客户截图决策服务;客户截图决策服务,基于历史主播评分、主播分类(比如高危、疑似、普通等)决策流的截图策略,并确定截图周期频率,下发到阿里云截图服务;阿里云截图服务,根据决策回调,对流进行截图;对于客户截图决策服务无法决策的流,阿里云截图服务会根据流的属性分析来自动决策(比如:在流刚入系统时,进行安全的非关键帧截图,后续解析发现视频流的关键帧,符合关键帧截图条件时,切换到关键帧截图)。客户审核服务实时拉取阿里云截图并审核,然后根据审核结果,实时进行处理。如果是高危的,调用阿里云流封禁接口,实时封禁主播推流,同时更新截图决策服务,标注主播违规标识,便于后续的截图决策。疑似的,更新截图决策服务,标注主播疑似违规标识,调整截图策略;普通的,则不做处理。

截图审核目前也有很多基于AI的智能审核能力,可以大量节省人工审核的成本。阿里云也有相应的产品,可以做集成。

除了截图审核外,通过标准的录制服务,录制直播内容,并进行存储,结合截图审核,可以进行人工的二次审核及审核确认,审核结果,可以同步到决策服务,进行策略的干预和更新。

三、播放安全

内容生产安全和内容审核管控是从内容的产生和管理角度去解决安全问题,这两个是直播内容安全的基础。但是在一些一旦犯错就会产生巨大影响的场景下,需要有更严格的管控措施。这就要求我们在播放侧,也需要有一些安全措施来加以保障。比如一些敏感内容或者大型活动的直播,这类内容的关注度超高,一旦内容审核有所遗漏,哪怕只是一帧画面,也会产生巨大的舆论影响,造成播出事故。对于这种场景,推荐使用阿里云直播产品延迟播放的能力,给审核以足够的时间进行逐帧确认,确保播出安全。延迟播放在日常一些需要确保时效性的场景下是不适用的,因而延迟播放的能力需要能细化到对直播流粒度的管理。当然,有一些业务场景,比如部分用户需要实时,而部分用户需要延迟,也可以采用延迟播放来满足。

屏幕快照 2021-03-18 下午3.37.58.png

播放安全还需要具备通过技术手段避免资损产生的能力。资损有两类,一类是盗链,即非法用户通过非法途径播放内容。盗链往往会造成直播内容泄密,导致正常业务受到影响,使得平台花费大量资源制造的内容产生的价值大打折扣。更可恶的是,盗链产生的流量费用,往往还需要平台承担。对于盗链,主要的管控措施,就是进行鉴权。基础的鉴权,比如ua、referer、时间戳、md5等能解决掉一部分盗链问题,但是盗链和防盗链跟安全的攻防一样,有来有往,需要不断的更新或者升级防盗链能力,才能有效的遏制盗链。因此,我们比较推荐采用远程鉴权的方式来做防盗链。拉流的远程鉴权和推流的远程鉴权类似,这里就不再展开了。无论是基础鉴权还是远程鉴权,都是在拉流接入时候验证身份,并不能做到万无一失。DRM是另一种更高阶的防盗链技术,这种技术主要是对视频帧逐帧加密,在播放端再解密。DRM的防盗链效果更好,但需要有比较强的视频处理的技术能力。

另一类资损,是对不在播的内容做了错误的资源位推荐,影响用户体验,造成推荐资源的浪费。这类问题,主要是对热门主播的直播状态管理不准确造成的。我们推荐的做法是将直播的业务下播和真正的CDN下播结合起来,通过CDN的关播回调,来确认是否直播下播,对于CDN已下播,但直播间未关闭的,则关闭直播间的相关逻辑。其做法是,当用户的直播管控中心收到业务关播信息,则查询CDN的关播信息,若CDN显示流还在线,则调用阿里云封禁服务,进行断流。另外,直播管控中心定时从CDN同步流在线状态,对于流已不在线,但业务关播仍显示在线的,超出预定时间的,则关闭直播间相关逻辑。为了确认流状态更新的安全,避免接口泄露,被有心人利用,我们也建议回调做鉴权,只有通过鉴权的回调,才能采信,接受更新。

四、架构安全

上面三块内容,从全链路上都保证了直播内容的安全,但在日常运维中,还有稳定性的要求。只有在稳定有质量保证的直播平台上构建的直播内容安全措施,才是有意义的。同时,在有些场景下,比如大型活动,超高的关注度,流量洪峰的冲击,对稳定性有更高的要求。没有一个有效的架构来支撑,一旦有点风吹草动,往往会造成活动事故。我们把这类场景衍生出来的需求,纳入到架构安全里面来。架构安全,本质是要保证日常运营和大型活动的推播稳定,尤其是在大型活动时,能够承受住流量洪峰,在故障时,有快速调整和恢复的能力。

屏幕快照 2021-03-18 下午3.41.57.png

在技术上,主要依赖全链路灾备来实现。首先是传输链路容灾:CDN直播的推拉流是多层架构,CDN内部传输具备故障自动切换的能力,当检测到某条传输链路有问题时,自动切换到另外的链路上,生效时间秒级。其次是多中心容灾,阿里云的架构里,直播中心是所有处理直播视频的枢纽,一旦中心出现问题,整个直播将受到巨大的影响。阿里云的直播中心本身是高可用架构,基本上可以满足日常的稳定性要求。在高可用架构的基础上,采用多中心融灾的方案,解决单一直播中心故障造成大面积直播中断的问题。需要说明的是,多中心容灾的成本较大,建议在大型活动等特殊场景下再启用。

除了上述传输层面的全链路容灾,我们还推荐采用主备合流的方式,来确保架构安全。其做法是,将传输融灾向下延伸至推流端,推流方从不同区域或运营商推多路流至CDN,CDN在直播中心进行合流,选择其中一路对外分发,当该路流出现异常时,可秒级切换至另一路流,这样可以做到用户切换无感知。

架构的优势

上面详细介绍了整体的系统架构,那么为什么要用这样的架构?这样的架构有什么优势呢?我们来看:

首先,从前面的介绍可以看到,整个架构的每一层,都有强大的鉴权能力。我们推荐的远程鉴权,优点尤其明显,因为key是直播业务方自己保管的,不需要给第三方商业CDN部署,鉴权算法也不需要同步给第三方,减少了暴露的风险。远程鉴权可以根据业务情况及时调整,有更好的灵活性。也可以针对推流和播放,实现不同的策略,比如:推流用同步鉴权,保证核心内容安全;播放用异步鉴权,保证数据安全的同时,不影响播放秒开;重点流,鉴权服务可以自助设置特殊策略,多重保障。另外,阿里云直播CDN产品,具有业界领先的边缘编程能力,基于该能力,可以快速实现鉴权的自定义。

其次,我们推荐的审核管控架构,是经济且高效的方案。通过这个架构,可以做到成本与收益的平衡。管控粒度可以到具体的流,非常的精细化。当出现异常时,可以秒级对直播信号进行阻断,风险控制可以说是非常及时、立竿见影。截图审核、录制审核和延迟播放等多种审核管控机制,逐层的筛选和控制,让非法内容无处藏身。

最后,我们提供的整个直播基础架构,具备全链路的灾备能力,容灾能力强。阿里云边缘云具备国内领先的CDN能力,经受了多年双11、世界杯等大型活动的洗礼,在应对大流量突发上有丰富的经验。完善的内部监控,可以在故障发生前提前排除隐患,秒级生效的故障切换能力,可以做到观众无感。基础架构稳定了,在流量洪峰来临时,更多是弹性资源的快速补充,阿里云的资源储备在业界是数一数二的,快速的资源建设能力,可以从容应对任何的流量洪峰。

原文链接

本文为阿里云原创内容,未经允许不得转载。

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

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

相关文章

wps office2019PC版和Mac版_学用系列WPS教育版的“十八般武艺”

相信不少朋友都在使用wps进行办公学习,但相信不少教师学生肯定不知道其实WPS还很用心提供教育版,里面有不少实用且好用的学习工具可以让我们的学习如虎添翼。今天胖胖老师就为大家介绍一下新版本WPS教育版的“十八般武艺”,欢迎大家一起来尝鲜…

只因“薪水过高”!被欠薪三个月后遭解雇,程序员删库反击

译者 | 弯月 责编 | 王晓曼出品 | 程序人生 (ID:coder _life)非技术出身的公司创始人往往并不了解开发人员的价值。如果他们的产品是科技产品,那么开发人员就是公司的燃料。我从一位同事那里听到了这个故事。故事的主人公叫做小…

linux模拟内存数据落盘,Linux:保证数据安全落盘

背景在很多IO场景中,我们经常需要确保数据已经安全的写到磁盘上,以便在系统宕机重启之后还能读到这些数据。但是我们都知道,linux系统的IO路径还是很复杂的,分为很多层,每一层都可能会有buffer来加速IO读写。同时&…

阿里云高级技术专家周哲:阿里云边缘云原生应用实践

简介: 为什么需要边缘云原生?边缘云原生的技术特性和优势是什么?它可以为行业提供哪些关键能力?又有哪些场景适合边缘云原生呢?在MEC全球应用开发者大会的“MEC开放论坛”上,阿里云高级技术专家周哲进行了《…

dataframe 如何选中某列的一行_PySpark和SparkSQL基础:如何利用Python编程执行Spark(附代码)

作者:Pinar Ersoy翻译:孙韬淳校对:陈振东本文约2500字,建议阅读10分钟本文通过介绍Apache Spark在Python中的应用来讲解如何利用PySpark包执行常用函数来进行数据处理工作。Apache Spark是一个对开发者提供完备的库和API的集群计算…

重磅官宣:Nacos2.0 发布,性能提升 10 倍

简介: 继 Nacos 1.0 发布以来,Nacos 迅速被成千上万家企业采用,并构建起强大的生态。但是随着用户深入使用,逐渐暴露一些性能问题,因此我们启动了 Nacos 2.0 的隔代产品设计,时隔半年我们终于将其全部实现&…

deepin linux 2014 硬盘安装教程,Linux Deepin的硬盘安装

于是装了,问题来了,即使执行了sudo umount -l /cdrom,也不能直接把原来的个人文件分区挂成/home,因为liveCD的内容还放在这个上面(想不通,我只是挂载,又不格式化,怎么就行了?新氧好像…

一站式云原生智能告警运维平台——SLS新版告警发布!

简介: 本文介绍什么是云原生可观测性需求以及告警限制,介绍一站式云原生智能告警运维平台——SLS新版告警。 前言 本篇是SLS新版告警系列宣传与培训的第一篇,后续我们会推出20系列直播与实战培训视频,敬请关注。 系列目录&#…

ansible 修改文件变量_基于ansible的批量配置生成

背景网络运维,我们有很多时间是在准备配置的路上,咱们之前也讲过,从脑海中或者是从自己的宝藏笔记中找出模板,一顿操作猛如虎,Ctrl C Ctrl V。这个过程是十分危险的,因为人不是机器,肯定会出错&…

Fluid — 云原生环境下的高效“数据物流系统”

简介: 为了解决大数据、AI 等数据密集型应用在云原生计算存储分离场景下,存在的数据访问延时高、联合分析难、多维管理杂等痛点问题,南京大学 PASALab、阿里巴巴、Alluxio 在 2020 年 9 月份联合发起了开源项目 Fluid。Fluid 本质上是一个云原…

普通大学生的 Java 开发能力到什么水平才能进大厂?

对于刚开始接触编程的同学来说,选择一门合适的编程语言非常重要。Java一直以来都是被广泛使用的语言,其服务端开发占比90%,83次在TIOBE排行第一,是很多程序员的首选语言。在发展前景方面,Java的就业范围很广&#xff0…

delphi7 如何判定dbgrid两行重复_教你如何在服装上加入好看的毛线刺绣花边

有时候一件旧衣服我们给它添加一些新的元素,会产生意外惊喜的效果。今天,我们就来学学如何用毛线在衣服上刺绣花边,让衣服变得更加漂亮的方法吧!在本教程中,我们使用了一些零头羊毛线,11号木针和用于刺绣的…

阿里的 RocketMQ 如何让双十一峰值之下 0 故障?

简介: 2020 年双十一交易峰值达到 58.3 W 笔/秒,消息中间件 RocketMQ 继续数年 0 故障丝般顺滑地完美支持了整个集团大促的各类业务平稳。 作者 | 愈安 来源 | 阿里巴巴云原生公众号 2020 年双十一交易峰值达到 58.3 W 笔/秒,消息中间件 Roc…

英特尔携手谷歌云加速最新虚拟机;谷歌云平台下调抽成比例;Hitachi Vantara推出全新云成本优化服务...

NEWS新闻回顾GitLab 将上市随着收入持续增长和亏损扩大,DevOps 宠儿 GitLab 终于申请了首次公开募股 (IPO)。GitLab 一直致力于成为开发人员的一站式商店,与 GitHub(2018 年被微软以 75 亿美元高价收购)和其他 DevOps 公司竞争。在…

eq linux_音乐家和音乐爱好者的开放硬件 | Linux 中国

从 3D 打印乐器到无线播放声音的设备,有很多通过开放硬件项目来奏乐的方法。-- Michael Weinberg这个世界到处都是很棒的开源音乐播放器,但为什么只是将开源用在播放音乐上呢?你还可以使用开源硬件奏乐。本文中描述的所有工具都是经过了开源硬…

“匿名句柄” 是一切皆文件背后功臣……

作者 | 奇伢 来源 | 奇伢云存储匿名 fd 的样子?我们经常在 /proc/${pid}/fd/ 下面能看到 anon_inode : 前缀的句柄,如下:rootubuntu:~/temp# ll /proc/5398/fdlr-x- 1 x x 64 Aug 4 9:9 8 -> anon_inode:inotify lrwx- 1 x x 64 Aug …

Flink集成Iceberg在同程艺龙的实践

简介: 本文由同城艺龙大数据开发工程师张军分享,主要介绍同城艺龙 Flink 集成 Iceberg 的生产实践。 本文由同城艺龙大数据开发工程师张军分享,主要介绍同城艺龙 Flink 集成 Iiceberg 的生产实践。内容包括: 背景及痛点Flink Ice…

阿里巴巴开源容器镜像加速技术

简介: 近日阿里巴巴开源了其云原生容器镜像加速技术,其推出的overlaybd镜像格式,相比于传统的分层tar包文件格式,实现了基于网络的按需读取,从而使得容器可以快速启动。 近日阿里巴巴开源了其云原生容器镜像加速技术&…

Unity重写Inspector简化分组配置文件

Unity重写Inspector简化分组配置文件 重写Inspector创建分组管理配置文件创建修改参数参数对应类工程在我的资源中名为CreateConfig,免费下载 重写Inspector创建分组管理配置文件 创建 修改参数 参数对应类 using UnityEngine;public class GameConfig : Scriptab…

985大学的高材生只会写代码片段,丢人吗?

很多同学在学习编程的时候都会遇到各种各样的难题,比如:没有合适的资料、学习过于碎片化、资料的质量层次不齐、看了很多视频自己动手时却还是不会、接触不到完整项目、无法检测自己的编程水平是不是企业所认可的……最近,小郭和小解同学也遇…