1.简介
本页旨在为 PlayReady 许可方提供分步指南,以助其寻求 PlayReady 中间产品或最终产品的 SL3000 合规性。 本文档概述了中间和最终产品的端到端过程,并详细介绍了 SL3000 一致性中间产品的要求。
此页面包含两个主要部分:
SL3000 设计流程部分详细说明了 PlayReady 许可方在为中间产品或 PlayReady 最终产品申请 SL3000 合规性时需遵循的端到端流程。
SL3000 要求部分详细介绍 SL3000 符合性中间产品的要求。 IPL 验证这些要求并将验证结果以“清单”的形式记录给 FPL 是重要且必要的,因为这些要求的性质:它们深嵌于硬件和 TEE 中,而 FPL 可能并不总是有能力自行验证这些要求。 提供的测试报告或清单是 IPL 使用的工具,因此 FCL 知道哪些测试已经运行和通过,并且可以自信地执行补充测试,以验证最终产品的整个符合性。
没有这样的部分详细说明最终产品的要求,因为 FCL 对最终产品进行最终自我评估,他们分发给最终用户,并且不需要将其测试传达给任何人。
2. SL3000 设计过程概述
PlayReady 安全级别是对 PlayReady 产品的稳健性进行公开且广泛理解的定义。 虽然产品可能超出特定 PlayReady 安全级别的稳定性要求,但它会建立产品必须满足的最低标准,以便使用需要定义的保护级别的内容。 2015 年 4 月更新的 PlayReady 合规性和可靠性规则引入了 PlayReady 安全级别 3000 (SL3000),以及 PlayReady TEE 实现的要求,以满足 PlayReady 增强内容保护的硬件安全要求。 PlayReady SL3000 旨在满足各种内容制作人的安全标准,包括高级好莱坞内容。
PlayReady SL3000 Self-Assessment 旨在帮助 PlayReady 许可者获取 UHD(4K)、其他类型的增强内容(例如 HDR、3D 等)和新的增强内容交付模型(例如早期窗口)。
PlayReady 产品的安全性在很大程度上取决于 PlayReady 实现的可靠性。 中间产品必须进行安全审查,包括硬件和固件,才能获得 SL3000 资格。 安全评审基于本文档第 3 部分概述的 SL3000 要求。 必须记录此安全评审,并将文档传达给基于此中间产品构建最终产品的公司。 此安全评审可以由第三方测试室执行,也可以由实施者本身(IPL)进行。
PlayReady 最终产品不需要由第三方测试室审查,才能获得 SL3000 合规性资格。 但是,希望附带 SL3000 证书的最终产品只有在满足 SL3000 合规最终产品的要求时才能这样做。 这要求最终产品利用 SL3000 符合性中间产品,并符合 SL3000 合规性和可靠性规则。
3. 中级产品的 SL3000 规格要求
PlayReady 产品的安全性在很大程度上取决于 PlayReady 实现的可靠性。 因此,Microsoft在 PlayReady 合规性和可靠性规则中定义了所有 PlayReady 中间产品必须满足或超过的要求,然后才能将其分发到最终产品许可者。 以下清单是一种供 IPL 记录其产品在分发前所做安全审查的工具。 必须将此安全评审文档传达给基于此中间产品构建最终产品的公司。
要求分为 5 个类别:
- CA:内容可访问性
- CPR:内容保护可靠性
- PKR:PlayReady 设备移植套件稳定性
- TEER:PlayReady 受信任执行环境 (TEE) 的稳定性
- TEEC:PlayReady 受信任执行环境 (TEE) 合规性
SL3000 中间产品测试报告规范:检查列表
要求 | 基础规则 | 标题 | 要求 | 测试过程(s) 概述和资源使用情况 | 结果 |
---|---|---|---|---|---|
CA-1.1 | RR 2.2.1 | 产品设计 - TEE | PlayReady 产品已明确设计,因此它使用 PlayReady 受信任的执行环境 (TEE)。 | 体系结构评审和代码评审 | - |
CA-1.2 | RR 2.2.1 | 产品设计 - TEE | PlayReady 产品仅使用由 PlayReady TEE 实现的内容保护函数。 | 体系结构评审和代码评审 | - |
CA-2.1 | RR 2.2.2.1 | 解密的内容 | 解密的 A/V 内容不得可读或放置在 PlayReady 受信任执行环境之外。 解密的 A/V 内容不能用于在 PlayReady TEE 外部运行的代码。 | 体系结构评审和代码评审。 使用 XYZ 工具进行渗透测试 | - |
CA-2.2 | RR 2.2.2.2 | 应用程序机密 | 应用程序机密不得在连续的明文内存中使用,除非用于解密内容和/或密钥材料。 应用程序机密不得可用于在 PlayReady 受信任执行环境外部运行的代码。 | 体系结构评审和代码评审 | - |
CA-3 | RR 2.2.3 | 视频传输 | PlayReady 产品必须清晰地设计,以确保在传输已解密的压缩或未压缩的 A/V 内容的视频部分时,此类数据使用广泛可用工具、专用工具或专业软件工具能够抵御未经授权的拦截,并且难以使用专业硬件工具截取。 适用于专业硬件工具的难度级别是如此高,以至于典型的消费者无法使用专业硬件工具,无论是否有说明,以拦截此类数据而不会面临严重损害产品或人身伤害的风险。 | 体系结构评审和代码评审 | - |
CPR-1.1 | RR 3.1.2 | 设备机密、协议机密和应用程序机密 | PlayReady 健壮性规则第 1.2.1 节中所设定的内容保护功能和特性(发现、揭示和/或未经授权使用设备机密、协议机密和/或应用程序机密):不能使用广泛可用的工具、专用工具、专业软件工具或在 PlayReady 受信任执行环境外运行的任何软件来击败或规避。 | 体系结构评审和代码评审。 使用 XYZ 工具进行渗透测试 | - |
CPR-1.2 | RR 3.1.2 | 设备机密、协议机密和应用程序机密 | 已实现内容保护功能及特性,具体内容详见 PlayReady 稳定性规则第 1.2.1 节(未经授权发现、披露和/或使用设备密钥、协议密钥和/或应用程序密钥):只能使用专业硬件工具才能轻易地被破坏或规避。 | 体系结构评审和代码评审 | - |
CPR-2.1 | RR 3.2 | 内容密钥、许可证完整性密钥和中间密钥 | 在第 1.2.2 节中规定的内容保护功能和特征(根据 PlayReady 可靠性规则,在未授权的情况下发现、揭露和/或使用内容密钥、许可证完整性密钥和/或中间密钥)不会被广泛可用工具、专用工具、专业软件工具或任何在 PlayReady 受信任执行环境之外运行的软件所击败或规避。 | 体系结构评审和代码评审 | - |
CPR-2.2 | RR 3.2 | 内容密钥、许可证完整性密钥和中间密钥 | 已实现内容保护功能及特性,具体内容详见 PlayReady 稳定性规则第 1.2.2 节(未经授权发现、披露和/或使用内容密钥、许可证完整性密钥和/或中间密钥):只能使用专业硬件工具才能轻易地被破坏或规避。 | 体系结构评审和代码评审。 使用 XYZ 工具进行渗透测试 | - |
CPR-3.1 | RR 3.3.2 | 根公钥 | 在 PlayReady 可靠性规则的第 1.3.1 节(无需授权的情况下替换根公钥)中设置的内容保护函数和特征:不能使用广泛可用工具、专用工具、专业软件工具或任何在 PlayReady 受信任执行环境外部运行的软件被击败或规避。 | 体系结构评审和代码评审 | - |
CPR-3.2 | RR 3.3.2 | 根公钥 | 已实现内容保护功能及特性,具体内容详见 PlayReady 稳定性规则第 1.3.1 节(未经授权替换根公钥):只能使用专业硬件工具才能轻易地被破坏或规避。 | 等等 | - |
CPR-4.1 | RR 3.4.1 | 机密信息 | 已实现内容保护功能及特性,具体内容详见 PlayReady 稳定性规则第 1.4 节(保密)中所述,且在适用范围内:无法通过广泛可用的工具进行破解或绕过。 | 等等 | - |
CPR-4.2 | RR 3.4.1 | 机密信息 | 在适用的情况下,实施 PlayReady 可靠性规则第 1.4 节(保密)中提出的内容保护功能和特征:只能用专用工具、专业软件工具或专业硬件工具以困难的方式来破解或绕过。 | 等等 | - |
PKR-1.1 | RR 5.2.2.1 | 防回滚时钟 - 最后已知良好时间 | 实施了 PlayReady 稳定性规则第 5.1.2.8 节(最后已知良好日期和时间,适用于实施反回滚时钟的 PlayReady 最终产品)中规定的信任值和特性:无法在未经授权的情况下使用广泛可用的工具或专用工具进行修改。 | 等等 | - |
PKR-1.2 | RR 5.2.2.1 | 防回滚时钟 - 最后已知良好时间 | 实施了 PlayReady 稳定性规则第 5.1.2.8 节(最后已知良好日期和时间,适用于实施反回滚时钟的 PlayReady 最终产品)中规定的信任值和特性:未经授权,仅能通过专业软件工具或专业硬件工具难以修改。 | 等等 | - |
PKR-2.1 | RR 5.2.4 | 验证状态和计时器状态 | 在 PlayReady 可靠性规则的第 5.1.2.5 节(验证状态)和第 5.1.2.6 节(计时器状态)中设置的“信任值”和特征:不能在没有使用广泛可用工具的授权的情况下修改。 | 等等 | - |
PKR-2.2 | RR 5.2.4 | 验证状态和计时器状态 | 已实现 PlayReady 稳定性规则第 5.1.2.5 节(验证状态)和第 5.1.2.6 节(计时器状态)中规定的信任值和特性:未经授权,仅能通过专用工具、专业软件工具或专业硬件工具难以修改。 | 等等 | - |
TEER-1.1 | RR 7.2.1 | 安全时钟 - 安全时钟状态 | 在 PlayReady 可靠性规则的第 7.1.2.3 节(安全时钟状态、实施安全时钟的 PlayReady 最终产品)中设置的内容保护函数和特征:不能在没有授权的情况下使用广泛可用的工具、专用工具、专业软件工具或任何在受信任执行环境外部运行的软件进行修改。 | 等等 | - |
TEER-1.2 | RR 7.2.1 | 安全时钟 - 安全时钟状态 | 已实现内容保护功能及特性,具体内容详见 PlayReady 稳定性规则第 7.1.2.3 节(安全时钟状态,适用于实现安全时钟的 PlayReady 最终产品):未经授权,仅能通过专业硬件工具难以修改。 适用于专业硬件工具的难度级别应该使普通消费者无法使用专业硬件工具(有或没有说明情况下)在没有授权的情况下修改内容保护功能以及第 7.1.2.3 节(安全时钟状态、用于实施安全时钟的 PlayReady 受信任执行环境实现)中设置的特征,否则可能导致产品严重损坏或人身伤害。 | 等等 | - |
TEER-2.1 | RR 7.2.2 | 设备机密、吊销数据、计时器状态、协议机密、工作集和输出保护状态 | 实施了 PlayReady 可靠性规则中第 7.1.2.1 节(设备机密)、第 7.1.2.4 节(吊销数据)、第 7.1.2.5 节(计时器状态,适用于实现安全时钟的 PlayReady 产品)、第 7.1.2.6 节(协议机密)、第 7.1.2.8 节(工作集)以及第 7.1.2.9 节(输出保护状态)中规定的信任值和特征:这些内容不能在未经授权的情况下,通过广泛可用工具、专用工具、专业软件工具或任何在受信任执行环境外运行的软件被修改。 | 等等 | - |
TEER-2.2 | RR 7.2.2 | 设备机密、吊销数据、计时器状态、协议机密、工作集和输出保护状态 | 实施了第 7.1.2.1 节(设备密钥)、第 7.1.2.4 节(撤销数据)、第 7.1.2.5 节(计时器状态,适用于实现安全时钟的 PlayReady 产品)、第 7.1.2.6 节(协议密钥)、第 7.1.2.8 节(工作集)和第 7.1.2.9 节(输出保护状态)中规定的信任值和特性:仅能通过专业硬件工具且在未经授权的情况下难以修改。 适用于专业硬件工具的难度级别是这样的:典型的消费者,无论是否有说明书,都不应能够在未经授权的情况下,使用专业硬件工具修改第 7.1.2.1 节(设备机密)、第 7.1.2.4 节(吊销数据)、第 7.1.2.5 节(用于实现安全时钟的 PlayReady 产品的计时器状态)、第 7.1.2.6 节(协议机密)、第 7.1.2.8 节(工作集)和第 7.1.2.9 节(输出保护状态)的信任值和特性,否则,可能会有严重损坏产品或人身伤害的风险。 | 等等 | - |
TEER-3.1 | RR 7.2.3 | 序列号 | 在 PlayReady 可靠性规则的第 7.1.2.2 节(序列号)中实现的信任值和特征:不能使用广泛可用的工具、专用工具、专业软件工具或受信任的执行环境外部运行的任何软件进行专门设置。 | 等等 | - |
TEER-3.2 | RR 7.2.3 | 序列号 | 实施了 PlayReady 稳定性规则第 7.1.2.2 节(序列号)中规定的信任值和特性:这些值和特性只能通过专业硬件工具才能难以实现的特定设置。 专业硬件工具的难度级别如此之高,以至于普通消费者即使有或没有说明书,也不应能够使用专业硬件工具来具体设置第 7.1.2.2 节(序列号)中规定的信任值和特性,以免对产品造成严重损坏或造成人身伤害。 | 等等 | - |
TEER-4.1 | RR 7.2.4 | 安全代码 | 在 PlayReady 可靠性规则第 7.1.2.7 节(安全代码)中设定的信任值和特征:未经授权,无法使用广泛可用的工具、专用工具、专业软件工具或任何在受信任执行环境之外运行的软件对此进行修改。 | 等等 | - |
TEER-4.2 | RR 7.2.4 | 安全代码 | 在 PlayReady 可靠性规则的第 7.1.2.7 节(安全代码)中设置的“信任值”和特征:由于权力状态的转换(无论是已授权还是未经授权的)而无法在没有授权的情况下修改。 | 等等 | - |
TEER-4.3 | RR 7.2.4 | 安全代码 | 已实现 PlayReady 可靠性规则第 7.1.2.7 节(安全代码)中设置的信任值和特征:由于缺少任何必需进程(包括但不限于安全启动进程),无法在没有授权的情况下修改。 | 等等 | - |
TEER-4.4 | RR 7.2.4 | 安全代码 | 已实施 PlayReady 稳定性规则第 7.1.2.7 节(安全代码)中规定的信任值和特性:未经授权,仅能通过专业硬件工具难以修改。 适用于专业硬件工具的难度级别是,典型的消费者不应能够使用专业硬件工具(无论有无说明),在未经授权的情况下修改第 7.1.2.7 节(安全代码)中所述的信任值和特征,否则会有严重损害产品或造成人身伤害的风险。 | 等等 | - |
TEER-5.1 | RR 7.3.1 | 安全启动过程 | 已实施 PlayReady 稳定性规则第 7.1.3.1 节(安全启动流程)中规定的必要流程,包括但不限于其使用的数据、密钥及流程流:未经授权不得使用广泛可用的工具、专用工具、专业软件工具或任何在受信任执行环境外运行的软件进行修改。 | 等等 | - |
TEER-5.2 | RR 7.3.1 | 安全启动过程 | 已实施 PlayReady 稳定性规则第 7.1.3.1 节(安全启动流程)中规定的必要流程,包括但不限于其使用的数据、密钥及流程流:未经授权,仅能通过专业硬件工具难以修改。 适用于专业硬件工具的难度级别是,典型的消费者不应能够使用专业硬件工具(无论没有说明),在没有授权的情况下修改第 7.1.1.3.1 节(安全启动过程)中所述的信任值和特征,而不会对产品或人身伤害造成严重损害 | 等等 | - |
TEER-6.1 | RR 7.3.2 | 安全更新过程 | 在 PlayReady 可靠性规则的第 7.1.3.2 节(安全更新过程)中实施的必需进程:不能在没有授权的情况下使用广泛可用的工具、专用工具、专业软件工具或任何在受信任执行环境外部运行的软件进行修改。 | 等等 | - |
TEER-6.2 | RR 7.3.2 | 安全更新过程 | 已实施 PlayReady 稳定性规则第 7.1.3.2 节(安全更新流程)中规定的必要流程:在执行该流程时,不得回滚至任何先前状态,若回滚会降低该流程或相关信任值的稳定性水平。 | 等等 | - |
TEER-6.3 | RR 7.3.2 | 安全更新过程 | 已实施 PlayReady 稳定性规则第 7.1.3.2 节(安全更新流程)中规定的必要流程:未经授权,仅能通过专业硬件工具难以修改。 适用于专业硬件工具的难度级别是,典型的消费者,无论有无说明书,都不应能够使用专业硬件工具,在没有授权的情况下修改第 7.1.3.2 节(安全更新过程)中规定的信任值和特性,因为这样会有严重损坏产品或者造成人身伤害的风险。 | 等等 | - |
TEER-7.1 | RR 7.4.1 | 远程预配 | 在可靠性规则的第 7.1.4.1 节(远程预配)中实现的可选进程:不能在没有授权的情况下使用广泛可用的工具、专用工具、专业软件工具或任何在受信任执行环境外部运行的软件进行修改。 | 等等 | - |
TEER-7.2 | RR 7.4.1 | 远程预配 | 已实施稳定性规则第 7.1.4.1 节(远程配置)中规定的可选流程:未经授权,仅能通过专业硬件工具难以修改。 适用于专业硬件工具的难度级别是,典型的消费者不应能够使用专业硬件工具(无论没有说明),在未经授权的情况下修改第 7.1.1.4.1 节(远程预配)中所述的信任值和特征,而不会对产品或人身伤害造成严重损害。 | 等等 | - |
TEER-7.3 | RR 7.4.1 | 远程预配 | 在可靠性规则的第 7.1.1.4.1 节(远程预配)中实施的可选过程:除非此类机密对设备是唯一的,并且符合第 7.2.2 节中的要求,否则无法利用设备机密来证明真实性。 | 等等 | - |
TEEC-1.1 | CR 19.2.1 | 硬件标识 | PlayReady 受信任的执行环境 (TEE) 提供唯一的硬件标识符。 | 等等 | - |
TEEC-1.2 | CR 19.2.2 | 硬件标识 | PlayReady TEE 的硬件标识符在设备重启时永久存在。 | 等等 | - |
TEEC-1.3 | CR 19.2.2 | 硬件标识 | PlayReady TEE 的硬件标识符在设备固件更新中持久存在。 | 等等 | - |
TEEC-2.1 | CR 19.3.1 | 接口定义 | PlayReady 受信任执行环境接口(PRiTEE)的所有函数已在 PlayReady TEE 中实现。 | 等等 | - |
TEEC-2.2 | CR 19.3.1 | 接口定义 | 对于在 Microsoft 实现中被标记为需要替换的任何功能,均已提供了一个安全的替换实现。 | 等等 | - |
TEEC-2.3 | CR 19.3.3 | 接口定义 | PlayReady TEE 未更改 PRiTEE 定义的方法参数的结构或内容。 | 等等 | - |
TEEC-3.1 | CR 19.3.2 | 密钥材料 | PlayReady 产品的 TEE 为每个客户端提供唯一的对称密钥。 | 等等 | - |
TEEC-3.2 | CR 19.3.2 | 关键材料。 | PlayReady 产品的对称密钥仅可供 PlayReady TEE 中运行的代码访问。 | 等等 | - |
TEEC-4 | CR 19.4.1 | 所需的保护策略 | PlayReady TEE 已实现输出控件,如 PlayReady 合规性规则的第 3.6 节(输出控件)中所述。 | 等等 | - |
TEEC-5.1 | CR 19.5.1 | 输出保护要求 | PlayReady TEE 支持 PlayReady 合规性规则第 3.6 节(输出控件)中找到的所有输出控制要求。 | 等等 | - |
TEEC-5.2 | CR 19.5.1 | 输出保护要求 | 无论解释的任何许可证的最低许可证安全级别如何,所有输出保护要求都会在 PlayReady TEE 中强制执行。 | 等等 | - |
TEEC-6.1 | CR 19.6.2 | 安全时钟 | 在 PlayReady TEE 中实现的安全时钟在重置时不提供有效时间。 | 等等 | - |
TEEC-6.2 | CR 19.6.2 | 安全时钟 | 只能从 PlayReady TEE 中设置安全时钟。 | 等等 | - |
TEEC-6.3 | CR 19.6.2 | 安全时钟 | 可以定期设置安全时钟。 | 等等 | - |
TEEC-6.4 | CR 19.6.3 | 安全时钟 | PlayReady TEE 报告支持安全时钟,并利用该安全时钟强制执行许可证过期。 | 等等 | - |
TEEC-7 | CR 19.8.1 | 密钥历史记录 | 更新或更改密钥后,PlayReady TEE 能够恢复所有以前的密钥以解密存储的内容。 | 等等 | - |