Защита содержимого с помощью динамического шифрования и доставки ключей

Логотип Служб мультимедиа версии 3


Предупреждение

Поддержка Служб мультимедиа Azure будет прекращена 30 июня 2024 г. Дополнительные сведения см. в руководстве по прекращению поддержки AMS.

Используйте Службы мультимедиа Azure для защиты мультимедиа с момента его ухода с компьютера вплоть до хранения, обработки и доставки. а также доставлять в режиме реального времени и по требованию содержимое, зашифрованное динамически с помощью Advanced Encryption Standard (AES-128) или трех основных систем управления цифровыми правами (DRM): Microsoft PlayReady, Google Widevine и Apple FairPlay.

FairPlay Streaming — это технология Apple, которая доступна только для видео, передаваемого через HTTP Live Streaming (HLS) на устройствах iOS, в Apple TV и в Safari на macOS. Они также обеспечивают службу доставки ключей AES и лицензий DRM (PlayReady, Widevine и FairPlay) авторизованным клиентам. Если содержимое шифруется с применением незащищенного ключа AES и отправляется по протоколу HTTPS, оно не остается в незашифрованном виде до тех пор, пока не достигнет клиента.

В Службах мультимедиа v3 ключ содержимого связан с потоковым указателем (см. этот пример). При использовании службы доставки ключей Служб мультимедиа вы можете позволить Службам мультимедиа Azure создавать ключ содержимого. Ключ содержимого следует создать самостоятельно, если вы используете собственную службу доставки ключей или необходимо обрабатывать сценарий высокой доступности, где нужно иметь один и тот же ключ содержимого в двух центрах обработки данных.

Когда поток запрашивается проигрывателем, Службы мультимедиа используют указанный ключ для динамического шифрования содержимого с помощью незащищенного ключа AES или DRM. Чтобы расшифровать поток, проигрыватель запросит ключ у службы доставки ключей служб мультимедиа или в указанной вами службе доставки ключей. Чтобы определить, есть ли у пользователя право на получение ключа, служба оценивает политику ключа содержимого, которую вы задали для ключа.

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

Чтобы настроить политики авторизации и аутентификации для лицензий и ключей, можно использовать REST API или клиентскую библиотеку мультимедиа.

Widevine недоступен в регионе GovCloud.

Примечание

Медиаслужбы будут применять TLS 1.2 для всех запросов к KeyDelivery, RESTv2, конечной точке потоковой передачи и источникам потоковой передачи трансляции. Учетные записи с существующим использованием TLS 1.0 или 1.1 будут исключены из этого принудительного применения. Если вы хотите принудительно применить TLS 1.2 для всех запросов к этим конечным точкам медиаслужб, обратитесь в службу поддержки AMS.

Браузеры, поддерживающие клиенты DRM

Распространенные браузеры поддерживают следующие клиенты DRM.

Браузер Шифрование
Chrome Widevine
Microsoft Edge, Internet Explorer 11 PlayReady
Firefox Widevine
Opera Widevine
Safari FairPlay

Управление доступом к содержимому

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

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

При использовании политики ключей содержимого с ограничениями по маркеру ключ содержимого будет отправлен только тому клиенту, который предоставит в запросе ключа или лицензии действительный маркер JWT или простой веб-маркер (SWT). Этот маркер должен быть выдан службой маркеров безопасности (STS).

Использование Azure AD в качестве службы маркеров безопасности

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

  • маркер является действительным;
  • утверждения в маркере соответствуют утверждениям, настроенным для лицензии или ключа.

При настройке политики ограничения по маркеру необходимо задать такие параметры, как основной ключ проверки, издатель и аудитория. Основной ключ проверки содержит ключ, которым был подписан маркер. Издателем является служба STS, которая выдала маркер. Аудитория, иногда называемая областью, описывает назначение маркера или ресурс, доступ к которому обеспечивает этот маркер. Служба доставки лицензий или ключей Служб мультимедиа проверяет, соответствуют ли значения в маркере значениям в шаблоне.

Предотвращение воспроизведения маркеров

Функция предотвращения воспроизведения маркеров позволяет задать ограничение на количество раз, когда один и тот же маркер можно использовать для запроса ключа или лицензии. В маркер можно добавить утверждение типа urn:microsoft:azure:mediaservices:maxuses , где значением является количество раз, когда маркер может использоваться для получения лицензии или ключа. Все последующие запросы по предоставлению ключей с идентичным маркером к функции Доставки ключей будут возвращать ответ об отсутствии авторизации.

