SPEKEAPIv1--IF 规范的自定义和约束 DASH - 安全打包器和编码器密钥交换API规范

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

SPEKEAPIv1--IF 规范的自定义和约束 DASH

DASH-IF CPIX 规范 https://dashif.org/docs/ DASH-IF-CPIX-v2-0.pdf 支持多种用例和拓扑。该SPEKEAPI规范符合规CPIX范,但有以下自定义和约束:

  • SPEKE 遵循 Encryptor Consumer 工作流。

  • 对于加密的内容密钥,SPEKE应用以下限制:

    • SPEKE不支持请求或响应负载的数字签名验证 (XMLDSIG)。

    • SPEKE需要RSA基于 2048 的证书。

  • 对于轮换密钥工作流程,SPEKE需要ContentKeyUsageRule筛选器KeyPeriodFilter。SPEKE忽略所有其他ContentKeyUsageRule设置。

  • SPEKE 会忽略 UpdateHistoryItemList 功能。如果响应中存在该列表,则将其SPEKE忽略。

  • SPEKE支持密钥轮换。SPEKE仅使用 `ContentKeyPeriod@index 来跟踪密钥时段。

  • 为了支持 MSS PlayReady,请在DRMSystem标签下SPEKE使用自定义参数SPEKE:ProtectionHeader

  • 对于HLS打包,如果响应中存在,则它必须包含要添加到HLS播放列表EXT-X-KEY标签URI参数中的完整数据,无需进一步的信号传输。URIExtXKey

  • 对于HLS播放列表,在DRMSystem标签下方,SPEKE提供了可选的自定义参数speke:KeyFormatVersions,对于EXT-X-KEY标签speke:KeyFormat和参数的值,则KEYFORMAT提供了可选的自定义KEYFORMATVERSIONS参数。

    除非操作员明确指定,否则HLS初始化向量 (IV) 始终遵循分段编号。

  • 当请求密钥时,加密程序可能会在 ContentKey 元素上使用可选的 @explicitIV 属性。密钥提供程序可以使用 @explicitIV 来响应 IV,即使该属性未包含在请求中。

  • 加密程序创建密钥标识符 (KID),这对于任何给定的内容 ID 和密钥周期保持不变。密钥提供程序在其对请求文档的响应中包含 KID

  • 密钥提供程序可能包含 Speke-User-Agent 响应标头的值以确定本身用于调试目的。

  • SPEKE目前不支持每个内容有多个曲目或按键。

    SPEKE兼容的加密器充当客户端,并将POST操作发送到密钥提供程序端点。加密程序可能会发送定期 heartbeat 请求,以确保加密程序和密钥提供程序终端节点之间的连接正常。