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


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

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

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

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

В этом разделе содержатся следующие разделы:

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

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

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

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

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

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

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

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

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

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

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

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

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

схема защищенного пути мультимедиа

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

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

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

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

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

Центры доверия входных данных

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

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

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

Центры доверия выходных данных

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

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

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

Создание объектов в 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 необходимо выполнить три основных требования. Во-первых, защищенное содержимое должно отправляться только в доверенные выходные данные. Во-вторых, к потоку должны применяться только разрешенные действия. В-третьих, для воспроизведения потока должны использоваться только утвержденные системы защиты выходных данных. Подсистема политик координирует ит-отделы и otas, чтобы обеспечить соблюдение этих требований.

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

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

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

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

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

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

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

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

About Media Foundation

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

GPU-Based защиты содержимого

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

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