防止未经授权的分发

本页面简要介绍了媒体 CDN 提供的选项, 有助于防止他人在未经授权的情况下分发您的内容。

媒体 CDN 支持多个签名请求选项,以帮助保护 防止其在未经授权的情况下分发。令牌是一种交换媒介 签名请求,例如签名 Cookie、包含查询参数的 URI 或路径 组件。查看者提供的有效令牌用于验证访问 您的内容。阻止了具有无效令牌或令牌缺失的查看者 访问你的内容

媒体 CDN 为客户端提供以下签名请求选项 身份验证:

  • 签名:媒体 CDN 使用单个签名来帮助 保护内容。

  • 令牌:媒体 CDN 使用令牌来帮助保护内容。您 可以选择使用单令牌或双令牌身份验证。

    使用双令牌身份验证时,媒体 CDN 会使用两个 一种是短时令牌和长时令牌,用于帮助保护内容。

通过签名,您可以进行完整的网址签名,包括主机和协议。

令牌具有以下功能:

  • 与非 Google CDN 的兼容性
  • 仅路径签名
  • 可对多个标头进行签名
  • 能够嵌入任意数据和会话 ID

我们建议为新的集成使用令牌。双令牌必须提供令牌 身份验证。

您可以将签名请求和双令牌身份验证请求结合使用, 有助于保护您的内容。

签名请求的工作原理

签名请求使用签名或令牌来验证每个查看者是否 必须经过身份验证才能访问内容。您可以配置媒体 CDN 访问权限的范围限定为以下任意一项:

  • 有限时间内的确切 URI 或 URI 前缀
  • 特定客户
  • 对于使用令牌的签名请求,最多包含 5 个带有通配符的路径

如需使用签名请求,您需要生成密钥来签署和验证签名。您 然后配置路由,从而根据 内容、客户属性和新鲜度要求。签名请求可以 按路由强制执行,这有助于保护特定端点。

每个媒体 CDN 服务都可以使用多个键的集合。 密钥的集合也称为密钥集。通过密钥集, 轮替密钥并在您自己的基础架构中分发私钥,而无需 造成干扰。

您可以将媒体 CDN 配置为使用签名请求或 帮助保护内容。

对于使用签名的签名请求,您可以使用以下任何格式:

  • 包含查询参数的确切 URI:您可以使用URLPrefix 确切的 URI,并将相同的查询参数附加到多个 URI。
  • 带查询参数的 URI 前缀:您可以使用URLPrefix URI 前缀,并将相同的查询参数附加到多个 URI。
  • 路径组成部分:指定路径组成部分,允许相对的 清单 URI 会继承签名 URI 组件。
  • 签名 Cookie:在 Cookie 中指定 URI 前缀,以便允许 对具有指定前缀的任何 URI 的访问权限。

如需了解详情,请参阅生成签名

对于使用令牌的签名请求,您可以将令牌放在 以下:

  • 在您选择的查询参数中
  • 在 Cookie 中

如需了解详情,请参阅生成令牌

双令牌身份验证的工作原理

双令牌身份验证使用两个令牌对向您的 content:用于启动播放的短时令牌和长持续时间令牌 令牌。

要使用双令牌身份验证,您需要将应用服务器配置为 向用户代理发放短期令牌。然后,配置 媒体 CDN 响应短时令牌。 您可以将令牌放在您选择的查询参数中,或者将 令牌标记。如需了解详情,请参阅 使用双令牌身份验证

应用服务器生成的短时令牌有助于保护主密钥 清单(有时称为多变体播放列表)。通过 已签名请求的有效期短于请求主清单, 但不观看清单中包含的所有内容。

当媒体 CDN 收到具有授权短时长的请求时 则它会生成一个带签名的长时令牌。您可以在以下位置使用该令牌: 参数或 Cookie 中。长时令牌 支持观看完整的节目。已签名的长时令牌 由媒体 CDN 生成,使用 Ed25519 签名,使用 由 Google 管理的密钥 EdgeCacheKeyset 资源

您可以自定义短时和长时令牌的到期时间。作为 我们建议您配置 短时令牌的持续时间缩短到一分钟。您 必须设置媒体 CDN 的长时令牌的到期时间 生成的时长超过您的内容长度,最多为 1 次 。

双令牌身份验证的请求流程

