Простая сквозная система
Как правило, Microsoft PlayReady защищает содержимое, предоставляя лицензии для файлов мультимедиа. Нет необходимости скрывать файлы, делать их недоступными или создавать специальные защиты при передаче файлов из системы в систему. Другими словами, отсутствуют требования к операционной системе или механизмы обеспечения высокой безопасности и транспорта файлов. Однако копирование файла и предоставление ему другому не позволит использовать файл, если он защищен PlayReady. Чтобы использовать файл мультимедиа, пользователям требуется лицензия. Эта лицензия является основным средством контроля над содержимым (файл мультимедиа). Лицензия предоставляется одному клиенту (например, проигрывателю мультимедиа) или домену. Лицензия не будет работать на других клиентах или других доменах.
Каждая лицензия содержит права и ограничения, определяющие, как именно может использоваться содержимое и в каких условиях. Например, лицензия на музыкальный файл может разрешить "право играть", но ограничить уровень безопасности приложения, в котором можно воспроизвести содержимое. Лицензия может быть действительна в период с 1 октября 2017 г. по 1 ноября 2017 г. Для одного файла может быть несколько лицензий. Пользователь сможет получить доступ к содержимому и использовать его содержимое до тех пор, пока одна из лицензий предоставляет соответствующие права, а ограничения не препятствуют доступу.
Общие сведения о сквозной службе видео
На следующем рисунке представлен общий обзор комплексной видеослужбы, включая серверную часть службы слева и клиенты справа.
В левой части иллюстрации вы увидите, что служба содержит несколько серверов для потоковой передачи видео (сеть распространения содержимого). Существуют также некоторые серверы, которые позволяют пользователям просматривать содержимое и выбирать содержимое, которое они хотят воспроизвести (пользовательский интерфейс). Кроме того, существуют некоторые серверы, которые позволяют пользователям входить и проходить проверку подлинности, а также платить за содержимое (проверка подлинности, оплата). Кроме того, существует сервер лицензирования PlayReady.
Справа от иллюстрации находятся клиенты. Клиенты могут быть Windows приложениями, приложениями для смартфонов или конкретными устройствами, такими как наборы верхних ящиков, сетевые приемники и т. д. Некоторые из этих клиентов могут работать с интегрированным клиентом PlayReady в своих игроках, например, изготовитель оборудования может интегрировать PlayReady в операционной системе или на оборудовании. Другие пользователи могут использовать клиент, интегрированный в приложение, опубликованное в магазине приложений. Существует множество различных вариантов интеграции PlayReady на стороне клиента.
В этом разделе основное внимание уделяется тому, что делает PlayReady для службы, как показано на следующем рисунке.
То, что предоставляет PlayReady, — это способ запроса лицензий с сервера, который затем предоставляет ключи, которые защищают содержимое в защищенной форме через открытую сеть. Во-вторых, PlayReady делает это предоставление прав и прав для клиента. С помощью PlayReady служба может предоставить ключ для воспроизведения содержимого, но, например, разрешить клиенту использовать этот ключ в течение двух дней в сценарии аренды. Таким образом, PlayReady предоставляет способ объявления прав и прав с ключом.
PlayReady также предоставляет способ более безопасного хранения ключа содержимого на стороне клиента, чтобы клиент мог использовать этот ключ клиента для расшифровки содержимого для отрисовки, но не позволяет сохранять содержимое в ясном виде и предоставлять к нему общий доступ другим пользователям.
Чтобы обеспечить правильное поведение клиентов PlayReady, PlayReady требует реализации оборудования и программного обеспечения для соблюдения правил соответствия требованиям и надежности. Эти правила определяют поведение клиента при расшифровке или обработке содержимого PlayReady. Им также требуется, чтобы клиенты правильно обрабатывали ограничения, найденные в лицензии. Таким образом, если клиент получает инструкции по использованию ключа содержимого в течение не более 48 часов, клиент должен следовать этим инструкциям. Эти правила предоставляются корпорацией Майкрософт в правилах соответствия и надежности, и разработчик клиента может применять эти правила в своих клиентах.
Базовый процесс шифрования и лицензирования
В следующих шагах показано комплексное шифрование и лицензирование содержимого и способ участия PlayReady в этом процессе.
На следующем рисунке содержится один ресурс — аудио-видеофайл, который не был зашифрован. Метод, используемый для шифрования содержимого, полностью зависит от поставщика содержимого и не предоставляется в рамках PlayReady.
Чтобы зашифровать этот файл, службе необходимо использовать генератор ключей в шифраторе содержимого, который создает новый ключ содержимого, который будет использоваться для шифрования содержимого. Этот ключ содержимого позже будет доставлен с сервера лицензий PlayReady клиенту, чтобы разрешить расшифровку содержимого и отрисовку для пользователя. Наряду с ключом содержимого, который является частным значением, службы шифрования также связывают идентификатор ключа (KeyID), который представляет собой GUID, с ключом содержимого. KeyID является общедоступным значением.
Ключ и keyID разработаны во время шифрования и хранятся в системе управления ключами, которая обычно является какой-то базой данных. PlayReady не предоставляет систему управления ключами, поэтому она относится к службе или партнеру, который создает службу с вещателем для предоставления системы управления ключами.
Помимо хранения ключа и KeyID в системе управления ключами, вам также потребуется поместить KeyID в упаковщик, который затем создает заголовок. Этот заголовок отформатирован службой или партнером в соответствии со спецификацией заголовка PlayReady, а затем указан в заголовке файла содержимого.
На этом этапе аудио и видео будут зашифрованы с помощью KeyID, и у вас будет зашифрованный файл содержимого, готовый к доставке клиенту.
Теперь клиент может начать использовать содержимое. Первое, что клиент, вероятно, будет делать, чтобы пройти проверку подлинности пользователя в службе, как правило, указав имя входа и пароль, но любой другой механизм проверки подлинности пользователя и устройства является штрафным. Как правило, маркер сеанса возвращается клиенту после проверки пользователя. Обратите внимание, что независимо от того, какой механизм используется для проверки подлинности пользователя, он полностью зависит от службы, как выполняется проверка подлинности пользователя; PlayReady не предоставляет эту технологию.
Затем содержимое доставляется клиенту (например, клиент начал скачивать часть потока данных, составляющий содержимое). Затем клиент начинает анализировать это содержимое и обнаруживает, что он зашифрован и использует ключ, который неизвестен, но содержит KeyID.
На этом этапе клиент отправит запрос на получение лицензии серверу лицензирования.
Затем сервер лицензирования взаимодействует со службой проверки подлинности для проверки пользователя. Как правило, первое, что делает сервер лицензирования, — убедиться, что клиент или пользователь имеет право на определенную лицензию. И снова PlayReady не предоставляет этот макет (проверку подлинности), мы просто предоставляем сервер лицензирования. Служба проверки подлинности обычно отвечает на запросы "Да" или "Нет" или "Да" с ограничениями (например, этот пользователь имеет право на этот конкретный фильм, но только при более низком качестве видео, так как у пользователя нет самого высокого качества подписки — в зависимости от суммы, которую пользователь платит за месяц).
Затем сервер лицензий запрашивает значение ключа на основе KeyID, из системы управления ключами, в которую хранятся ключи, а система управления ключами отвечает на этот запрос. Просто повторим, PlayReady не предоставляет компоненты системы управления ключами, поэтому запрос будет поступать с сервера лицензий PlayReady на любой компонент, созданный службой для хранения ключей.
Ключ получается сервером лицензирования, и сервер лицензирования может доставить лицензию. Ответ на защищенную лицензию PlayReady включает значение ключа и список прав и ограничений прав для принудительного применения клиентом.
Хотя в этой демонстрации показан сервер лицензирования PlayReady, предоставляющий только один ключ, возможно, сервер лицензирования будет предоставлять стек лицензий в одном ответе лицензии. Несколько лицензий можно включить в одну транзакцию, при этом каждая лицензия предоставляет один ключ, если содержимое защищено несколькими ключами или если служба хочет заранее доставить несколько ключей, так как, например, служба знает, что пользователь будет прослушивать восемь дорожек подряд.
Другая технология, которую предоставляет PlayReady, — это способ хранения ключа и прав в клиенте, который называется хранилищем лицензий.
Хранилище лицензий обычно называется HDS, так как структура хранилища лицензий является хэш-хранилищем данных. На устройстве может быть несколько типов хранилищ лицензий. Одно приложение может содержать собственные HDS, чтобы убедиться, что HDS одной компании не находится в том же файле, что и HDS другой компании. Это полностью разработчик клиента, чтобы сделать этот выбор дизайна. Например, при использовании PlayReady в Windows корпорация Майкрософт решила использовать один HDS для Internet Explorer и другой для Microsoft Edge на сайте, а также по одному для каждого Windows универсального приложения.
HDS можно хранить в постоянном режиме, например на жестком диске или постоянной памяти устройства, или хранить его в непрестойчивом режиме, например в непрестойчивой памяти. Поэтому, когда сервер лицензий выдает лицензию, он может задать свойство лицензии, указывающее, что лицензия не должна храниться на жестком диске клиента или в случае с установленным верхним полем или телефоном, что он не должен храниться в постоянной памяти, так как, как служба, вы не хотите хранить лицензии в постоянной памяти. В этом случае просто сохраните HDS в памяти в контексте приложения проигрывателя, поэтому, как только пользователь закрывает приложение проигрывателя, лицензия и его права будут исчезать.