前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【云+社区年度征文】云直播:你该如何关闭直播推流鉴权

【云+社区年度征文】云直播:你该如何关闭直播推流鉴权

原创
作者头像
bellchen
修改2020-12-13 02:09:58
3K0
修改2020-12-13 02:09:58
举报

导读:

使用腾讯云直播时,每次推流都需要生成推流地址,这么做虽然很安全,但不是很便利,关闭直播鉴权的话,又容易被盗用,产生高额的费用,而且还可能被盗用于违法违规活动,本文将从腾讯云提供的各种技术手段,分享实际运营过程中如何兼顾安全和便利;

近期收到腾讯云的告警通知,内容如下:

温馨的告警通知
温馨的告警通知

领导凌晨3点才看到这通知,表示很慌,给我发微信,我没有回,他觉得完了,我“死”了,然后他大概给我打了20多个电话吧,终于在他决定报警之前,把我给叫醒了,开口第一句话居然是“大半夜的,你怎么还睡觉了呢”

这个段子出自李雪琴
这个段子出自李雪琴

我觉得不行,这日子不能这么过了,第二天我就好好折腾一番腾讯云直播,居然发现有好多好用的东西;

名词解读

腾讯云直播:https://cloud.tencent.com/document/product/267

鉴权:指云服务商针对客户的签名内容进行解密,验证内容合法性,对于无法解密或者内容不合法的请求拒绝服务,以此来确保合法客户的得到相应的服务。

什么是直播推流鉴权

安全防盗链是指推流和播放 URL 中的 txSecret 字段,它的作用是防止攻击者伪造您的后台生成推流 URL 或者非法盗取您的播放地址进行谋利。

上面文字内容引用自腾讯云直播文档 云直播防盗链的计算

符合腾讯云标准的推流 URL,它由下面四个部分组成:

直播推流URL组成部分
直播推流URL组成部分

腾讯云通过推流URL中的txSecret来校验推流客户端是否取得业务服务器的授权,通过txTime字段来判断该授权是否过期;

授权参数txSecret 的生成方法是 = MD5(KEY + StreamName + txTime)这里的key则是在腾讯云直播控制台域名管理中配置的推流防盗链Key

1、进入云直播域名管理 ,选择其中一个推流域名

2、切换到推流配置tab,即可看到鉴权配置

如果推流鉴权处于关闭状态,则每次推流时,推流URL不需要携带txTime和txSecret参数即可,如下:

代码语言:javascript
复制
rtmp://livepush.tcloud.com/live/anystreamid

如果在知晓播放域名的情况下,攻击者可通过任意直播流ID往我的腾讯云账号写入直播流,然后通过播放域名拼接出播放地址,实现在未拿到我授权的情况下的推流和播放:

1、通过注册我的app账号,抓包拿到推流域名 livepush.tcloud.com 和播放域名 liveplay.tcloud.com;

2、攻击者拼接推流地址 rtmp://livepush.tcloud.com/live/pornstream 并推了一些违法违规内容;

3、攻击者拼接播放地址 http://liveplay.tcloud.com/live/pornstream 并且在攻击者的app上使用;

风险点

在没有推流鉴权的情况下,会面临哪些风险呢?

1、直播账号被大量盗用,产生高额的流量费用,作为一个打工人,可能就因此被辞退了,而老板也可能因此欠下一大笔钱。

2、直播账号被盗推一些涉黄、涉政、涉爆等违法违规内容,老板可能因此被抓,公司被封。

不想开直播推流鉴权

虽然有风险,但有些场景下还是想关闭直播推流鉴权:

1、测试业务

线上业务可能每次推流时,app会去服务器请求合法的推流URL,但在测试场景下,每次都去获取一遍,还是挺麻烦的,尤其是使用第三方推流工具时,需要复制来粘贴去的,费事费力,领导还催着上线。

2、监控摄像头

购买的无线网络摄像头一般支持RTMP推流,如果推流地址的txTime过期了,同时网络中断一下,推流就会中断,重试时也被腾讯云直播拒绝,最后不得不再次手工更新推流地址,如果摄像头有数百个,对于运营同学来说,将是一个噩梦。

如何解决:

其实腾讯云提供了一些技术手段来规避无推流鉴权所带来的风险

