PlayReady 是一种 DRM 技术,由 Microsoft 开发,用于保护 Windows、Xbox 和其他支持通用执行环境 UWP 的平台上的内容。该系统使用三级安全模型 SL(安全级别),从 SL150 到 SL3000,其中最高级别需要通过 TPM 进行硬件加密。根据 Microsoft Docs(2025)文档,PlayReady 4.0 支持 4K HDR 加密和扩展的内容使用分析。
要点
PlayReady 是 Microsoft 于 2007 年开发的一种数字版权管理(DRM)技术,用于保护媒体内容和其他数字资产。它取代了 WMDRM(Windows Media DRM)技术,并成为 Windows Media Center、Xbox Video 和 Microsoft Silverlight 的保护标准。
PlayReady 的主要优势 — 统一的许可系统适用于不同类型的内容:视频、音频、电子书、游戏和文档。该技术支持订阅(Subscription)、租赁(Rental)和购买(Purchase)的分发模式,使其对媒体服务和教育平台具有吸引力。
PlayReady 架构由三个关键组件组成:客户端运行时 PlayReady Device Porting Kit、许可证服务器 PlayReady License Server 和内容打包工具。PlayReady 运行时嵌入在应用程序或播放器中,负责在设备上解密内容。
许可证服务器根据内容提供商设定的策略生成许可密钥。内容打包器使用通用加密(CENC)标准加密媒体文件,并嵌入元数据以关联到特定许可证。
保护过程 PlayReady 从打包阶段开始,媒体内容使用对称密钥加密,然后通过许可证服务器的公钥进行保护。打包后的内容放置在 CDN 上,可供下载或流式传输。
当用户请求受保护的内容时,播放器向许可证服务器发起许可证请求。服务器验证用户的凭据、其访问权限(订阅、租赁、购买)并颁发包含解密密钥的许可证。
PlayReady 使用基于 SOAP 或 JSON 的交换协议,其中许可证请求包含内容标识符(Content ID)、设备标识符和应用程序签名。服务器以 XML 格式返回许可证,并使用设备的公钥加密。
许可证包含内容密钥(CEK),包裹在设备密钥(Device Key)中,以及一组策略。策略可以限制播放时间、视频质量、设备数量和输出类型(HDMI、复合)。
var mediaProtectionManager = new MediaProtectionManager();
var properties = new PropertySet();
properties["Windows.Media.Protection.MediaProtectionSystemId"] =
"9a22f0a1-9e6c-4f2d-bc8e-4d8d5a2c3f1e";
mediaProtectionManager.SetProtectionScheme(
MediaProtectionSystemType.PlayReady,
properties
);
var mediaSource = MediaSource.CreateFromUri(
new Uri(contentUrl)
);
mediaPlayer.Play(mediaSource);
PlayReady 3.0,于 2014 年发布,引入了通过 TPM 2.0 进行硬件加密的支持和用于 4K 内容的 SL3000 安全级别。该版本通过设备绑定(Device Binding)机制增加了将许可证绑定到特定设备的能力,阻止了许可证在设备之间的传输。
PlayReady 4.0,于 2020 年宣布,通过三项关键创新扩展了功能:支持扩展的内容使用遥测、改进的内容提供商分析以及移动设备上的能耗优化。
| 版本 | 年份 | 关键功能 | 最大 SL |
|---|---|---|---|
| PlayReady 2.0 | 2011 | 软件加密,最高 1080p | SL2000 |
| PlayReady 3.0 | 2014 | 硬件加密,4K,设备绑定 | SL3000 |
| PlayReady 4.0 | 2020 | 遥测,能效,HDR | SL3000 |
安全级别 PlayReady 确定执行加密操作的方式和内容的最大分辨率。SL150 是完全软件实现,SL2000 需要部分硬件支持,SL3000 是基于 TPM 的完全硬件加密。
具有 SL3000 的设备可以播放 4K HDR 内容,并且解密密钥永远不会离开 TPM 的保护区域。SL2000 限制为 1080p,SL150 限制为 720p,仅适用于没有硬件保护的桌面浏览器。
许可系统 PlayReady 是 DRM 解决方案中最灵活的之一。它支持不同的分发模式:有时间限制的租赁、无限制访问的购买、定期更新密钥的订阅以及有限持续时间的预览。
每个许可证包含许可证服务器应用于内容密钥的一组策略。策略可以包括:最大视频分辨率、受保护输出类型(4K 必须使用 HDCP)、激活次数、时间限制(绝对和相对)。
public async Task AcquireLicenseAsync(MediaProtectionManager manager)
{
var serviceRequest = new PlayReadyLicenseAcquisitionServiceRequest
{
ContentHeader = new PlayReadyContentHeader(
contentKeyId,
contentUrl,
licenseServerUrl,
null
),
DomainServiceId = domainId
};
var result = await serviceRequest.BeginServiceRequest();
if (result == PlayReadyLicenseAcquisitionResult.Success)
{
HandleLicenseAcquired(serviceRequest.GetLicenses());
}
}
PlayReady 受支持在广泛的平台上,包括 Windows(UWP、Win32)、Xbox、Android(通过 PlayReady Porting Kit)、iOS(有限)和 Smart TV(Samsung Tizen、LG webOS)。每个平台都有自己的运行时和 API 实现。
在 Windows 上,集成通过 MediaProtectionManager 和 Windows.Media.Protection.PlayReady 命名空间中的 PlayReady API 完成。在 Android 上,使用 PlayReady Porting Kit,通过 NDK 嵌入到应用程序中,并提供用于处理 DRM 的 Java 包装器。
在 UWP 环境中,应用程序创建 MediaProtectionManager 实例,将 PlayReady 注册为保护系统,并配置许可事件处理程序。如果 MediaProtectionManager 配置正确,MediaPlayerElement 播放器会自动处理受保护的流。
许可证服务器 PlayReady 可以部署在 Azure 基础设施上,也可以部署在自有服务器上。Microsoft 在 Azure Media Services 中提供现成的 PlayReady License Server 解决方案,简化了云项目的集成。
在 Android 上,PlayReady 通过 NDK 库 libplayready.so 集成,该库提供 C++ API,并包装在 Java 类中。ExoPlayer 像 Widevine 一样,通过标准的 MediaDrm API 使用 PlayReady UUID 支持 PlayReady。
PlayReady 用于 MediaDrm 的 UUID — 9a22f0a1-9e6c-4f2d-bc8e-4d8d5a2c3f1e。在使用 PlayReady 初始化 ExoPlayer 时,配置与 Widevine 类似:指定许可证服务器 URL、身份验证标头和 DRM 类型。
要确保 PlayReady 在 Android 上正常运行,需要安装 PlayReady 运行时,该运行时通常预装在 Samsung、LG 和其他使用 PlayReady Porting Kit 品牌的设备上。在没有预装运行时的设备上,应用程序必须在 APK 中包含 libplayready.so 库。
PlayReady 是 Smart TV 平台上的主导 DRM,包括 Samsung Tizen 和 LG webOS。在这些平台上,内置运行时 PlayReady 在电视芯片组级别提供硬件保护,无需额外设置即可播放 4K HDR 内容。
在 Smart TV 上的集成通过针对特定 SoC(MediaTek、Realtek、Amlogic)的 PlayReady Device Porting Kit 完成。电视制造商在固件阶段预装 PlayReady 运行时,应用程序通过标准 EME API 在 Web 播放器或本机应用程序中启动它。
对于内容提供商来说,重要的是要考虑并非所有 Smart TV 都支持最高的 SL3000 级别 — 较旧的型号可能受限于 SL2000 和 1080p 质量。通过 HDMI 输出 4K 内容时,HDCP 兼容性也是强制性的。
PlayReady 4.0 引入了扩展的遥测技术,使内容提供商能够获得有关内容使用的详细信息:观看时间、未经授权的访问尝试、设备类型、运行时版本。遥测数据通过安全通道收集,并使用数字签名进行签名以防止伪造。
PlayReady 4.0 中的撤销机制允许内容提供商实时阻止受损设备或运行时版本。撤销列表通过许可证服务器分发,并在每次许可证请求时自动更新,确保对漏洞的快速响应。
常见问题
PlayReady — Microsoft 用于保护数字内容的 DRM 解决方案。该技术支持硬件和软件加密、灵活的许可策略,并在 Windows、Xbox、Android 和 Smart TV 上运行。
PlayReady 的主要版本:3.0(2014 年)具有硬件加密和 4K 支持,4.0(2020 年)具有遥测和能效。较新版本与为早期版本打包的内容向后兼容。
SL150 — 软件加密(720p),SL2000 — 部分硬件(1080p),SL3000 — 通过 TPM 的完全硬件加密(4K HDR)。安全级别确定最高质量和密钥存储方式。
是的,PlayReady 在 iOS 上受支持,但有限 — 通过适用于 iOS 的 PlayReady Porting Kit。然而,在 Apple 设备上,首选 DRM 仍然是 FairPlay,因为它完全集成到 Secure Enclave 硬件架构中。
PlayReady 来自 Microsoft,支持 Windows 和 Xbox,使用 TPM 进行硬件加密,并提供扩展的遥测。来自 Google 的 Widevine 面向 Android 和 Chrome,使用 TEE,并且不需要开发人员支付许可证费用。
总结
我们将开发一款交钥匙移动应用程序
IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。