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

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

功能介绍

客户端在播放使用 HLS 协议传输的 .ts 视频流时,需要事先获取用于解密视频流的加密密钥。为了更好保护密钥的安全,您可以在密钥的 URL 中添加客户端的签名,并在密钥服务器上实现签名校验机制来验证客户端的签名。

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

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

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

  3. 客户端分析该 .m3u8 文件,获取 #EXT-X-KEY 标签中包含的密钥的 URL。假设该密钥的 URL 是 https://www.test.com/video.key

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

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

  1. 客户端向 CDN 请求 HLS 播放列表,该列表是一个 .m3u8 文件。请求 URL 包含一个签名参数。假设该 .m3u8 文件的 URL 是 https://www.example.com/index.m3u8?DrmAuthToken=xxx。其中,签名参数是 DrmAuthToken,签名值是 xxx

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

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

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

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

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

  7. 判断签名是否合法。

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

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

操作步骤

在启用 "标准 HLS 加密改写" 功能时,您仅需要指定签名参数的名称。您需要额外在您的密钥服务器上实现签名校验机制。如果客户端在请求 .m3u8 文件时没有在请求 URL 中包含指定的签名参数,CDN 不会进行改写操作。

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

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

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

  4. 操作 列,点击 管理

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

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

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

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

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

alt