1、开启播放域名带宽封顶

适用于测试环境和监控摄像头场景

对于测试业务或监控场景来说,并不需要大量的下行播放带宽,一般来说,也就几个人同时播放,按照播放码率2Mbps来计算,同时有50个人播放,带宽也就100Mbps,而日常测试工作中,很少有50个人同时播放,设置播放域名100Mbps的带宽封顶,足够使用了,若有超出,应该是有其他异常情况发生了(被盗用或用于线上业务等)

操作指引如下链接:播放域名带宽封顶配置 https://cloud.tencent.com/document/product/267/42600

2、开启播放域名鉴权

适用于监控摄像头场景

监控摄像头一般安装在户外高处,每次更新摄像头配置都挺麻烦的,如果是部署在客户的环境下,每次都得出差搞,就更麻烦了。

不过播放摄像头的页面是可以动态更新的,播放地址可以携带鉴权参数,这样即使直播账号被盗推,攻击者也无法播放他的内容。

操作指引如下链接:播放鉴权配置 https://cloud.tencent.com/document/product/267/32463

3、直播事件回调实现推流监控

适用于测试环境和监控摄像头场景

云直播提供直播回调功能,当有直播推流事件发生时,腾讯云主动把推流相关信息发送请求到业务服务器,这样自己的腾讯云直播账号下的任何一次推流,业务服务器都可以感知到,一旦出现异常的直播推流,即可告警出来;

比如测试环境的直播流ID是test_userid_xxx格式,其中userid为测试人员的账号ID;

而监控摄像头的直播流ID是monitor_deviceid_xxx格式,其中deviceid为摄像头编号ID;

业务服务器如果收到其他格式的直播流ID,或者userid/deviceid不是平台已注册的账号ID/设备ID,则可能是异常推流,可以及时告警出来,然后人工封禁掉;

a)根据指引配置直播事件回调:直播回调 https://cloud.tencent.com/document/product/267/20388

b)当收到异常推流事件时,通过云监控的自定义消息发出告警: https://cloud.tencent.com/document/product/248/6218

c)也可以直接调用云直播接口对直播做断流处理,甚至禁止推流;

断开直播流: https://cloud.tencent.com/document/product/267/20469

禁推直播流:https://cloud.tencent.com/document/product/267/20468

如果是人工处理,也可以在云直播控制台操作禁用 https://cloud.tencent.com/document/product/267/20380

4、开启域名绑定

适用于测试环境和监控摄像头场景

同一个直播账号下,可能有多个业务在使用,因此推流域名和播放域名可能有数十个之多,有些业务是可以开启推流鉴权,有些业务开启推流鉴权则很带来一些不便;

默认情况下,播放域名和推流域名之间是没有绑定关系的;

配置了push1、push2、push3推流域名,play1、play2、play3播放域名;

push1域名推了某条直播流,用三个播放域名都能播放,如果这几个域名对应了三个业务,虽然push1、push2域名开启了推流鉴权,但由于push3是监控或测试场景的,关闭了推流鉴权,即时对play3播放域名开启了带宽封顶,攻击者依然可以通过play1、play2播放域名实现盗用。

此时可以通过提交工单,要求添加(push1、play1)(push2、play2)(push3、play3)的对应关系,即是说,push3推的流,只有play3播放域名可以播放

操作指引:联系我们 https://cloud.tencent.com/document/product/267/19904

推流域名和播放域名绑定
推流域名和播放域名绑定

5、其他手段

当然也还有其他手段来实现直播内容安全,比如:

a) 直播鉴黄:https://cloud.tencent.com/document/product/267/32741

b) 数字版权保护: https://cloud.tencent.com/document/product/1000

c) 人工审核

等各项手段来确保直播内容可控且合法合规;

看了这么多,大家有没有其他手段可以兼顾便利和安全呢,欢迎点赞收藏留言给小编

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 名词解读
  • 什么是直播推流鉴权
  • 风险点
  • 不想开直播推流鉴权
  • 如何解决:
  • 1、开启播放域名带宽封顶
  • 2、开启播放域名鉴权
  • 3、直播事件回调实现推流监控
  • 4、开启域名绑定
  • 5、其他手段
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档