You need to enable JavaScript to run this app.
导航
标准 HLS 加密改写
最近更新时间:2024.09.27 16:22:12首次发布时间:2024.09.20 12:14:06

本文档介绍了火山引擎内容分发网络(CDN)提供的 "标准 HLS 加密改写" 功能。

说明

要使用此功能,请 提交工单

功能介绍

客户端在播放使用 HLS 协议传输的 .ts 加密视频流时,客户端需要事先获取用于解密视频流的密钥。密钥存放在密钥服务器上,客户端通过访问密钥 URL 来获取密钥。密钥 URL 包含在 .m3u8 播放列表文件中的 #EXT-X-KEY 标签内。为了更好保护密钥的安全,您可以使密钥 URL 包含客户端的签名,并在密钥服务器上实现签名校验机制来验证客户端的签名。

在启用 "标准 HLS 加密改写" 功能后,CDN 将 .m3u8 请求中包含的签名参数添加到密钥 URL。

说明

如果客户端在请求 .m3u8 文件时没有在请求 URL 中包含签名参数,CDN 不会改写密钥 URL。

密钥获取流程

下表分别展示了在启用该功能的场景和未启用该功能的场景中,客户端获取密钥的流程。粗体文字表示在启用该功能后,流程中的增加的步骤和信息。

在该场景中:

  • .m3u8 文件的 URL 是 https://www.example.com/index.m3u8

  • 签名参数是 DrmAuthToken,签名值是 xxx

  • 密钥 URL 是 https://www.test.com/video.``key

未启用该功能时,密钥的获取流程启用该功能后,密钥的获取流程
  1. 客户端向 CDN 请求该 .m3u8 文件。请求 URL 是 https://www.example.com/index.m3u8

  2. CDN 将该 .m3u8 文件发送给客户端。

  3. 客户端分析该 .m3u8 文件,获取 #EXT-X-KEY 标签中的密钥 URL。

  4. 客户端向该密钥 URL 发送请求。

  5. 密钥服务器将密钥发送给客户端。

  1. 客户端向 CDN 请求该 .m3u8 文件,请求 URL 是 https://www.example.com/index.m3u8?DrmAuthToken=xxx

  2. CDN 修改该 .m3u8 文件中 #EXT-X-KEY 标签的值,将签名参数添加到密钥 URL 的末尾。改写后的密钥 URL 为 https://www.test.com/video.key?DrmAuthToken=xxx

  3. CDN 将该 .m3u8 文件发送给客户端。

  4. 客户端分析该 .m3u8 文件,获取 #EXT-X-KEY 标签中的密钥 URL。

  5. 客户端向该改写后的密钥 URL 发送请求。

  6. 密钥服务器验证该请求 URL 中的签名。

  7. 判断签名是否合法。

    • 如果签名合法, 密钥服务器将密钥发送给客户端。

    • 如果签名不合法,密钥服务器拒绝该请求。

操作步骤

  1. 登录 火山引擎内容分发网络控制台

  2. 在左侧导航栏,点击 域名管理

  3. 域名管理 页面,找到需要配置的域名。

  4. 操作 列,点击 管理

  5. 在域名页面上,点击 内容优化 标签页。

  6. 在页面右上方,点击 编辑配置

  7. 标准 HLS 加密改写 下方,设置 状态 为启用。

  8. 指定签名参数的名称,长度不能超过 100 个字符。参数名称区分大小写,可以包含字母、数字、下划线(_)、中划线(-)、逗号(,)、句号(.)、感叹号(!)。默认的参数名称是 DrmAuthToken

  9. 在页面右上方,点击 提交编辑

alt