本文档介绍了火山引擎内容分发网络(CDN)提供的 "标准 HLS 加密改写" 功能。
功能介绍
客户端在播放使用 HLS 协议传输的 .ts 视频流时,需要事先获取用于解密视频流的加密密钥。为了更好保护密钥的安全,您可以在密钥的 URL 中添加客户端的签名,并在密钥服务器上实现签名校验机制来验证客户端的签名。
下表分别展示了在启用该功能的场景和未启用该功能的场景中,客户端获取密钥的流程。粗体文字表示在启用该功能后,流程中的增加的步骤和信息。
未启用该功能时,密钥的获取流程 | 启用该功能后,密钥的获取流程 |
---|
客户端向 CDN 请求 HLS 播放列表,该列表是一个 .m3u8 文件。假设该 .m3u8 文件的 URL 是 https://www.example.com/index.m3u8 。 CDN 将该 .m3u8 文件发送给客户端。 客户端分析该 .m3u8 文件,获取 #EXT-X-KEY 标签中包含的密钥的 URL。假设该密钥的 URL 是 https://www.test.com/video.key 。 客户端向该密钥的 URL 发送请求。 密钥服务器将密钥发送给客户端。
| 客户端向 CDN 请求 HLS 播放列表,该列表是一个 .m3u8 文件。请求 URL 包含一个签名参数。假设该 .m3u8 文件的 URL 是 https://www.example.com/index.m3u8?DrmAuthToken=xxx 。其中,签名参数是 DrmAuthToken ,签名值是 xxx 。 CDN 修改该 .m3u8 文件中 #EXT-X-KEY 标签的值,将签名参数附加到密钥的 URL 末尾。例如,CDN 将密钥的 URL 改写为 https://www.test.com/video.key?DrmAuthToken=xxx CDN 将该 .m3u8 文件发送给客户端。 客户端分析该 .m3u8 文件,获取 #EXT-X-KEY 标签中包含的改写后的密钥的 URL。 客户端向该改写后的密钥的 URL 发送请求。 密钥服务器验证该请求 URL 中的签名。 判断签名是否合法。 如果签名合法, 密钥服务器将密钥发送给客户端。 如果签名不合法,密钥服务器拒绝该请求。
|
操作步骤
在启用 "标准 HLS 加密改写" 功能时,您仅需要指定签名参数的名称。您需要额外在您的密钥服务器上实现签名校验机制。如果客户端在请求 .m3u8 文件时没有在请求 URL 中包含指定的签名参数,CDN 不会进行改写操作。
登录 火山引擎内容分发网络控制台。
在左侧导航栏,点击 域名管理。
在 域名管理 页面,找到需要配置的域名。
在 操作 列,点击 管理。
在域名页面上,点击 内容优化 标签页。
在页面右上方,点击 编辑配置。
在 标准 HLS 加密改写 下方,设置 状态 为启用。
指定签名参数的名称,长度不能超过 100 个字符。参数名称区分大小写,可以包含字母、数字、下划线(_)、中划线(-)、逗号(,)、句号(.)、感叹号(!)。默认的参数名称是 DrmAuthToken
。
在页面右上方,点击 提交编辑。