视频直播支持 HLS 标准加密,本文为您介绍在视频直播使用 HLS 的实现原理和进行HLS 加密配置的前置操作。
视频直播 HLS 加密功能使用 HLS 协议的通用加密方案,该方案通过使用 AES-128 加密算法对每个 TS(Transport Stream)进行加密,并在生成的播放清单文件中添加解密信息。
本方案中视频直播服务端自身集成了 KMS 服务可提供加密密钥生成和定时轮换功能。
加密解密流程如下:
客户端使用 HLS 拉流地址发起对加密直播的拉流请求。
视频直播服务收到请求后,使用自身生成的密钥对直播流进行加密,并将带有解密信息的 M3U8 文件返回给客户端。
其中,#EXT-X-KEY
标签包含了加密信息,其中 URI 即为向客户自建密钥管理服务请求密钥的地址,M3U8 文件部分内容示例如下。
#EXTM3U #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:107326 #EXT-X-TARGETDURATION:2 #EXT-X-PROGRAM-DATE-TIME:2024-05-07T17:59:02.927+08:00 #EXT-X-KEY:METHOD=AES-128,URI="https://example.kms.com/get_hls_enc_key?key_id=08e765a4da*****c4028755c3c",IV=0x00000000000000000000018F4E83AD11 #EXTINF:2.000, HD_1080p_1715075942927_3070957834_107326.ts?ps=11&app=live&stream=HD_1080p&vhost=push.example.com
客户端使用 M3U8 中的解密信息向自建密钥管理服务发起获取密钥请求。
自建密钥管理服务向视频直播发起获取密钥请求。
说明
自建密钥管理服务需具备密钥缓存能力,当下次有其他拉流请求时可直播返回密钥,无需每次都向视频直播请求获取。
自建密钥管理服务将视频直播服务返回的密钥返回给拉流客户端,客户端通过获取的密钥解密播放 M3U8 文件。
如需使用 HLS 加密,并实现解密播放功能,您需要自行搭建密钥管理服务。且需具备如下功能。
您可以使用视频直播提供的远程鉴权对拉流请求的合法性进行鉴权,如需使用请您创建工单联系技术支持,获取配置方法。
登录视频直播控制台。
左侧导航栏选择功能管理 > 加密管理,选择HLS 标准加密页签。
单击编辑配置,填写以下参数。
参数 | 说明 |
---|---|
密钥获取地址 | 客户自建密钥管理服务后,客户端向密钥管理服务请求获取密钥的地址。 |
轮换时间 | 视频直播服务端生成密钥的更新周期,单位为秒,取值范围为 [60,604800]。 |
单击确认