文档首页 > > 最佳实践> 如何保障直播资源的安全?

如何保障直播资源的安全?

分享
更新时间: 2020/07/03 GMT+08:00

场景说明

为保护用户直播源站的资源不被非法源站下载盗用,视频直播服务提供了Key防盗链和禁推功能。鉴权开启后,CDN会对所有播放请求中携带的关键信息进行校验,仅校验通过的请求会予以响应,其它非法的访问将直接返回403。禁推功能主要针对正在推送的直播流,在直播过程中,发现直播流内容不合法或被非法盗用,用户可对直播流进行禁止推送操作,从而保障直播资源的安全。

实现原理

图1所示,视频直播服务主要通过以下几方面保障直播资源的安全。

图1 直播安全架构图
  • 对推流进行鉴权:主播使用租户提供的带加密串的鉴权推流地址向CDN请求直播推流,CDN会根据推流地址中携带的鉴权信息校验请求的合法性,仅校验通过的请求会被允许。
  • 对直播流进行禁推管理:在直播过程中,发现直播流内容不合法或推流地址被非法盗用,将直播控制台上将此直播流加入禁推名单,对直播流进行封禁,在执行恢复推流前将无法进行推流活动。
  • 对播放进行鉴权:观众使用租户提供的带加密串的鉴权播放地址向CDN请求直播播放,CDN会根据请求地址中携带的鉴权信息进行检验,判断地址是否在有效期内,只有通过校验的请求才会被允许,从而保障直播资源的安全。

其中,推流鉴权与播放鉴权的机制是一样的,均使用Key防盗链的直播鉴权方案。Key防盗链是视频直播的CDN节点与直播源站联合实现的,实现过程如图2所示。

图2 Key防盗链工作原理

流程说明如下所示:

  1. 租户在直播控制台开启Key防盗链功能,并配置计算鉴权串的方式、Key值和时长。
  2. 直播服务将租户配置Key值和时长下发到CDN节点中。
  3. 主播/观众通过租户提供的鉴权推流/播放URL向CDN请求推流或播放。
  4. CDN根据推流或播放URL中携带的鉴权信息校验请求的合法性,仅校验通过的请求会被允许。

直播鉴权

为直播资源配置Key防盗链,通过鉴权地址的时效性保障直播资源的安全。

  1. 登录视频直播控制台
  2. 在左侧导航树中选择域名管理,进入域名管理页面。
  3. 在需要配置鉴权信息的域名行右侧单击“管理”
  4. 在左侧导航树中选择基础配置 > 鉴权配置 > Key防盗链。在弹出的页面中打开“开关”,并配置Key防盗链参数。

    图3 配置Key防盗链
    • 类型:计算鉴权串的方式,可选为:方式A、方式B或方式C。
    • Key:鉴权key值,支持自定义设置,由16位的字母和数字组成。
    • 时长:URL鉴权信息的超时时长,指的是鉴权信息中携带的请求时间与直播服务收到请求时的时间的最大差值,用于检查直播推流URL或者直播播放URL是否已过期,单位:秒,范围限制:1分钟-30天。

  5. 配置完成后,单击“确定”
  6. 根据配置的鉴权类型生成对应的鉴权地址。

    Key防盗链配置成功后,原始地址将无法使用,您需要生成对应的推流鉴权地址和播放鉴权地址。各鉴权类型详细说明请参见Key防盗链

    • 鉴权方式A

      鉴权URL格式

      原始URL?auth_key={timestamp}-{rand}-{uid}-{md5hash}
      md5hash的计算公式:
      sstring = "{URI}-{Timestamp}-{rand}-{uid}-{Key}"
      HashValue = md5sum(sstring)
    • 鉴权方式B

      鉴权URL格式

      原始URL?txSecret=md5(Key + StreamName + txTime)&txTime=hex(timestamp)
    • 鉴权方式C

      鉴权URL格式

      原始URL?auth_info=加密串.EncodedIV
      鉴权字段的生成算法:
      • LiveID = <AppName>+"/"+<StreamName>
      • 加密串 = UrlEncode(Base64(AES128(<Key>,"$"+<Timestamp>+"$"+<LiveID>+"$"+<CheckLevel>)))
      • EncodedIV = Hex(加密使用的IV)

  7. 验证防盗链功能。

    使用视频云APP,通过鉴权推流地址和播放地址进行验证,若原始推流地址和播放地址无法成功推流和播放,使用鉴权推流地址和播放地址能成功推流和播放,则表示Key防盗链生效。

禁推直播流

在直播过程中,若发现直播流内容不合法或推流地址被非法盗用,可以对直播流进行禁止推流操作,从而保障直播资源的安全。

  1. 登录视频直播控制台
  2. 在左侧导航树中选择直播管理 > 直播流管理,进入直播流管理页面。
  3. 选择需要禁止直播推流的域名。
  4. 在需要禁推的直播流行单击“禁推”,弹出“禁推”框。

    图4 禁推

  5. 在弹出的“禁推”框中选择禁推类型。

    禁止推流后的直播流信息可以在“禁推流”页签进行查看。

    图5 禁推配置

    永久禁用:若选择“永久禁用”,该直播流在执行恢复推流前将再也无法进行推流活动。

    限时:可以选择恢复时间,在恢复时间前,该直播流无法进行推流活动。

正在推送的直播流加入禁推名单后,在恢复推流前该推流地址将无法进行直播活动

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问