Рекомендации

  • Вы должны контролировать создание маркеров. Утверждение необходимо помещать непосредственно в сам маркер.
  • При использовании этой функции запросы с маркерами, срок действия которых превышает один час с момента получения запроса, отклоняются с ответом об отсутствии авторизации.
  • Маркеры имеют уникальную идентификацию посредством сигнатуры. Любое изменение в полезных данных (например, обновление срока действия или утверждения) изменяет сигнатуру маркера, и с этого момента он будет считаться новым маркером, с которым функция доставки ключей еще не взаимодействовала.
  • Воспроизведение завершается ошибкой, если значение маркера maxuses превышает значение.
  • Эту функцию можно использовать для всего существующего защищенного содержимого (необходимо изменить только выданный маркер).
  • Она работает как с JWT, так и с SWT.

Использование пользовательской службы маркеров безопасности

Вы можете выбрать пользовательскую службу маркеров безопасности для предоставления маркеров. Причины.

  • Ваш поставщик удостоверений не поддерживает службу маркеров безопасности.

  • Вам может потребоваться более гибкий или более жесткий контроль при интеграции службы маркеров безопасности с системой выставления счетов вашего подписчика.

    Например, оператор службы OTT может предлагать несколько пакетов подписчиков, таких как Premium, Basic, Sports и т. д. Оператору может потребоваться сопоставить утверждения в маркере с пакетом подписчика, чтобы предоставлялось только содержимое в определенном пакете. В этом случае пользовательская STS предоставляет необходимую гибкость и контроль.

  • Для включения пользовательских утверждений в маркер для выбора между разными ContentKeyPolicyOption с различными параметрами лицензии DRM (например, лицензия на подписку или лицензия на аренду).

  • Для включения утверждения, представляющего идентификатор ключа содержимого, к которому маркер предоставляет доступ.

При применении пользовательской STS необходимо внести два изменения:

  • При настройке службы доставки лицензий для ресурса необходимо указать ключ безопасности, используемый для проверки пользовательской службой маркеров безопасности, вместо текущего ключа из Azure AD.
  • Когда создается маркер JTW, вместо закрытого ключа текущего сертификата X509 в Azure AD указан ключ безопасности.

Существует два типа ключей безопасности:

  • Симметричный ключ: тот же ключ используется для создания и проверки маркера JWT.
  • Асимметричный ключ: пара открытого и закрытого ключей в сертификате X509 используется с закрытым ключом для шифрования и создания маркера JWT и с открытым ключом для проверки маркера.

Примечание

При использовании .NET Framework/C# в качестве платформы разработки сертификат X509, используемый для асимметричного ключа безопасности, должен иметь длину ключа минимум 2048 бит. Такая длина ключа — требование класса System.IdentityModel.Tokens.X509AsymmetricSecurityKey в .NET Framework. В противном случае выдается следующее исключение: IDX10630: The 'System.IdentityModel.Tokens.X509AsymmetricSecurityKey' for signing can't be smaller than '2048' bits (System.IdentityModel.Tokens.X509AsymmetricSecurityKey для подписывания не может быть меньше 2048 бит).

Использование службы доставки лицензий и ключей, не относящейся к Службам мультимедиа

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

Практические руководства, учебники и примеры

В примере .NET Digital Rights Management показано, как реализовать систему с несколькими DRM в Службах мультимедиа версии 3 с помощью .NET.

Имеются дополнительные примеры защиты содержимого для Node.JS и Python:

Node.JS Python Описание
Node.JS: отправка и потоковая передача HLS и DASH с помощью DRM PlayReady и Widevine Python: отправка и потоковая передача HLS и DASH с помощью DRM PlayReady и Widevine Демонстрирует кодирование и выполнение потоковой передачи с использованием Widevine и PlayReady DRM.
Node.JS: защита и потоковая передача содержимого уровня "Базовый" с помощью Playready DRM Python: защита и потоковая передача содержимого уровня "Базовый" с помощью Playready DRM Демонстрирует кодирование и потоковую передачу с использованием PlayReady DRM
Node.JS: защита и потоковая передача содержимого уровня "Базовый" с помощью Widevine DRM Python: защита и потоковая передача содержимого уровня "Базовый" с помощью Widevine DRM Демонстрирует кодирование и потоковую передачу с использованием Widevine DRM

Справка и поддержка

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