【云小课】云视频第7课 多种安全保障机制,让直播更省心!
随着视频直播应用业务的盛行,很多小伙伴开始关注另一个重点问题,使用的视频直播服务是否具备足够的措施来保障我们直播资源的安全?
针对这个问题,小课就带您从华为云视频直播的整个流程来看,讲讲华为云直播是如何在每个阶段对部署相关安全机制的。
推流鉴权:主播使用带加密串的鉴权推流地址向CDN请求直播推流,CDN会根据推流地址中携带的鉴权信息校验请求的合法性,校验通过后才会被允许推流。
直播流管理:在直播过程中,发现直播流内容不合法或推流地址被非法盗用,可以在直播控制台上将此直播流加入禁推名单,对直播流进行封禁,在恢复推流前将无法进行推流活动。
播放鉴权:对请求直播播放的身份进行校验,仅校验通过的请求会被允许,提供了Referer防盗链、Key防盗链和IP黑名单三种播放鉴权机制。
安全加速:为播放域名配置HTTPS,相比HTTP协议,由 SSL + HTTP 协议构建的可进行加密传输和身份认证的网络协议比 HTTP 协议安全。
推流鉴权
流程说明如下所示:
租户在直播控制台开启Key防盗链功能,并配置鉴权方式、Key值和时长。
直播服务将租户配置的鉴权方式、Key值和时长下发到CDN节点中。
主播/观众通过租户提供的鉴权推流/播放地址向CDN请求推流或播放。
CDN根据推流或播放URL中携带的鉴权信息校验请求的合法性,仅校验通过的请求会被允许。
配置方法
登录视频直播控制台,在“域名管理”页面中的对应域名行单击“管理”,选择“基本信息 > 鉴权配置 > Key防盗链”。在Key防盗链页面开启Key防盗链功能,配置相关鉴权参数。
Key防盗链开启后,原始地址将无法再使用,推流鉴权地址。华为云视频直播提供了三种鉴权串计算方式,具体如下:
鉴权方式A
鉴权地址格式:原始URL?auth_key={timestamp}-{rand}-{uid}-{md5hash}
timestamp:自定义的有效访问时间起始点,值为1970年1月1日以来的当前时间秒数 。十进制或者十六进制整数。
rand:随机数,建议使用UUID,不能包含中划线"-"。
uid:userID,暂未使用,直接设置成0即可。
md5hash:通过md5算法计算出来的鉴权串,计算公式为:md5sum ({URI}-{Timestamp}-{rand}-{uid}-{Key}),其中URI为原始URL中从域名后开始到最后的路径,示例:/livetest/huawei1.flv
鉴权方式B
鉴权URL格式:原始URL?txSecret=md5(Key + StreamName + txTime)&txTime=hex(timestamp)
StreamName :流名称。
txTime:播放URL的有效时间,为Unix时间戳的十六进制结果。如果当前txTime的值大于当前请求的时间则可以正常播放,否则播放会被后台拒绝。
鉴权方式C
鉴权URL格式:原始URL?auth_info=加密串.EncodedIV
加密串=UrlEncode(Base64(AES128(<Key>,"$"+<Timestamp>+"$"+<LiveID>+"$"+<CheckLevel>))),各参数如下所示:
- Timestamp:鉴权参数生成的UTC时间,格式为“yyyyMMddHHmmss”,用于检查鉴权参数是否已过期,即Timestamp和当前时间差值的绝对值是否大于 配置的超时时长。
- LiveID:由AppName和StreamName组成,格式为<AppName>+"/"+<StreamName>。
- CheckLevel:检查级别。取值为3或者5。3表示只检查LiveID是否匹配,不检查鉴权URL是否过期。5表示检查LiveID是否匹配,Timestamp是否超时。
EncodedIV=Hex(IV):CBC对称加密算法依赖IV向量,随机生成的16位数字和字母组合,IV值长度为128位
原始URL:http://test-play.example.com/livetest/huawei1.flv
Key: MyLiveKeyValue01
鉴权方式A
HashValue = md5sum("/livetest/huawei1.flv-1592639100-477b3bbc253f467b8def6711128c7bec-0-MyLiveKeyValue01") = 546a86457bf6886a459596c545ff5224
则鉴权地址为:
http://test-play.example.com/livetest/huawei1.flv?auth_key=1592639100-477b3bbc253f467b8def6711128c7bec-0-546a86457bf6886a459596c545ff5224
鉴权方式B:
txSecret = md5(MyLiveKeyValue01huawei15eed5888) = c37c840d8e130861064047313991a4dd
则鉴权地址为:
http://test-play.example.com/livetest/huawei1.flv?txSecret=c37c840d8e130861064047313991a4dd&txTime=5eed5888
鉴权方式C
加密串 = LpB4kdZfnOwfbpIgYVo4ANwhZIkOO96o8Xfhc6qwOq0%3D EncodIV = 79436d453636364e335941713330534e
则鉴权地址为:
http://test-play.example.com/livetest/huawei1.flv?auth_info=LpB4kdZfnOwfbpIgYVo4ANwhZIkOO96o8Xfhc6qwOq0%3D.79436d453636364e335941713330534e
更多Key防盗链鉴权信息请参见帮助中心-推流鉴权。
直播流管理
直播流管理针对的是推流,若在直播过程中,发现直播内容存在不合法或推流地址被非法盗用,可以使用禁推功能对直播流进行管控。
登录视频直播控制台,左左侧导航树中选择“直播管理 > 直播流管理”,在“在线流”列表中选择对应直播流进行禁推操作,最长支持禁推90天。
更多直播流管理信息请参见帮助中心-直播流管理。
播放鉴权
在播放阶段,视频直播服务提供了Key防盗链、Referer防盗链、IP黑名单三种鉴权机制。
Referer防盗链:基于HTTP Header跟踪请求来源。
Key防盗链:在播放地址中添加具有时效性的鉴权串,进行URL鉴权和时效控制。
IP黑白名单:基于访问者的IP来限制。
Key防盗链
与推流鉴权中的Key防盗链机制相同,可以直接参考推流鉴权。
Referer防盗链
配置Referer黑名单或白名单后,CDN会根据名单对播放请求中携带的Referer字段进行识别,允许或拒绝播放请求。
登录视频直播控制台,在“域名管理”页面中对应播放域名行单击“管理”,选择“基本信息 > 鉴权配置 > Referer防盗链”,在Referer防盗链配置页面开启Referer防盗链功能,配置相关参数。
IP黑名单
将禁止或允许播放的IP地址添加到IP黑白名单中,CDN会根据名单对播放请求者的IP进行识别和过滤,允许或拒绝播放请求。
登录视频直播控制台,在“域名管理”页面中对应播放域名行单击“管理”,选择“基本信息 > 鉴权配置 > IP黑白名单”,在IP黑名单配置页面开启IP黑白名单功能,配置相关参数。
支持IP网段配置,示例:10.0.0.1/24。其中,24表示采用子网掩码中的前24位为有效位,即用32-24=8bit来表示主机号,该子网可以容纳28- 2 = 254 台主机。故127.0.0.1/24 表示 IP 网段范围是:10.0.0.1~10.0.0.255。
更多播放鉴权信息请参见帮助中心-播放鉴权。
安全加速
开启并配置播放域名的HTTPS安全加速,保障直播数据在传输过程中受到加密保护。
相比HTTP协议,HTTPS具有如下优势:
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比HTTP协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。
在HTTPS协议中,会对用户的关键信息进行加密,避免Session ID或Cookie内容被攻击者捕获,导致敏感信息泄露。
配置方法
购买需要具备匹配播放域名的SSL证书,您可以在华为云SSL证书管理中购买。
若您已自备HTTPS证书,请确保HTTPS证书格式满足HTTPS证书要求,若您的证书为非PEM格式,请参照HTTPS证书要求进行格式转换。
登录视频直播控制台,在“域名管理”页面中对应播放域名行单击“管理”,“选择模板配置 > HTTPS证书配置”。
单击“新增”,将证书和秘钥内容分别复制到对应输入框。单击“确定”完成配置。
验证安全加速是否配置成功。
直播推流后,使用HTTPS-FLV格式播放直播流,若播放成功,则表示HTTPS安全加速配置成功。
- 点赞
- 收藏
- 关注作者
评论(0)