许可证和策略
在获取许可证期间,客户端向 PlayReady 许可证服务器发送质询,其中包含有关用户设备的内容标头和信息。 PlayReady 许可证服务器收到质询后,服务器将分析质询并开始填充许可证响应。 响应将包括内容密钥 (CK) 最初用于加密与在许可证质询中发送 (KID) 密钥标识符或其中几个密钥标识符相对应的内容。 此外,许可证响应将返回 PlayReady 策略 (可播放内容的权限和限制) 。
PlayReady 策略描述与 PlayReady 内容相关的允许和/或所需的操作,以及对这些操作的限制,如与 PlayReady 内容关联的 PlayReady 许可证中所述。 PlayReady 策略在 PlayReady 合规性规则 (CR) 中定义。 服务提供商必须合并强制策略并选择要使用的可选策略,并将这些策略集成到 PlayReady 许可证服务器上的许可证处理程序中。 这些策略可以是权限(例如“播放”权限)或限制,例如“最低安全级别”、“输出保护级别”、“首次播放后过期”等。
请注意,许可证响应可能包含多个许可证。 每个许可证包含一个且只有一个内容密钥 {KID, CK} 和一组关联的策略。
当客户端从 PlayReady 许可证服务器收到许可证响应时,它必须能够分析内容密钥以及它收到的许可证中发送回的策略。 如果满足所有强制策略,PlayReady 客户端必须能够遵循许可证响应中发送的策略并播放内容;如果未满足任何强制策略,则停止播放。
注意
如果客户端支持 PlayReady 设备移植工具包 v3.0 及更高版本,则 PlayReady 许可证服务器不会提供需要复制、执行或读取权限的许可证。
有关 PlayReady 策略的详细信息,请参阅 PlayReady 合规性规则 和 PlayReady 合规性和可靠性规则的定义条款。
PlayReady 权限
PlayReady 合规性规则中列出了以下 PlayReady 权限:
- 右播放 (请参阅 CR 3.1) :客户端可以解密 PlayReady 音频/视频内容 (电影和音乐) 、呈现和传递到输出。
- 右执行 (请参阅 CR 4.1) :客户端 (应用程序) 解密 PlayReady 可执行内容的权限,并执行它。 PlayReady 3.0 及更高版本中不再受支持。
- 阅读右侧 (请参阅 CR 5.1) :客户端可以解密 PlayReady 文学内容 (电子书) ,然后显示它。 PlayReady 3.0 及更高版本中不再受支持。
权限限制和其他策略
PlayReady 合规性规则包含可能适用于许可证的权利修饰符 (扩展和限制) 的完整列表。 其中每个修饰符都具有多个属性:
- 操作 - 指定策略的操作 (例如,对 HDMI 输出) 使用 HDCP 加密。
- 可选 - 指定客户端是必须参与操作还是必须尝试 (操作,例如,未压缩数字视频内容 250 的输出控制,请参阅 CR 3.6.5) 。
- 必须理解 - 指定是否允许客户端绑定许可证并解密内容,即使它不了解策略。 适用于较低版本的客户端 (例如,PlayReady 2.X 客户端) 接收许可证,包括将来版本 (引入的 PlayReady 策略,例如 PlayReady 3.X 服务器,请参阅 CR 2.4) 。
- “尽力而为”-另一种方法,用于指定客户端是必须参与操作还是必须尝试将操作 (例如 Macrovision Best Effort,请参阅 CR 2.4) 。
以下部分列出了一些更常用的右修饰符。
绝对过期策略
一个常见的限制是绝对时间日期过期策略。 每个许可证可能包含绝对时间日期过期策略。 如果存在,则客户端必须停止绑定此许可证并解密内容(如果当前日期时间晚于该值)。
一个实际示例是客户端上的用户正在播放每月订阅服务中的内容。 此用户的服务的每月续订日是当月 15 日。 用户在 2017 年 11 月 2 日 (当月 2 日开始播放) 。 许可证服务器将在当月 15 日之前向用户授予权限,并包含设置为 2017 年 11 月 16 日上午 0:00 的过期策略。 每当用户支付下个月的订阅费用时,该服务都会颁发另一个许可证,并设置一个月后的到期日期。
根据定义,此策略是“必须理解”和“强制” (含义,而不是“尽最大努力) 策略”,因此绑定包含此策略的许可证的客户端必须:
- 有一个 PlayReady 受信任的时钟系统,以便有一个受信任的时间。 PlayReady 安全时钟或 PlayReady 反回滚时钟是 PlayReady 客户端的两种可接受的 PlayReady 受信任时钟系统形式。
- 设置此 PlayReady 受信任时钟。
- 能够分析和了解许可证中的过期策略。
- 将 PlayReady 受信任时钟系统中的当前时间与 Expiration 值进行比较。
- 如果当前时间超过 Expiration 值,则不绑定许可证。
注意
每当许可证服务器在许可证中设置绝对过期策略时,出于可靠性原因,Microsoft 强烈建议也设置开始日期策略。 有关更多详细信息 ,请参阅许可证策略的最佳做法 。
开始日期策略
另一个常见的限制是开始日期策略。 如果存在,则客户端不得绑定此许可证并开始解密内容,直到当前日期时间晚于该值。
对于要求仅在有限时间内使用内容的业务模型(例如在租赁方案中),需要结束日期来指示许可证过期的时间,并且无法再 (播放内容,例如,内容只能在 2018 年 5 月 15 日下午 5 点之前播放,) 。 这足以满足租赁方案。 但是,使用结束日期指定开始日期是时钟回滚攻击的自然阻挠。
根据定义,此策略是“必须理解”和“强制” (含义,而不是“尽最大努力) 策略”,因此绑定包含此策略的许可证的客户端必须:
- 有一个 PlayReady 受信任的时钟系统,以便有一个受信任的时间。 PlayReady 安全时钟或 PlayReady 反回滚时钟是 PlayReady 客户端的两种可接受的 PlayReady 受信任时钟系统形式。
- 设置此 PlayReady 受信任时钟。
- 能够分析和了解许可证中的开始日期策略。
- 将 PlayReady 受信任时钟系统中的当前时间与开始日期值进行比较。
- 如果当前时间早于“开始时间”值,则不绑定许可证。
有关详细信息,请参阅 将 BeginDate 与 EndDate 配合使用
首次播放后过期策略
除了可以根据开始时间和结束时间播放内容的方案外,还有一个模型指定在首次播放内容后可以播放内容的时长。 首次播放策略后过期(如果存在)指示如果内容首次播放后的当前秒数与此策略中的值匹配,则客户端必须停止绑定此许可证并解密内容。
注意
对于购买为拥有的内容,用户希望内容在其设备上无限期播放。 服务很可能为此内容颁发许可证,而根本不会过期。 但是,由于用户经常更改设备,并且每台设备可能会在运行重新个性化时 (更改其 PlayReady 标识,或者在) 完全重新安装设备时,服务应随时准备好重新颁发以前交付给用户或设备的已购买内容的许可证。
安全级别策略
PlayReady 客户端都在其单元级客户端证书中设置了一个名为“客户端安全级别”的属性。 当许可证服务器向客户端发送许可证时,它会在许可证中包含 MinimumSecurityLevel 策略,并将其值设置为 150、2000 或 3000。 此值意味着可以绑定许可证,并且只能在具有此安全级别或更高级别的客户端上解密内容。
有关该策略的详细信息,请参阅 客户端安全级别 页。
未压缩数字视频内容策略的输出控制
服务可能希望允许客户端解密和呈现内容,但限制其流向外部输出的方式,如 HDMI 输出。 该服务可能想要执行此操作,因为可能会有记录器插入 HDMI 电缆,能够很好地复制原始内容。
PlayReady 具有各种用于模拟、数字和无线输出的输出保护控件。 最常见的一种是 HDMI 输出的 HDCP 策略 (请参阅 CR 3.6.5) 。 根据许可证服务器为此策略设置的值(可能是 100、250、270、300 (请参阅 CR 6.7) ),客户端必须尝试参与,或者在播放这些输出时必须在 HDMI 输出上使用 HDCP。
例如,如果许可证包含未压缩数字视频内容的输出控件设置为 300 (也称为数字视频 OPL 300) ,则客户端在播放内容时必须对 HDMI 输出使用 HDCP。 如果客户端无法在 HDMI 输出上 (任何版本) 使用 HDCP,则有两个选项:
- 播放内容并阻止此输出。 例如,在内部屏幕或模拟输出上播放,但阻止 HDMI 输出上的信号。
- 只是不播放内容。 如果设备具有内部屏幕、模拟输出和 HDMI 输出,则仅仅因为设备无法在 HDMI 输出上使用 HDCP 而阻止所有输出上的播放,这肯定会是用户体验欠佳。 用户可能会问“为什么它不播放模拟输出,尽管限制仅适用于 HDMI 输出?”。 但是,从 PlayReady 合规性的角度来看,此选项是可接受的,因为它满足 CR&RR。
请注意,从 HDCP 版本 2.1 开始支持 HDCP 类型 1,因此在仅支持 HDCP 2.0 或 1.4 的设备上将无法使用 HDCP 类型 1。
其他策略
除了本页所述的策略之外,PlayReady 还支持数十种(如果不是数百种)策略。 有关受支持策略的完整定义,请阅读 PlayReady 产品的合规性规则 。
下表包含合规性规则和相应测试服务器策略中定义的输出保护的完整映射。
策略 | CR 部分 |
---|---|
压缩数字音频内容的输出控制 | CRs 部分 3.6.2 |
显式数字音频输出限制 | CRs 部分 3.6.2.8 |
未压缩数字音频内容的输出控件 | CRs 部分 3.6.3 |
显式数字音频输出限制 | CRs 部分 3.6.3.8 |
压缩数字视频内容的输出控制 | CRs 部分 3.6.4 |
未压缩数字视频内容的输出控件 | CRs 部分 3.6.5 |
最大解码分辨率 | CRs 部分 3.6.5.7.1 |
HDCP 类型限制 | CRs 部分 3.6.5.7.2 |
模拟电视输出的输出控制 | CRs 部分 3.6.6 |
模拟电视输出的扩展输出控件 CGMS-A | CRs 部分 3.6.7.1 |
模拟电视输出 AGCCS 的扩展输出控件 | CRs 部分 3.6.7.2 |
模拟计算机监视器输出的输出控制 | CRs 部分 3.6.8 |
模拟分量视频输出的输出控制 | CRs 部分 3.6.9 |
仅数字视频内容 | CRs 部分 3.6.11 |
传递到未知输出 | CRs 部分 3.9.1 |
将受约束的分辨率传递给未知输出 | CRs 部分 3.9.2 |
XMR 规范
PlayReady 许可公司可以访问更全面的文档包,其中包括 PlayReady 可扩展媒体权限 (XMR) 规范 ,该规范准确描述了其中每个策略及其在许可证中的编码方式。