Приобретение лицензии
Чтобы воспроизвести защищенное содержимое, должна быть доступна действительная лицензия для содержимого. Если для содержимого нет действительной лицензии, необходимо получить лицензию. Во время приобретения лицензии клиент получает лицензию с сервера лицензирования или прокси-сервера. Клиент приобретения лицензии — это проигрыватель мультимедиа на мобильном устройстве, например на телефоне или планшете или на личном компьютере. Клиенты для приобретения лицензий подключаются непосредственно к серверу лицензирования и запрашивают лицензии на полученное содержимое.
В контексте приобретения лицензии сервер лицензирования и сервер упаковки считаются серверами DRM. Переносные устройства и личные компьютеры, способные получить лицензии, считаются клиентами.
Взаимодействие с сервером и клиентом для получения лицензий
В этом разделе рассматриваются взаимодействия компонентов для получения лицензии.
На стороне сервера пакет SDK для Сервера PlayReady предоставляет следующие функции:
- Создание и выдача лицензий
Клиент на переносном устройстве потребителя или личном компьютере предоставляет следующие функции:
- Приобретение лицензии
- Применение правил использования
- Расшифровка содержимого
Поддержка доменов, отслеживания, безопасного остановки и безопасного удаления также входит в состав пакета SDK для сервера PlayReady.
Упреждающее, реактивное приобретение лицензий
Существует два режима приобретения лицензий:
- Упреждающее получение лицензий — клиентское приложение явно инициирует запрос лицензии перед началом воспроизведения. Как правило, это сценарий, в котором система запрограммирована таким образом, чтобы приложение просматривало содержимое, и потребует времени, чтобы заранее получить лицензию до запуска любого сеанса воспроизведения. После получения лицензии воспроизведение может начаться в любое время. Приложение может немедленно начать воспроизведение или есть случаи, когда лицензия будет получена за несколько дней до фактического воспроизведения содержимого, как правило, в сценарии автономного воспроизведения.
- Реактивное получение лицензии — клиентское приложение не получает лицензию явным образом до воспроизведения содержимого. После запуска воспроизведения проигрыватель мультимедиа PlayReady ищет существующую лицензию PlayReady, которая может расшифровать это содержимое. Если она не находит любую из доступных лицензий, она автоматически использует связанный объект приобретателя лицензий для получения лицензии перед возобновлением воспроизведения.
На следующем рисунке представлен обзор архитектуры защиты содержимого и приобретения лицензий.
Приобретение лицензии выполняет следующие действия, как показано на рисунке:
Поставщик содержимого использует начальное значение ключа лицензии и идентификатор ключа для создания ключа.
Поставщик содержимого помещает идентификатор ключа и URL-адрес сервера лицензирования в заголовок содержимого, а затем защищает файл, зашифровав его ключом.
Поставщик содержимого доставляет защищенный файл пользователю.
Проигрыватель мультимедиа пользователя запрашивает компонент DRM устройства пользователя, чтобы определить, можно ли воспроизводить защищенный файл.
Компонент DRM выполняет поиск в хранилище лицензий на устройстве пользователя, чтобы получить действительную лицензию для воспроизведения файла.
Если компонент DRM не сможет найти необходимую лицензию, запросит лицензию с сервера лицензирования. Запрос лицензии, используемый для запроса лицензии, содержит заголовок содержимого и сведения об устройстве пользователя.
Сервер лицензирования использует начальное значение общего ключа лицензии и идентификатор ключа для создания того же ключа содержимого, который был создан поставщиком содержимого на шаге 1. Затем сервер лицензирования шифрует ключ.
Сервер лицензирования создает лицензию, добавляет зашифрованный ключ содержимого в лицензию и подписывает лицензию с помощью закрытого ключа подписи.
Сервер лицензирования доставляет подписанную лицензию на устройство пользователя.
Компонент DRM на устройстве пользователя проверяет подпись и дату окончания срока действия сертификата и помещает лицензию в хранилище лицензий.
Компонент DRM расшифровывает пакеты запрошенного содержимого и отправляет их проигрывателю.
На этом этапе проигрыватель будет иметь содержимое в форме, пригодной для использования. Можно использовать любую политику, включенную лицензией. Например, если лицензия включает "воспроизведение", клиент приобретения лицензии может воспроизводить содержимое.
На следующем рисунке показаны основные шаги по упреждающему получению лицензии.
На следующем рисунке показаны основные шаги по реактивной приобретению лицензии.
После получения защищенного файла клиент должен получить лицензию, прежде чем он сможет выполнять действия, использующие это содержимое. Лицензии хранят сведения, необходимые для доступа к связанному содержимому и хранения правил, с помощью которых можно получить доступ к содержимому. Пользователи должны получить собственные лицензии для воспроизведения защищенного содержимого, даже если защищенное содержимое было скопировано у пользователя, у которого уже была лицензия. Лицензии содержат ключ шифрования для расшифровки соответствующего содержимого или, в случае с цепными лицензиями, содержат промежуточный ключ. Лицензии также содержат права и другие свойства, определяющие использование содержимого. Например, лицензия определяет количество воспроизведения защищенного файла и срок действия лицензии. Эти свойства настраиваются в лицензии отдельно от защищенного файла.
Каждая лицензия содержит следующие сведения:
- Ключ шифрования содержимого.
- Права лицензии.
- Правильные ограничения и модификаторы права, также известные как условия лицензии.
Прежде чем клиент сможет расшифровать содержимое, связанное с лицензией, он должен получить политику из лицензии. Сведения о защите содержимого в лицензии шифруются с помощью открытого ключа клиента или сведений о шифровании открытого ключа клиента. Лицензия считается привязанной к клиенту или домену с закрытым ключом для расшифровки информации о защите содержимого.
Клиенты получают лицензии непосредственно с серверов лицензий или через прокси-сервер.
Транспорт для приобретения лицензии
Для получения лицензий PlayReady требуется транзакция между клиентом и сервером:
- Задача, созданная клиентом и отправленная на сервер.
- Ответ, созданный сервером и отправленный клиенту.
Обычно транзакции происходят в Интернете, через HTTP или HTTPS или в закрытой сети. Используемый протокол основан на протоколе SOAP и может быть настроен. Транзакции также можно реализовать асинхронно, например с клиентом, публикующим запрос в одном расположении, и сервером, обрабатывающим эту проблему, генерируя ответ и публикуя этот ответ в другом расположении.
Примечание
PlayReady не поддерживает трансляцию лицензий, то есть серверы, отправляя лицензии клиентам в широковещательной сети.