下面介绍了请求流程:

  1. 观众从你的应用服务器请求获取所需的媒体的元数据 进行查看。应用服务器返回主清单的 URI 并使用短时令牌进行签名。

  2. 您的播放器应用从以下位置请求主清单: 媒体 CDN。请求包含短时令牌作为 采用单命名查询参数格式的 URI 查询参数值。

  3. 媒体 CDN 会验证短时令牌和令牌的 签名参数。

    1. 如果令牌有效,媒体 CDN 会创建一个长持续时间 签名令牌。媒体 CDN 会将令牌作为 Set-Cookie 标头,或通过修改 主清单添加令牌
    2. 如果令牌无效,媒体 CDN 会返回 HTTP 403 Forbidden 响应。
  4. 播放器应用会从 媒体 CDN,然后请求媒体播放列表或媒体 主要清单中引用的细分。请求必须包含 签名 Cookie 或 URI 参数的形式提供长时令牌。

  5. 媒体 CDN 会验证长时签名令牌:

    1. 如果长时令牌对特定请求有效,则 媒体 CDN 提供请求的内容。
    2. 如果长时令牌无效(由于令牌过期造成的) 或无效路径),则媒体 CDN 会使用 HTTP 403 Forbidden 响应。
  6. 此过程会不断重复,直到媒体播放结束或长效签名结束 过期。

双令牌签名请求支持的令牌格式

媒体 CDN 双令牌签名请求支持多种格式, 具体取决于令牌类型。

短期签名请求

对于短时签名请求,媒体 CDN 默认情况下,支持使用 Ed25519 签名签名的令牌。您还可以使用 对称密钥基于哈希的消息身份验证代码 (HMAC),以实现兼容性 现有应用代码和其他 CDN。

如需使用 HMAC,请使用 Secret Manager 存储 HMAC 密钥。然后授予对媒体 CDN 的访问权限 服务账号来访问存储的密钥。我们建议的最佳做法是 使用带有 Ed25519 签名的非对称签名,以确保安全性和性能。

媒体 CDN 服务账号归 媒体 CDN 项目,并且不会显示在您项目的 服务账号。服务账号只会授予对 您明确允许的项目中的媒体 CDN 资源。

该服务账号具有以下格式:

service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com

其中,PROJECT_NUMBER 是您的项目编号。

要启用该服务的媒体 CDN 服务账号,请至少创建 一个媒体 CDN 资源,例如 EdgeCacheOrigin

长时签名请求

对于长时签名请求,媒体 CDN 使用 Ed25519 使用与 EdgeCacheKeyset 资源

对于长时令牌,媒体 CDN 支持使用单一令牌格式。 该参数既可在 HLS 视频流的单命名查询参数中使用,也可用于 HLS 视频流; Cookie 中。

注意事项

以下各部分讨论了多项内容,例如:

URI 限制

大多数新型 HTTP 客户端都支持长度不超过 8000 个字符的 URI。不过, 传统设备或小众设备可能有更严格的限制。一般来说,签名 URI 会将 向请求 URI 添加大约 125 个字符,其中包括以下内容:

  • 如果使用所有字段名称,则每个字段大约包含 67 个字符 (例如 Expires=KeyName=)。
  • 对于 Unix 时间戳,为 10 个字符
  • 对于《KeyName》,最多包含 5 个字符
  • 对于 base64 编码的 Signature 值,最多包含 43 个字符

最佳做法是,使用查询将 URI 长度控制在 2000 个字符以内 作为词元。使用较短的 URI 可防止设备发送被截断的 URI 媒体 CDN

旧式视频流媒体设备

某些旧版视频流媒体设备可能并不完全支持向 清单或媒体片段请求如果您的设备存在已知问题 处理 HTTP Cookie,将媒体 CDN 配置为使用查询参数 进行签名请求和双令牌交换。

在以下情况下,您将全权负责处理所有必要的同意和隐私权合规事宜 使用 Cookie 交换短时令牌。当媒体 CDN 设置为 配置为使用双令牌签名请求,Google 负责 长时令牌使用的 Cookie。

结算

如需详细了解 Secret Manager 请参阅价格

Secret 的媒体 CDN 提取会在内部缓存, 降低从 Secret Manager 提取 Secret 的速率。减少 同时也会显著降低 Secret Manager 会监控并向您收取费用。

如需详细了解媒体 CDN 中的 Secret 缓存,请参阅 密钥概览