阿里云CDN和视频云产品广泛应用于直播安全场景。阿里巴巴集团淘宝和优酷业务的直播,正是基于这些产品的底层能力。建立了强大的直播保障体系。这种基于阿里巴巴集团自身业务实践的架构设计,也被众多云客户采用。在本文中,阿里云产品架构师小刘将与大家分享这些架构实践背后的一些思考,希望对正在寻找稳定、高效、经济的直播安全系统的开发者有所帮助。分享主要分为三个部分:一是对系统架构进行整体介绍,首先了解系统架构的全貌。然后,对架构的核心内容进行拆解,并进行详细解读。最后,讨论了这种架构的优点。总体体系架构2020年11月4日,国家互联网信息办公室正式发布《互联网直播服务管理规定》,规范互联网直播服务提供者、互联网直播发布者和用户的相关行为,限制部分违法直播行为。新规要求:互联网直播服务必须“先审核、后发布、即封禁”。该规定将于2020年12月1日起实施。下图的架构设计涵盖了直播内容生成、存储、消费的全生命周期。每个阶段都有相应的措施,通过“防、控、堵、堵”等多种方式保障直播安全。第一个橙色部分是内容生产安全模块。该模块主要是对内容生产者进行鉴权,保证内容生产者的合法性,尽可能从源头上避免非法发布者生产非法内容。是直播安全的第一道防线。第二块是审计控制模块,对应架构图中黄色部分。该模块是整个直播安全体系的核心。该模块主要对制作后的内容进行检查和审核,控制违规内容的播放。第三块是播放安全模块,对应架构图中淡蓝色部分。该模块主要是验证观众身份,确保直播内容不被他人利用,保证内容安全。同时有效解决盗链问题,保障资产安全,避免资产流失。以上三个模块是传统直播安全系统的必备模块,主要解决内容的安全问题,满足《互联网直播服务管理规定》先审核后立即屏蔽的要求。我们在实际业务运维中发现,直播基础设施与直播的质量和稳定性息息相关,基础设施的安全性也非常重要。因此,我们也将架构安全纳入到直播安全体系中。图中黄金部分是架构安全模块,里面有一些特别的设计,后面会讲到。各模块详解1.内容生产安全我们知道,直播是互联网上一种实时、互动的内容传播形式。不同于文字、图片、视频等传统传播形式,直播与用户和直播内容紧密互动,用户本身也是内容生产的一部分。因此,需要对生产内容的用户进行严格控制和有效认证。验证身份,最有效的手段就是身份验证。验证的方式有很多种。通常通过时间戳来控制有效期,通过加密算法验证身份的合法性。传统的解决方案是:用户与平台协商一个密钥,将用户推送的url、时间戳、密钥等信息组成一串信息,按照约定的算法将该字符串转换为相应的认证信息;发送到CDN节点后,CDN会进行比对;如果时间戳在约定范围内且认证值正确,则服务正常;否则,它将被拒绝。在该方案中,密钥需要部署到CDN。这样,除了内部平台外,还存在认证密钥泄露的额外风险。因此,在我们设计的方案中,推荐对内容安全有要求的用户使用远程认证。我们来看上面的架构图。在远程认证方案中,当用户发送推流地址时,会将根据加密规则生成的url发送给推流端。推流端向CDN节点请求。当CDN节点收到推流请求后,根据协议,通过http等方式,将相关的认证信息,如:url参数、UA、ClientIp等透传给用户自己的Remote认证服务器。认证服务根据透传的信息进行合法性验证,并将认证结果响应给CDN节点。CDN节点根据回调的结果进行处理。当然,远程认证可以与传统的本地认证结合使用。首先在本地进行一层判断,然后进行远程认证。这种方式可以有效解决推流密钥泄露导致的欺诈推送,同时防止大量非法推流请求被透传到远程认证服务器,造成服务器炸毁。2、审核管控安全近年来,由于视频业务的爆发,对视频监管审核提出了更高的要求,视频直播的识别审核规范也不得不升级。审计规范的升级往往意味着技术难度和成本的增加。如何在满足业务需求的同时,选择成本最优的智能审核方案,是每个直播平台面临的难题。一般情况下需要严格审核,每隔1s使用非关键帧截图是比较稳妥的做法。但是对于非关键帧截图,截图服务的机器开销会比较大,即客户的成本会比较高。如果是大平台,流的数量非常多,非关键帧全截图成本会非常高。因此,考虑采用差异化的截图策略,实现成本与收益的平衡,以期通过技术手段避免成本的浪费,同时最大限度的做到不遗漏的识别。比如:核心大主播,这类主播数量不多,但重要性高,容易被跟踪和攻击。非关键帧截图;敏感、高危类使用非关键帧截图;游戏直播和赛事直播使用关键帧截图。这里所说的非关键帧截图是指强制1s截图;关键帧截图以用户推送的gop为准,每个gop截图。先看整体架构设计:平台主播推流到阿里云CDN;阿里云CDN,接收流后回调客户截图决策服务;客户截屏决策服务,根据历史主播评分和主播分类(如高危、疑似、普通等)决策流程截屏策略,并确定截屏周期频率,发送至阿里云截屏服务;阿里云截图服务,根据决策回调,对流程进行截图;会根据码流的属性分析进行自动决策(比如码流第一次进入系统时,截取安全的非关键帧截图,后续分析找到视频流的关键帧,当满足关键帧截图条件,切换到关键帧截图)。客服审核服务实时拉取审核阿里云截图,然后根据审核结果实时处理。如果是高危,调用阿里云推流封禁接口,实时封禁主播推流,同时更新截屏决策服务,标记主播违规标志,方便后续截屏决策。如有疑似,将更新截图决定服务,对主机打上疑似违规标记,并调整截图政策;如果是普通的,就不会处理。截图审核目前也有很多基于AI的智能审核能力,可以大大节省人工审核的成本。阿里云也有相应的产品可以集成。除了截图审核外,通过标准的录制服务,对直播内容进行录制和存储。结合截图审核,可进行人工二次审核和审核确认。审核结果可以同步到决策服务进行政策干预和更新。3.播出安全内容生产安全和内容审计控制是从内容生成和管理的角度解决安全问题。这两者是直播内容安全的基础。但是,在一些错误会产生巨大影响的场景下,需要更严格的控制措施。这就需要我们在播放端有一些安全措施来保护它。比如一些敏感内容或者大型活动的直播,这类内容关注度很高,一旦内容审核失误,哪怕只是一帧画面,也会对舆论产生巨大的影响并造成广播事故。对于这种场景,建议使用阿里云直播产品的延时播放能力,留出足够的时间进行逐帧审核确认,确保直播安全。延时播放不适用于一些日常需要保证时效性的场景。因此,延迟播放的能力需要能够细化直播流粒度的管理。当然也有一些业务场景,比如有的用户需要实时,有的用户需要延时,也可以通过延时播放来满足。游戏安全还需要能够通过技术手段避免资产损失。资金流失有两种,一种是盗链,即非法用户通过非法手段播放内容。盗链往往会导致直播内容泄露,影响正常业务,大大降低平台耗费大量资源制作的内容价值。更要命的是,盗链产生的流量费用往往需要平台承担。对于盗链,主要的控制措施是认证。基础认证,如ua、referer、timestamp、md5等,可以解决部分盗链问题,但是盗链和防盗链同安全攻防一样,来来去去,需要不断更新或升级.为了有效遏制盗链。所以我们推荐使用远程认证来防盗链。pullflow的远程认证与pushflow的远程认证类似,这里不再展开。无论是基础认证还是远程认证,都是在拉流接入时验证身份,无法做到万无一失。DRM是另一种更高级别的防盗链技术。该技术主要是对视频帧进行逐帧加密,然后在播放端进行解密。DRM的防盗链效果较好,但对视频处理的技术能力要求比较强。另一种资源丢失是对未播出的内容进行错误的资源位置推荐,影响用户体验,造成推荐资源的浪费。这类问题主要是由于对人气主播的直播状态管理不准确造成的。我们推荐的方法是将直播服务与真正的CDN推流结合起来,通过CDN下播回调确认直播是否下线。对于CDN关播,但直播间未关闭,直播将被关闭。相关逻辑。方法是当用户的直播管控中心收到业务停播信息后,会查询CDN的停播信息,如果CDN显示流还在线,则调用阿里云的拦截服务进行停播溪流。另外,直播管控中心会定时从CDN同步流的在线状态。对于已经不在线,但业务已关闭但仍在线显示直播的直播,如果超过预定时间,直播间的相关逻辑将被关闭。为了确认流状态更新的安全性,避免接口泄露和有心人利用,我们也推荐使用回调进行鉴权。只有通过身份验证回调才能接受和更新。4.架构安全以上三点内容从全链路保障了直播内容的安全,但是在日常运维中,还是有稳定性的要求。只有建立在稳定、有质量保障的直播平台上的直播内容安全措施才有意义。同时,在一些场景下,比如大型活动、高关注度、流量高峰的影响等,对稳定性有更高的要求。没有有效的架构支撑,一旦出现一点小问题,往往会引发事件事故。我们将源自此类场景的要求纳入架构安全性。架构安全的本质是保证日常运营和大型活动的稳定性,尤其是在大型活动期间,要能够承受流量高峰,并且在发生故障时具有快速调整和恢复的能力.技术上主要靠全链路容灾。首先是传输链路容灾:CDN直播的推拉流是多层结构,CDN内部传输具备故障自动切换能力。当检测到某条传输链路出现问题时,会自动切换到另一条链路并生效时间以秒为单位。二是多中心容灾。在阿里云的架构中,直播中心是所有直播视频处理的枢纽。一旦中心出现问题,整个直播都会受到很大的影响。阿里云的直播中心本身就是一个高可用的架构,基本可以满足日常的稳定性需求。在高可用架构的基础上,采用多中心融灾方案,解决单个直播中心故障导致的大范围直播中断问题。需要注意的是,多中心容灾成本较高,建议在大型活动等特殊场景启用。除了上述传输层面的全链路容灾外,我们还推荐采用主备融合的模式来保证架构的安全性。方法是将传输和救灾向下延伸到流媒体端。推流方将来自不同地区或运营商的多路推流推送到CDN。CDN在直播中心将它们合并,并选择其中一个进行对外分发。当出现异常时,可以秒级切换到另一个流,让用户不会察觉到切换。架构优势上面已经详细介绍了整个系统的架构,那么为什么要采用这样的架构呢?这样的结构有什么好处呢?我们来看一下:首先,从前面的介绍可以看出,整个架构的每一层都具有很强的认证能力。我们推荐的远程认证优势特别明显,因为密钥由直播业务方自己保管,不需要部署到第三方商业CDN,认证算法也不需要同步到第三方,减少暴露的风险。远程认证可以根据业务情况及时调整,具有更好的灵活性。推流和播放也可以实现不同的策略,例如:推流同步鉴权,保证核心内容安全;播放异步鉴权,保证数据安全的同时不影响播放秒数;keystreaming,authenticationservices可自行设置特殊策略,提供多重保障。此外,阿里云直播CDN产品具备业界领先的边缘编程能力。基于此能力,可以快速实现认证定制。其次,我们推荐的审计控制结构是一种经济高效的解决方案。通过这个框架,可以实现成本和收益之间的平衡。控制的程度可以细化到具体的流程,非常精细化。当出现异常时,可以秒级屏蔽直播信号,风控可以说是非常及时和即时。截图审查、录音审查、延迟播放等审查控制机制,层层筛选管控,让违法内容无处遁形。最后,我们提供的整个直播基础设施具备全链路容灾能力,容灾能力强。阿里云边缘云拥有国内领先的CDN能力,多年经受双11、世界杯等大型赛事的洗礼,具有丰富的大流量突发处理经验。完善的内部监控可以在故障发生前提前排除隐患,秒级生效的故障转移能力让听众无动于衷。基础设施稳定,流量高峰来临时,快速补充更多弹性资源。阿里云的资源储备在业界名列前茅,快速的资源构建能力可以从容应对任何流量高峰。
