Требования и конфигурация лицензии Apple FairPlay

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


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

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

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

Службы мультимедиа также предоставляют интерфейсы API, которые можно использовать для настройки лицензий FairPlay. В этом разделе рассматриваются требования к лицензиям FairPlay и показано, как настроить лицензию FairPlay с помощью API Служб мультимедиа.

Требования

При использовании Служб мультимедиа для шифрования содержимого HLS с помощью Apple FairPlay и доставки лицензий FairPlay требуется следующее.

  • Регистрация в программе разработки Apple.

  • Корпорация Apple требует от владельца содержимого получить пакет развертывания. Подтвердите, что у вас реализован модуль безопасности ключа (KSM) с использованием служб мультимедиа Azure и что вы подали запрос на окончательный пакет FPS. Окончательный пакет FPS содержит инструкции по сертификации и получению секретного ключа приложения (ASK). ASK используется для настройки FairPlay.

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

    • Сертификат приложения (AC) — это PFX-файл, который содержит закрытый ключ. Создайте этот файл и зашифруйте его с помощью пароля. PFX-файл должен быть в формате Base64.

      В следующих действиях описано, как создать PFX-файл сертификата для FairPlay.

      1. Установите OpenSSL со страницы https://slproweb.com/products/Win32OpenSSL.html.

        Перейдите в папку, где расположены сертификат FairPlay и другие файлы, полученные от Apple.

      2. Выполните следующую команду из командной строки. Она преобразует CER-файл в PEM-файл.

        "C:\OpenSSL-Win32\bin\openssl.exe" x509 -inform der -in FairPlay.cer -out FairPlay-out.pem

      3. Выполните следующую команду из командной строки. Она преобразует PEM-файл в PFX-файл, который содержит закрытый ключ. Затем OpenSSL запросит пароль для PFX-файла.

        "C:\OpenSSL-Win32\bin\openssl.exe" pkcs12 -export -out FairPlay-out.pfx -inkey privatekey.pem -in FairPlay-out.pem -passin file:privatekey-pem-pass.txt

    • Пароль к сертификату приложения — пароль для создания PFX-файла.

    • ASK — ключ, полученный при создании сертификата с использованием портала разработчиков Apple. Каждая группа разработчиков получает уникальный ASK. Сохраните копию ASK в безопасном расположении. ASK необходимо настроить как FairPlayAsk для Служб мультимедиа.

  • На стороне клиента FPS должны быть заданы следующие значения:

    • Сертификат приложения (AC) — это CER-файл или DER-файл, содержащий открытый ключ, который операционная система использует для шифрования некоторых полезных данных. Службы мультимедиа следует связать с этим сертификатом, так как он используется проигрывателем. Служба доставки ключей расшифровывает их, используя соответствующий закрытый ключ.
  • Для воспроизведения зашифрованного потока FairPlay получите реальный ASK, а затем создайте реальный сертификат. В результате этого процесса создаются три элемента:

    • DER-файл;
    • PFX-файл;
    • пароль для PFX-файла.

Примечание

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

FairPlay и приложения проигрывателя

Если содержимое шифруется с помощью Apple FairPlay, отдельные образцы видео и аудиоданных шифруются в режиме AES-128 CBC. Потоковая передача FairPlay (FPS): интегрируется в операционные системы устройств и поддерживается iOS и Apple TV по умолчанию. Включение FPS в Safari (OS X) реализуется благодаря поддержке интерфейса расширений зашифрованных носителей (EME).

Проигрыватель мультимедиа Azure также поддерживает воспроизведение FairPlay. Дополнительные сведения см. в документации по Проигрывателю мультимедиа Azure.

С помощью пакета SDK для iOS можно разрабатывать собственные приложения проигрывателя. Для воспроизведения содержимого FairPlay необходимо реализовать протокол обмена лицензиями. Этот протокол не указывается компанией Apple. Каждое приложение может само выбирать, как отправлять запросы доставки ключей. Служба доставки ключей FairPlay служб мультимедиа ожидает, что SPC поступит как сообщение публикации www-form-url в следующем формате:

spc=<Base64 encoded SPC>

Хранение закрытого ключа FairPlay (PFX) в Azure Key Vault

Закрытый ключ (.pfx), полученный от Apple, должен рассматриваться как безопасный сертификат и может храниться в Azure Key Vault.

  • Файл .pfx сертификата сначала должен быть преобразован в текстовый файл Base64 администратором.
  • После преобразования этот файл можно сохранить в Azure DevOps Services в виде безопасного текстового файла.
  • Затем строку можно сохранить в Azure KeyVault вручную как объект секрета либо как часть скрипта развертывания или сборки для вашего решения. Пример хранения закрытого сертификата FairPlay в Azure KeyVault см. в примере кода проекта Gridwich.
  • При необходимости сохраните пароль для файла .pfx в виде секрета в хранилище ключей.

Пример скрипта CLI

Чтобы скопировать файл закрытого ключа в кодировке Base64 в Azure KeyVault, выполните следующие действия.

set -eu
echo key vault : $SHARED_KV_NAME
echo "Copying FairPlay certificate to key vault as secret"
az keyvault secret set --vault-name $SHARED_KV_NAME -n ams-fairPlay-certificate-b64 -f $(FairPlayCertificate.secureFilePath) --output none

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

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