PlayReady — это технология DRM, разработанная Microsoft для защиты контента на Windows, Xbox и других платформах, поддерживающих универсальную среду выполнения UWP. Система использует трехуровневую модель безопасности SL (Security Level) от SL150 до SL3000, где высший уровень требует аппаратного шифрования через TPM. Согласно документации Microsoft Docs (2025), PlayReady 4.0 поддерживает шифрование 4K HDR и расширенную аналитику использования контента.
Главное
PlayReady — это технология управления цифровыми правами (DRM), разработанная Microsoft в 2007 году для защиты медиаконтента и других цифровых активов. Она пришла на смену технологии WMDRM (Windows Media DRM) и стала стандартом защиты для Windows Media Center, Xbox Video и Microsoft Silverlight.
Основное преимущество PlayReady — единая система лицензирования для различных типов контента: видео, аудио, электронные книги, игры и документы. Технология поддерживает модели распространения по подписке (Subscription), аренды (Rental) и продажи (Purchase), что делает её привлекательной для медиасервисов и образовательных платформ.
Архитектура PlayReady состоит из трёх ключевых компонентов: клиентского рантайма PlayReady Device Porting Kit, сервера лицензий PlayReady License Server и средства упаковки контента. Рантайм PlayReady встраивается в приложение или плеер и отвечает за дешифровку контента на устройстве.
Сервер лицензий генерирует лицензионные ключи на основе политик, заданных контент-провайдером. Упаковщик контента шифрует медиафайлы с использованием стандарта Common Encryption (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 и уровень безопасности SL3000 для 4K-контента. Эта версия добавила возможность привязки лицензии к конкретному устройству через механизм Device Binding, что предотвратило перенос лицензий между устройствами.
PlayReady 4.0, анонсированный в 2020 году, расширил функциональность тремя ключевыми нововведениями: поддержка расширенной телеметрии использования контента, улучшенная аналитика для контент-провайдеров и оптимизация потребления энергии на мобильных устройствах.
| Версия | Год | Ключевые возможности | Максимальный SL |
|---|---|---|---|
| PlayReady 2.0 | 2011 | Программное шифрование, до 1080p | SL2000 |
| PlayReady 3.0 | 2014 | Аппаратное шифрование, 4K, Device Binding | SL3000 |
| PlayReady 4.0 | 2020 | Телеметрия, энергоэффективность, HDR | SL3000 |
Уровни безопасности PlayReady определяют способ выполнения криптографических операций и максимальное разрешение контента. SL150 — полностью программная реализация, SL2000 требует частичной аппаратной поддержки, SL3000 — полное аппаратное шифрование с TPM.
Устройства с SL3000 могут воспроизводить контент в 4K HDR, при этом ключи дешифровки никогда не покидают защищённую область TPM. SL2000 ограничен 1080p, SL150 — 720p и подходит только для десктопных браузеров без аппаратной защиты.
Система лицензирования PlayReady — одна из самых гибких среди DRM-решений. Она поддерживает различные модели распространения: аренда с истечением по времени, продажа с бессрочным доступом, подписка с регулярным обновлением ключей, а также предварительный просмотр с ограниченной длительностью.
Каждая лицензия содержит набор политик, которые сервер лицензий применяет к ключу контента. Политики могут включать: максимальное разрешение видео, тип защищённого вывода (HDCP обязателен для 4K), количество активаций, временные ограничения (абсолютные и относительные).
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 и PlayReady API в пространстве имён Windows.Media.Protection.PlayReady. На Android используется PlayReady Porting Kit, который встраивается в приложение через NDK и предоставляет Java-обёртки для работы с DRM.
В среде UWP приложение создаёт экземпляр MediaProtectionManager, регистрирует PlayReady в качестве системы защиты и настраивает обработчики событий лицензирования. Плеер MediaPlayerElement автоматически обрабатывает защищённые потоки, если MediaProtectionManager настроен корректно.
Сервер лицензий PlayReady может быть развёрнут как на инфраструктуре Azure, так и на собственных серверах. Microsoft предоставляет готовые решения PlayReady License Server в составе Azure Media Services, что упрощает интеграцию для облачных проектов.
На Android PlayReady интегрируется через NDK-библиотеку libplayready.so, которая предоставляет API на C++, обёрнутые в Java-классы. ExoPlayer поддерживает PlayReady так же, как и Widevine, через стандартный MediaDrm API с UUID PlayReady.
UUID PlayReady для MediaDrm — `9a22f0a1-9e6c-4f2d-bc8e-4d8d5a2c3f1e`. При инициализации ExoPlayer с PlayReady конфигурация аналогична Widevine: указывается URL сервера лицензий, заголовки аутентификации и тип DRM.
Для корректной работы PlayReady на Android требуется наличие установленного рантайма PlayReady, который обычно предустановлен на устройствах Samsung, LG и других брендов, использующих PlayReady Porting Kit. На устройствах без предустановленного рантайма приложение должно включать библиотеку libplayready.so в APK.
PlayReady является доминирующим DRM на платформах Smart TV, включая Samsung Tizen и LG webOS. На этих платформах встроенный рантайм PlayReady обеспечивает аппаратную защиту на уровне чипсета телевизора, что позволяет воспроизводить контент в 4K HDR без дополнительных настроек.
Интеграция на Smart TV выполняется через PlayReady Device Porting Kit для конкретной SoC (MediaTek, Realtek, Amlogic). Производители телевизоров предустанавливают рантайм PlayReady на этапе прошивки, а приложения запускают его через стандартный EME API в веб-плеере или нативном приложении.
Для контент-провайдеров важно учитывать, что не все Smart TV поддерживают высший уровень SL3000 — более старые модели могут быть ограничены SL2000 и качеством 1080p. Совместимость с HDCP также обязательна для вывода контента в 4K через HDMI.
PlayReady 4.0 ввёл расширенную телеметрию, которая позволяет контент-провайдерам получать детальную информацию об использовании контента: время просмотра, попытки неавторизованного доступа, тип устройства, версию рантайма. Данные телеметрии собираются через защищённый канал и подписываются цифровой подписью для предотвращения подделки.
Механизм отзыва (revocation) в PlayReady 4.0 позволяет контент-провайдерам блокировать скомпрометированные устройства или версии рантайма в реальном времени. Список отзыва распространяется через сервер лицензий и обновляется автоматически при каждом запросе лицензии, что обеспечивает оперативную реакцию на уязвимости.
Часто задаваемые вопросы
PlayReady — это DRM-решение Microsoft для защиты цифрового контента. Технология поддерживает аппаратное и программное шифрование, гибкие политики лицензирования и работает на Windows, Xbox, Android и Smart TV.
Основные версии PlayReady: 3.0 (2014) с аппаратным шифрованием и поддержкой 4K, 4.0 (2020) с телеметрией и энергоэффективностью. Старшие версии обратно совместимы с контентом, упакованным для предыдущих версий.
SL150 — программное шифрование (720p), SL2000 — частично аппаратное (1080p), SL3000 — полное аппаратное шифрование через TPM (4K HDR). Уровень безопасности определяет максимальное качество и способ хранения ключей.
Да, PlayReady поддерживается на iOS, но ограниченно — через PlayReady Porting Kit для iOS. Однако на устройствах Apple предпочтительным DRM остаётся FairPlay, так как он полностью интегрирован в аппаратную архитектуру Secure Enclave.
PlayReady от Microsoft поддерживает Windows и Xbox, использует TPM для аппаратного шифрования и предоставляет расширенную телеметрию. Widevine от Google ориентирован на Android и Chrome, использует TEE и не требует платной лицензии для разработчиков.
Итоги
Мы разработаем мобильное приложение под ключ
IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.
Читайте также