Путь к защищенному носителю

В этом разделе рассматриваются три взаимосвязанных темы: защищенная среда, шлюз взаимодействия с мультимедиа, а также отзыв и продление.

  • Защищенная среда (PE) — это набор технологий, которые позволяют защищенному содержимому передаваться из Windows Vista и через нее в защищенном режиме. Все компоненты в защищенной среде являются доверенными, а процесс защищен от незаконного изменения.
  • Путь к защищенному носителю (PMP) — это исполняемый файл, который выполняется в защищенной среде.
  • Если доверенный компонент в pe становится скомпрометирован, после надлежащей процедуры он будет отозван. Однако корпорация Майкрософт предоставляет механизм продления для установки более новой доверенной версии компонента, когда она станет доступной.

Сведения о компонентах защищенного мультимедиа для подписывания кода см. в техническом документе Подписывание кода для компонентов защищенного носителя в Windows Vista.

Этот раздел состоит из следующих подразделов.

Защищенная среда

Защита содержимого охватывает несколько технологий, каждая из которых пытается гарантировать, что содержимое не может использоваться способом, несовместимым с намерением владельца или поставщика содержимого. К этим технологиям относятся защита от копирования, защита ссылок, условный доступ и управление цифровыми правами (DRM). Основой каждого из них является доверие. Доступ к содержимому предоставляется только программным компонентам, которые соответствуют условиям использования, назначенным данному содержимому.

Чтобы свести к минимуму угрозы для защищенного содержимого, Windows Vista и Media Foundation Software позволяют выполнять доверенный код в защищенной среде. Pe — это набор компонентов, рекомендаций и средств, предназначенных для повышения защиты от пиратства содержимого.

Прежде чем более внимательно изучить pe, важно понять угрозы, которые она призвана свести к минимуму. Предположим, вы запускаете приложение мультимедиа в пользовательском режиме. Приложение связано с различными библиотеками динамической компоновки (DLL), содержащими подключаемые модули мультимедиа, например декодеры. Другие процессы также выполняются в пользовательском режиме, а в ядро загружаются различные драйверы. Если механизм доверия не создан, существуют следующие угрозы:

  • Приложение может получить доступ к защищенному носителю напрямую или взломать память процесса.
  • Подключаемые модули могут обращаться к содержимому напрямую или взламывать память процесса.
  • Другие процессы могут взломать память процесса мультимедиа напрямую или путем внедрения кода.
  • Драйверы ядра могут взломать память процесса мультимедиа.
  • Содержимое может отправляться за пределы системы через незащищенный носитель. (Защита ссылок предназначена для устранения этой угрозы.)

Проектирование защищенной среды

Защищенная среда выполняется в отдельном защищенном процессе от приложения мультимедиа. Функция защищенных процессов Windows Vista запрещает другим процессам доступ к защищенному процессу.

При создании защищенного процесса основные компоненты ядра идентифицируют ненадежные компоненты и подключаемые модули, чтобы защищенная среда отказалась от их загрузки. Доверенный компонент — это компонент, который был надлежащим образом подписан корпорацией Майкрософт. Ядро также отслеживает модули, которые загружаются в него, что позволяет защищенной среде останавливать воспроизведение защищенного содержимого при загрузке ненадежного модуля. Перед загрузкой компонента ядра ядро проверяет, является ли он доверенным. Если это не так, доверенные компоненты, которые уже находятся в среде предустановки, отказываются обрабатывать защищенное содержимое. Для этого компоненты PE периодически выполняют криптографически защищенное подтверждение с ядром. Если присутствует недоверенный компонент режима ядра, подтверждение завершается сбоем и указывает pe на существование недоверенного компонента.

Если доверенный компонент скомпрометирован, после надлежащей процедуры он может быть отозван. Корпорация Майкрософт предоставляет механизм продления для установки более новой доверенной версии, если она доступна.

Путь к защищенному носителю

Защищенный путь к мультимедиа (PMP) является основным исполняемым файлом PE для Media Foundation. PmP является расширяемым, что позволяет поддерживать сторонние механизмы защиты содержимого.

