Поделиться через


Защищенное удаление PlayReady

Представленная в PlayReady версии 4.0, PlayReady Secure Delete — это функция, которая позволяет поставщикам служб получать безопасное подтверждение при удалении приложения на клиенте постоянной лицензии. Ранее при удалении лицензии поставщики услуг не получали уведомления о завершении удаления. При безопасном удалении PlayReady возможны следующие операции.

Поставщики услуг могут отслеживать, какие лицензии хранятся в настоящее время и какие лицензии были удалены на определенном клиентском компьютере. Поставщики услуг могут выдавать определенное количество постоянных лицензий клиенту и отслеживать количество лицензий на компьютере этого клиента. Функция безопасного удаления также удовлетворяет требованиям спецификации зашифрованных расширений мультимедиа (EME), как определено в сентябре 2017 года, что указывает, что запись удаления лицензии должна быть отправлена на сервер при удалении лицензии.

На следующем рисунке показан процесс безопасного удаления.

безопасное удаление

Прежде чем происходит безопасное удаление, приложение или клиент сначала создает экземпляр модуля расшифровки содержимого PlayReady (CDM) и получает постоянную лицензию на сервер (шаги 1–7 на рисунке выше).

Затем PlayReady сохраняет лицензию в хранилище данных (HDS, хэшированное хранилище данных), а также запись блоба сеанса лицензии, который состоит из идентификатора сеанса (SessionId) и одного или нескольких идентификаторов ключа (KID). Когда приложение или клиент инициирует запрос на удаление лицензии, он вызовет соответствующие API для удаления лицензий, связанных с КИД из хранилища данных. Во время удаления лицензий, не защищенных от защиты, PlayReady удаляет лицензии из хранилища данных без дальнейших действий. Используя безопасное удаление, PlayReady не только удаляет лицензии, связанные с KID из хранилища данных, но и создает задачу безопасного удаления, содержащую SessionId и KID(s) (шаги 12-13 на рисунке выше).

Затем приложение или клиент отправляет запрос безопасного удаления на сервер безопасного удаления, который затем обрабатывает проблему.

После обработки вызова безопасного удаления сервер безопасного удаления отправляет незашифрованный, неподписанный ответ безопасного удаления, содержащий идентификатор сеанса в кодировке Base 64 в приложение (или клиент).

Наконец, когда клиент получает ответ Secure Delete, PlayReady проверяет, что SessionId, содержащийся в ответе Secure Delete, соответствует SessionId, который использовался для создания запроса Secure Delete. Если проверка выполнена успешно, PlayReady удаляет запись сеанса лицензии из хранилища данных.