
# 云直播鉴权和禁推功能帮助用户保障直播资源安全
#### 场景说明
为保护用户直播源站的资源不被非法源站下载盗用，视频直播服务提供了Referer防盗链、Key防盗链、IP黑白名单鉴权机制和禁推功能。
- 开启鉴权机制后，CDN会对访问者的身份进行识别和过滤，符合规则的才可使用直播服务，其它非法的访问将予以拒绝。
- 禁推功能主要针对正在推送的直播流，在直播过程中，发现直播流内容不合法或被非法盗用，用户可对直播流进行禁止推送操作，从而保障直播资源的安全。
 
#### 实现原理
如[图1]所示，视频直播服务主要通过以下几方面保障直播资源的安全。
图1直播安全架构图   
![](https://support.huaweicloud.com/bestpractice-live/zh-cn_image_0200814351.png)
- [推流鉴权]：
  - Key防盗链：主播使用租户提供的带加密串的鉴权推流地址向CDN请求直播推流，CDN会根据推流地址中携带的鉴权信息校验请求的合法性，仅校验通过的请求会被允许。
  
  - IP黑白名单：配置IP黑名单或白名单后，CDN会根据名单对推流请求者的IP进行识别和过滤，允许或拒绝推流请求。
   

- [播放鉴权]：
  - Referer防盗链：配置Referer黑名单或白名单后，CDN会根据名单对播放请求中携带的Referer字段进行识别，允许或拒绝播放请求。
  
  - Key防盗链：观众使用租户提供的带加密串的鉴权播放地址向CDN请求直播播放，CDN会根据请求地址中携带的鉴权信息进行检验，判断地址是否在有效期内，只有通过校验的请求才会被允许，从而保障直播资源的安全。
  
  - IP黑白名单：配置IP黑名单或白名单后，CDN会根据名单对播放请求者的IP进行识别和过滤，允许或拒绝播放请求。
   
- [直播流管理]：在直播过程中，发现直播流内容不合法或推流地址被非法盗用，将直播控制台上将此直播流加入禁推名单，对直播流进行封禁，在执行恢复推流前将无法进行推流活动。
 
 #### 推流鉴权
在直播推流前，为推流域名配置Key防盗链或IP黑白名单。
1. 登录[视频直播控制台](https://console.huaweicloud.com/live2/#/live/home)。
2. 在左侧导航栏中，选择"域名管理"，进入域名管理页面。
3. 在需要配置鉴权信息的域名行，单击"管理"。
4. 选择"鉴权配置"页签。
5. 请根据实际需求配置以下鉴权方式。 
   - Key防盗链 若您有其它自定义防盗链规则的需求，请您[提交工单](https://console.huaweicloud.com/ticket/#/ticketindex/createIndex)与华为云技术客服联系。
     1. 单击"Key防盗链"右侧的编辑图标，界面右侧弹出"Key防盗链"对话框。
     
     2. 单击"开关"，配置Key防盗链参数，如[图2]所示。
        图2配置Key防盗链   
        ![](https://support.huaweicloud.com/bestpractice-live/zh-cn_image_0000001752023069.png)
        表1Key防盗链参数说明 
        | 参数名 | 描述                                                                                                                                                                                                                                                                                                                                                                  |
        |:---|:---|
        | 类型  | 计算鉴权串的方式，可选为：方式A、方式B、方式C或方式D。 说明： 鉴权方式ABC存在安全风险，鉴权方式D拥有更高的安全性，建议您优先使用鉴权方式D。                                                                                                                                                                                 |
        | Key | 鉴权key值。 - 支持自定义设置，由32位的字母和数字组成。  - 支持自动生成。   |
        | 时长  | URL鉴权信息的超时时长，指的是鉴权信息中携带的请求时间与直播服务收到请求时的时间的最大差值，用于检查直播推流URL或者直播播放URL是否已过期，单位：秒，范围限制：1分钟-30天。                                                                                                                                                                                                                                                                         |
           
        
     
     3. 配置完成后，单击"确定"。
     
     4. 通过以下方式获取推流鉴权地址。
        Key防盗链配置成功后，原始地址将无法使用，您需要获取对应的推流鉴权地址。
        - 自动生成：使用防盗地址生成工具快速生成鉴权地址，具体生成方法请参见[防盗地址生成](https://support.huaweicloud.com/iLive-live/live_01_0031.html)。
        
        - 手动拼接：根据配置的鉴权**类型** 拼接对应的鉴权地址，具体拼接示例请参见[Key防盗链](https://support.huaweicloud.com/iLive-live/live_01_0049.html#section3)。
          - 鉴权方式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)
            
          
          - 鉴权方式D
            **鉴权URL格式**
            ```
            原始URL?hwSecret=hmac_sha256(Key, StreamName + hwTime)&hwTime=hex(timestamp)
            ```
            
           
          
     
     5. 验证防盗链功能。 使用第三方直播推流工具，通过鉴权推流地址进行验证，若原始推流地址无法成功推流，使用鉴权推流地址能成功推流，则表示Key防盗链生效。
        
      
   
   - IP黑白名单
     1. 单击"IP黑白名单"右侧的编辑图标，界面右侧弹出"IP黑白名单"对话框。
     
     2. 单击"开关"，配置IP黑白名单，如[图3]所示。
        图3配置IP黑白名单   
        ![](https://support.huaweicloud.com/bestpractice-live/zh-cn_image_0000001704063880.png) 
     
     3. 根据"鉴权类型"输入禁止或允许访问的播放域名IP地址，您也可以通过输入IP网段添加黑白名单。
     
     4. 配置完成后，单击"确定"。
      
   
   
   
   
 
 #### 播放鉴权
为直播播放域名配置Referer防盗链、Key防盗链或IP黑白名单。
1. 登录[视频直播控制台](https://console.huaweicloud.com/live2/#/live/home)。
2. 在左侧导航栏中，选择"域名管理"，进入域名管理页面。
3. 在需要配置鉴权信息的域名行，单击"管理"。
4. 选择"鉴权配置"页签。
5. 请根据实际需求配置以下鉴权方式。 
   - Referer防盗链
     1. 单击"Referer防盗链"右侧的编辑图标，界面右侧弹出"Referer防盗链"对话框。
     
     2. 单击"开关"，配置Referer防盗链参数，如[图4]所示。
        图4配置Referer防盗链   
        ![](https://support.huaweicloud.com/bestpractice-live/zh-cn_image_0000001704223364.png)
        表2Referer防盗链配置 
        | 参数名 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
        |:---|:---|
        | 类型  | 支持黑名单和白名单模式。 - Referer黑名单：允许非名单内的域名请求访问资源，拒绝名单中的域名请求访问。  - Referer白名单：允许名单内的域名请求访问资源，拒绝其它域名请求访问。   您可以设置是否允许空Referer字段访问资源，即是否允许通过浏览器地址栏直接访问资源URL。                                                                                                                                                                                                                                               |
        | 规则  | 黑名单或白名单中的域名。 - 输入的域名总数最多支持100条（最少1条），以英文";"进行分隔。  - 域名为正则匹配，若填写"\^http://test\*.com$"，则"http://test.example.com"和"http://test.example01.com"也会匹配成功。   |
           
        
     
     3. 配置完成后，单击"确定"。
      
   
   - Key防盗链 播放域名的Key防盗链配置与推流域名的Key防盗链配置方法相同，具体请参见[推流鉴权]。
     
   
   - IP黑白名单 播放域名的IP黑白名单配置与推流域名的IP黑白名单配置方法相同，具体请参见[推流鉴权]。
     
   
   
   
   
 
 #### 直播流管理
在直播过程中，若发现直播流内容不合法或推流地址被非法盗用，可以对直播流进行禁止推流操作，从而保障直播资源的安全。
1. 登录[视频直播控制台](https://console.huaweicloud.com/live2/#/live/home)。
2. 在左侧导航栏中，选择"直播管理 \> 流管理"，进入流管理页面。
3. 选择需要禁止直播推流的域名。
4. 在需要禁推的直播流行，单击"禁推"，弹出"禁推"对话框。 
   选择恢复时间。可以在"禁推流"页签，查看禁止推流后的直播流信息。
   图5禁推配置   
   ![](https://support.huaweicloud.com/bestpractice-live/zh-cn_image_0000001588492917.png)
   **限时**：最长支持禁推90天，在恢复时间前，该直播流无法进行推流活动。
   
   
 
正在推送的直播流加入禁推名单后，在恢复推流前该推流地址将无法进行直播活动。