PMP принимает защищенное содержимое и связанные с ним политики из любого источника Media Foundation, используя любую систему защиты содержимого, в том числе предоставленные третьими лицами. Он отправляет содержимое в любой приемник Media Foundation, если приемник соответствует политикам, заданным источником. Он также поддерживает преобразования между источником и приемником, включая сторонние преобразования, при условии, что они являются доверенными.

PMP выполняется в защищенном процессе, изолированном от приложения мультимедиа. Приложение может обмениваться сообщениями команд и управления только с PMP, но не имеет доступа к содержимому после его передачи в PMP. Этот процесс представлен на схеме ниже.

Схема пути к защищенному носителю

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

Приложение создает экземпляр сеанса мультимедиа внутри защищенного процесса и получает указатель на прокси-сеанс мультимедиа, который маршалирует указатели интерфейса через границу процесса.

Источник мультимедиа можно создать либо в процессе приложения, как показано здесь, либо внутри защищенного процесса. Если источник мультимедиа создается в процессе приложения, он создает прокси-сервер для себя в защищенном процессе.

Все остальные компоненты конвейера, такие как декодеры и приемники мультимедиа, создаются в защищенном процессе. Если эти объекты предоставляют какие-либо пользовательские интерфейсы для приложений, они должны предоставить прокси-сервер или заглушку DCOM для маршалинга интерфейса.

Чтобы применить политику к защищенному содержимому по мере его прохождения через конвейер, PMP использует три типа компонентов: входные доверенные органы (ITAs), выходные доверенные центры (OTA) и объекты политики. Эти компоненты совместно используются для предоставления или ограничения прав на использование содержимого, а также для указания защиты ссылок, которые должны использоваться при воспроизведении содержимого, таких как защита цифрового содержимого с высокой пропускной способностью (HDCP).

Входные доверенные органы

ITA создается доверенным источником мультимедиа и выполняет несколько функций:

  • Указывает права на использование содержимого. Права могут включать право воспроизводить содержимое, передавать его на устройство и т. д. Он определяет упорядоченный список утвержденных систем защиты выходных данных и соответствующие политики вывода для каждой системы. ITA хранит эти сведения в объекте политики.
  • Предоставляет дешифрователь, необходимый для расшифровки содержимого.
  • Устанавливает доверие с модулем ядра в защищенной среде, чтобы убедиться, что ITA работает в доверенной среде.

ITA связан с отдельным потоком, содержащим защищенное содержимое. Поток может иметь только один ITA, а экземпляр ITA может быть связан только с одним потоком.

Выходные доверенные органы

OTA связывается с доверенными выходными данными. OTA предоставляет действие, которое доверенные выходные данные могут выполнять с содержимым, например воспроизведение или копирование. Его роль заключается в принудительном применении одной или нескольких систем защиты выходных данных, необходимых ITA. OTA запрашивает объект политики, предоставленный ITA, чтобы определить, какую систему защиты необходимо применить.

Объекты политики

Объект политики инкапсулирует требования к защите содержимого ITA. Он используется обработчиком политик для согласования поддержки защиты содержимого с помощью OTA. OTA запрашивают объекты политики, чтобы определить, какие системы защиты они должны применять к каждому выходу текущего содержимого.

Создание объектов в PMP

Чтобы создать объект в защищенном пути носителя (PMP), IMFMediaSource вызывает IMFPMPHostApp::ActivateClassById с указанным входным IStream в следующем формате:

