Лицензия и политики
Во время получения лицензии клиент отправляет запрос на сервер лицензий PlayReady, содержащий заголовок содержимого и сведения об устройстве пользователя. После получения запроса сервером лицензирования PlayReady сервер анализирует запрос и начинает заполнять ответ лицензии. Ответ будет включать ключ содержимого (CK), который изначально использовался для шифрования содержимого, соответствующего идентификатору ключа (KID), отправленного в запросе лицензии, или несколько из них. Кроме того, ответ лицензии вернет политики PlayReady (права и ограничения), в соответствии с которыми можно воспроизводить содержимое.
Политика PlayReady описывает действия, разрешенные и /или требуемые в отношении содержимого PlayReady, и ограничения для этих действий, как описано в лицензии PlayReady, связанной с содержимым PlayReady. Политики PlayReady определяются в правилах соответствия требованиям PlayReady (CR). Поставщик услуг должен включить обязательные политики и выбрать, какие из необязательных политик использовать, а также включить эти политики в обработчик лицензий на сервере лицензий PlayReady. Эти политики могут быть правами, такими как право воспроизведения, или ограничениями, такими как минимальный уровень безопасности, уровень защиты выходных данных, истечение срока действия после первого воспроизведения и т. д.
Обратите внимание, что ответ лицензии может содержать несколько лицензий. Каждая лицензия содержит только один ключ содержимого {KID, CK} и набор связанных политик.
Когда клиент получает ответ лицензии от сервера лицензирования PlayReady, он должен иметь возможность анализировать ключ содержимого и политики, отправленные обратно в получаемых лицензиях. Клиент PlayReady должен иметь возможность следовать политикам, отправленным в ответе лицензии, и воспроизводить содержимое, если выполнены все обязательные политики, или прекратить воспроизведение, если какие-либо из обязательных политик не выполняются.
Примечание
Если клиент поддерживает playReady Device Porting Kit версии 3.0 и выше, сервер лицензий PlayReady не предоставляет лицензию, требующую прав на копирование, выполнение или чтение.
Дополнительные сведения о политиках PlayReady см. в разделах Правила соответствия требованиям PlayReady и Определенные условия для правил соответствия и надежности PlayReady.
Права PlayReady
Следующие права PlayReady перечислены в правилах соответствия требованиям PlayReady:
- Воспроизведение вправо (см. CR 3.1): право клиента для расшифровки содержимого PlayReady Audio/Video (фильмы и музыка), отрисовки и передачи в выходные данные.
- Выполнить справа (см. CR 4.1): право клиента для расшифровки исполняемого содержимого PlayReady (приложений) и его выполнения. Больше не поддерживается в PlayReady 3.0 и более поздних версиях.
- Право на чтение (см. CR 5.1): право клиента для расшифровки литературного содержимого PlayReady (электронные книги) и его отображения. Больше не поддерживается в PlayReady 3.0 и более поздних версиях.
Ограничения прав и другие политики
Правила соответствия playReady содержат полный список правильных модификаторов (расширений и ограничений), которые могут применяться к лицензии. Каждый из этих модификаторов имеет несколько свойств:
- Действие — указывает действие политики (например, включение шифрования HDCP в выходных данных HDMI).
- Необязательный — указывает, должен ли клиент выполнить действие или попытаться включить действие (например, управление выводом для несжатого цифрового видеосодержимого 250, см. CR 3.6.5).
- Must Understand — указывает, разрешено ли клиенту привязывать лицензию и расшифровывать содержимое, даже если он не понимает политику. Применимо для клиентов более ранней версии (например, клиента PlayReady 2.X), получающих лицензию, включая политику PlayReady, введенную в будущей версии (например, сервер PlayReady 3.X, см. CR 2.4).
- Лучшие усилия — еще один способ указать, должен ли клиент задействовать действие или попытаться задействовать действие (например, Макросвидеть лучшие усилия, см. CR 2.4).
В следующих разделах перечислены некоторые из наиболее часто используемых модификаторов справа.
Политика абсолютного срока действия
Одним из распространенных ограничений является политика абсолютного срока действия даты и времени. Каждая лицензия может включать политику абсолютного срока действия даты и времени. Если она присутствует, клиент должен прекратить привязку этой лицензии и расшифровать содержимое, если текущая дата и время находится после этого значения.
Практический пример — пользователь в клиенте, который воспроизводит содержимое из ежемесячной подписки. Ежемесячный день продления службы для этого пользователя — 15-е число месяца. Пользователь начинает воспроизведение 2-го числа месяца (2 ноября 2017 г.). Сервер лицензирования предоставит пользователю право до 15-го числа месяца и включит политику окончания срока действия, установленную на 16.11.2017, 0:00. Каждый раз, когда пользователь платит плату за подписку на следующий месяц, служба выдаст другую лицензию с датой окончания срока действия, установленной на месяц позже.
Эта политика по определению является политикой Must Understand and Mandatory (то есть не Best Effort), поэтому клиент, который привязывает лицензию, включающую эту политику, ДОЛЖЕН:
- У вас есть доверенная система часов PlayReady, чтобы иметь надежное время. Безопасные часы PlayReady или PlayReady anti-Rollback Clock — это две приемлемые формы систем доверенных часов PlayReady для клиентов PlayReady.
- Установите этот параметр PlayReady Trusted Clock.
- Иметь возможность анализировать и понимать политику срока действия в лицензии.
- Сравните текущее время из системы надежных часов PlayReady со значением Срока действия.
- Не привязывать лицензию, если текущее время истеко значение срока действия.
Примечание
Всякий раз, когда сервер лицензирования устанавливает политику абсолютного срока действия в лицензии, корпорация Майкрософт настоятельно рекомендует также установить политику даты начала для обеспечения надежности. Дополнительные сведения см. в разделе Рекомендации по политикам лицензий .
Политика даты начала
Другим распространенным ограничением является политика даты начала. Если она присутствует, клиент не должен привязывать эту лицензию и начинать расшифровку содержимого до тех пор, пока текущее время не настанет после этого значения.
Для бизнес-моделей, требующих использования содержимого только в течение ограниченного периода времени, например в сценарии аренды, требуется дата окончания срока действия лицензии и невозможность воспроизведения содержимого (например, содержимое можно воспроизводить только до 17:00 EST, 15 мая 2018 г.). Этого достаточно для сценария аренды. Однако указание даты начала с датой окончания является естественным импедансом для часов отката атак.
Эта политика по определению является политикой Must Understand and Mandatory (то есть не Best Effort), поэтому клиент, который привязывает лицензию, включающую эту политику, ДОЛЖЕН:
- У вас есть доверенная система часов PlayReady, чтобы иметь надежное время. Безопасные часы PlayReady или PlayReady anti-Rollback Clock — это две приемлемые формы систем доверенных часов PlayReady для клиентов PlayReady.
- Установите этот параметр PlayReady Trusted Clock.
- Уметь анализировать и понимать политику "Дата начала" в лицензии.
- Сравните текущее время из системы надежных часов PlayReady со значением "Дата начала".
- Не привязывать лицензию, если текущее время находится до значения Время начала.
Дополнительные сведения см. в разделе Использование BeginDate с EndDate
Политика окончания срока действия после первого воспроизведения
Помимо сценариев, в которых содержимое может воспроизводиться в зависимости от времени начала и окончания, существует также модель, которая определяет, как долго можно воспроизводить содержимое после первого воспроизведения содержимого. Срок действия после первого воспроизведения политики указывает, что клиент должен прекратить привязку этой лицензии и расшифровывать содержимое, если текущее количество секунд после первого воспроизведения содержимого соответствует значению этой политики.
Примечание
Для содержимого, приобретенного в собственность, пользователи ожидают, что содержимое будет воспроизводиться на своих устройствах неограниченно долго. Службы, скорее всего, выдают лицензии на это содержимое без истечения срока действия. Однако поскольку пользователи часто меняют устройства и каждое устройство может изменить свое удостоверение PlayReady некоторое время (при выполнении повторной индивидуализации или при полной переустановке устройства), службы должны быть готовы в любое время для повторной выдачи лицензий на приобретенное содержимое, которое ранее было доставлено пользователю или устройству.
Политика уровня безопасности
Все клиенты PlayReady имеют свойство, заданное в сертификате клиента на уровне единицы, которое называется уровнем безопасности клиента. Когда сервер лицензирования отправляет лицензию клиенту, он включает в лицензию политику MinimumSecurityLevel и устанавливает для нее значение 150, 2000 или 3000. Это значение означает, что лицензия может быть привязана, а содержимое может быть расшифровано только на клиентах с этим или более высоким уровнем безопасности.
Дополнительные сведения об этой политике см. на странице Уровень безопасности клиента .
Элемент управления выходными данными для политики несжатого цифрового видеоконтента
Службе может потребоваться разрешить клиенту расшифровку и отрисовку содержимого, но ограничить способ его потоков во внешние выходы, такие как выходные данные HDMI. Служба может захотеть сделать это, потому что к кабелю HDMI могут быть подключены рекордеры, способные сделать очень хорошую копию исходного содержимого.
PlayReady имеет все виды элементов управления защиты от вывода для аналоговых, цифровых и беспроводных выходных данных. Одной из наиболее распространенных является политика HDCP для выходных данных HDMI (см. CR 3.6.5). В зависимости от значения, заданного сервером лицензирования для этой политики, которое может быть 100, 250, 270, 300 (см. CR 6.7), клиент должен попытаться подключиться или задействовать HDCP в выходных данных HDMI при воспроизведении этих выходных данных.
Например, если лицензия включает в себя элемент управления выходом для несжатого цифрового видеоконтента, который имеет значение 300 (также известный как Цифровое видео OPL 300), клиент должен использовать HDCP на выходных данных HDMI при воспроизведении содержимого. Если клиент не может подключить HDCP (любую версию) к выходным данным HDMI, у него есть два варианта:
- Воспроизведение содержимого и блокировка выходных данных. Например, воспроизведение на внутреннем экране или на аналоговом выходе, но блокировка сигнала на выходе HDMI.
- Просто не воспроизводить содержимое. Если устройство имеет внутренний экран, аналоговый выход и выход HDMI, блокировка воспроизведения на всех выходах только из-за того, что устройство не может включить HDCP на выходе HDMI, безусловно, будет неоптимальным для пользователя. Пользователь может спросить: "Почему он не воспроизводится на аналоговом выходе, хотя ограничение применяется только к выходу HDMI?". Однако этот вариант является приемлемым с точки зрения соответствия PlayReady, так как он соответствует cr&RR.
Обратите внимание, что HDCP type 1 поддерживается начиная с HDCP версии 2.1, поэтому использование HDCP Type 1 будет невозможно на устройствах, поддерживающих только HDCP 2.0 или 1.4.
Другие политики
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 , которая точно описывает каждую из этих политик и способ их написания в лицензии.