Format: (All DWORD values are serialized in little-endian order)
[GUID (content protection system guid, obtained from Windows.Media.Protection.MediaProtectionSystemId)]
[DWORD (track count, use the actual track count even if all tracks are encrypted using the same data, note that zero is invalid)]
[DWORD (next track ID, use -1 if all remaining tracks are encrypted using the same data)]
[DWORD (next track's binary data size)]
[BYTE* (next track's binary data)]
{ Repeat from "next track ID" above for each stream }

Общие сведения о согласовании политик

Перед обработкой защищенного содержимого в PMP необходимо выполнить три основных требования. Во-первых, защищенное содержимое должно отправляться только в доверенные выходные данные. Во-вторых, к потоку должны применяться только разрешенные действия. В-третьих, для воспроизведения потока должны использоваться только утвержденные системы защиты выходных данных. Подсистема политик координирует действия между ITA и OTA, чтобы обеспечить соблюдение этих требований.

Самый простой способ понять процесс — ознакомиться с упрощенным примером, в котором указаны шаги, необходимые для воспроизведения содержимого расширенного системного формата (ASF), защищенного службой управления цифровыми правами Windows Media (WMDRM).

Когда пользователь запускает приложение проигрывателя и открывает ASF-файл с защищенным аудиопотоком и защищенным видеопотоком, необходимо выполнить следующие действия:

  1. Приложение создает источник мультимедиа ASF и сеанс защищенного пути к мультимедиа (PMP). Media Foundation создает процесс PMP.
  2. Приложение создает частичную топологию, содержащую узел источника звука, подключенный к отрисовщику звука, и узел источника видео, подключенный к расширенному отрисовщику видео (EVR). Для отрисовщиков приложение не создает отрисовщик напрямую. Вместо этого приложение создает в незащищенном процессе объект, известный как объект активации. PMP использует объект активации для создания отрисовщиков в защищенном процессе. (Дополнительные сведения об объектах активации см. в разделе Объекты активации.)
  3. Приложение задает частичную топологию в сеансе PMP.
  4. Сеанс PMP сериализует топологию и передает ее узлу PMP в защищенном процессе. Узел PMP отправляет топологию в подсистему политик.
  5. Загрузчик топологии вызывает IMFInputTrustAuthority::GetDecrypter в itas и вставляет расшифровщики в топологию сразу после соответствующих исходных узлов.
  6. Загрузчик топологии вставляет декодеры аудио и видео ниже по течению узлов расшифровки.
  7. Модуль политики проверяет вставленные узлы, чтобы определить, реализует ли какой-либо интерфейс IMFTrustedOutput . EVR и звуковой отрисовщик реализуют IMFTrustedOutput, так как они отправляют данные за пределы PMP.
  8. Каждый ITA подтверждает, что он выполняется внутри защищенного процесса, выполняя криптографическое подтверждение с помощью модуля ядра защищенной среды.
  9. Для каждого потока подсистема политик согласовывает политику, получая объект политики из ITA и передавая его в OTA. OTA предоставляет список поддерживаемых систем защиты, а объект политики указывает, какие системы защиты необходимо применить, а также правильные параметры. Затем OTA применяет эти параметры. Если это невозможно, содержимое блокируется.

Отзыв и продление

Доверенный компонент может быть отозван, если он скомпрометирован или обнаруживается, что нарушает лицензионные соглашения, в соответствии с которыми он изначально был доверенным. Существует механизм продления для установки более новой, более надежной версии компонента.

Доверенные компоненты подписываются с помощью криптографического сертификата. Корпорация Майкрософт публикует глобальный список отзыва (GRL), который определяет компоненты, которые были отозваны. GRL имеет цифровую подпись, чтобы обеспечить его подлинность. Владельцы содержимого могут гарантировать наличие текущей версии GRL на компьютере пользователя с помощью механизма политики.

При просмотре видеосодержимого уровня "Премиум" расшифрованные несжатые кадры перемещаются через физический соединитель на устройство отображения. Поставщики содержимого могут требовать защиты видеокадров на этом этапе, так как они перемещаются через физический соединитель. Для этой цели существуют различные механизмы защиты, в том числе High-Bandwidth защита цифрового содержимого (HDCP) и защита содержимого DisplayPort (DPCP). Видео OTA обеспечивает эти средства защиты с помощью диспетчера защиты вывода (OPM). Диспетчер защиты выходных данных отправляет команды графическому драйверу, а графический драйвер применяет все механизмы защиты ссылок, необходимые политике.

Схема, показывающая связь между видео ota и opm.

О Media Foundation

Архитектура Media Foundation

Защита содержимого на основе GPU

Диспетчер защиты выходных данных

Сеанс мультимедиа PMP