FairPlay — что это такое, DRM от Apple и принципы работы

Автор: IT Sectr Опубликовано: 2026-05-24 Время чтения: 8 мин

FairPlay — это проприетарная технология DRM, разработанная Apple для защиты видеоконтента в экосистеме iOS, tvOS и macOS. Система использует Secure Enclave и аппаратное шифрование для безопасного хранения ключей, что позволяет стриминговым сервисам предоставлять контент в качестве 4K HDR. Согласно документации Apple Developer (2025), FairPlay Streaming поддерживается на всех устройствах Apple с чипом A8 и новее.

Главное

  • FairPlay — DRM-решение Apple для защиты видео в приложениях iOS, tvOS и macOS.
  • Secure Enclave обеспечивает аппаратное хранение ключей дешифровки на уровне чипа.
  • FairPlay Streaming (FPS) — протокол для защиты HLS-потоков в реальном времени.
  • SCM (Server Certificate Module) — модуль проверки подлинности сервера лицензий.
  • Интеграция требует регистрации в программе Apple Developer и получения сертификата FPS.

Что такое FairPlay?

FairPlay — это технология DRM, созданная Apple и внедрённая в операционные системы iOS, tvOS, iPadOS и macOS для защиты аудио- и видеоконтента от неавторизованного использования. Первоначально разработанная для iTunes и iPod, она эволюционировала в полноценную систему защиты стримингового контента через протокол FairPlay Streaming.

В отличие от других DRM-решений, FairPlay полностью интегрирована в аппаратную архитектуру устройств Apple. Ключи дешифровки хранятся в Secure Enclave — защищённом сопроцессоре, изолированном от основной ОС, что делает извлечение ключей практически невозможным даже при наличии джейлбрейка.

Эволюция FairPlay

История FairPlay началась в 2003 году с магазина iTunes Store, где применялось шифрование файлов AAC с использованием проприетарного формата M4P. В 2009 году Apple представила FairPlay Streaming — протокол защиты потокового видео на основе HLS, который впоследствии стал обязательным для Apple TV и приложений iOS.

Начиная с iOS 10 и tvOS 10, Apple открыла доступ к FairPlay Streaming для сторонних разработчиков через фреймворк AVFoundation. Сегодня Netflix, Amazon Prime Video и Disney+ используют FairPlay для защиты контента на устройствах Apple вплоть до разрешения 4K HDR с Dolby Vision.

Как работает FairPlay DRM?

Работа FairPlay основана на трёхэтапном процессе: упаковка контента, распространение через CDN и дешифровка на устройстве. На этапе упаковки видеошифруется с использованием AES-128 или AES-256, а ключи шифрования связываются с конкретным устройством через механизм Key Envelope.

При запросе контента плеер инициирует сессию FairPlay через AVContentKeySession, который отправляет запрос на сервер лицензий контент-провайдера. Сервер проверяет права доступа и возвращает ключ дешифровки, зашифрованный открытым ключом сертификата устройства.

Процесс получения лицензии

Клиент создаёт экземпляр AVContentKeySession и добавляет к нему трек контента. Система формирует запрос SPC (Server Playback Context), который содержит идентификатор устройства и сертификат приложения, заверенный Apple. Этот запрос отправляется на сервер лицензий по HTTPS.

Сервер лицензий валидирует SPC, извлекает ключ контента из своей базы и шифрует его открытым ключом устройства, формируя CKC (Content Key Context). CKC возвращается клиенту, где AVContentKeySession расшифровывает его с использованием закрытого ключа Secure Enclave.

Схема работы FairPlay Streaming

swift
let contentKeySession = AVContentKeySession(keySystem: .fairPlayStreaming)
contentKeySession.setDelegate(self, queue: .main)

let asset = AVURLAsset(url: streamURL)
asset.resourceLoader.setDelegate(self, queue: .main)
contentKeySession.addContentKeyRecipient(asset)

let playerItem = AVPlayerItem(asset: asset)
let player = AVPlayer(playerItem: playerItem)

Ключевые компоненты FairPlay

Архитектура FairPlay включает несколько взаимосвязанных компонентов: сертификат приложения, Key Envelope, Secure Enclave и модуль дешифровки контента. Каждый компонент выполняет свою роль в цепочке защиты от сервера до экрана пользователя.

КомпонентФункцияГде выполняется
Сертификат приложенияИдентификация приложения перед сервером лицензийХранится в бандле приложения
SPCServer Playback Context — запрос лицензииФормируется AVContentKeySession
CKCContent Key Context — ответ с ключомОбрабатывается Secure Enclave
Secure EnclaveАппаратное хранение и расшифровка ключейАппаратный сопроцессор SoC
Key EnvelopeКонтейнер для ключа с метаданными лицензииФормируется сервером лицензий

Сертификат приложения FairPlay

Для работы с FairPlay разработчик должен получить сертификат FPS от Apple через программу Apple Developer. Сертификат включает открытый ключ асимметричной пары, закрытая часть которой используется Secure Enclave для расшифровки CKC.

Сертификат приложения добавляется в бандл проекта и автоматически подписывается при сборке через Xcode. При первом воспроизведении защищённого контента система проверяет валидность сертификата и запрашивает лицензию.

Secure Enclave и аппаратная защита

Secure Enclave — это выделенный сопроцессор на чипах Apple A-серии и M-серии, работающий на изолированной ОС L4. Он отвечает за генерацию и хранение закрытых ключей, расшифровку CKC и передачу ключа контента модулю дешифровки видео.

Все криптографические операции выполняются исключительно внутри Secure Enclave, и ключи никогда не покидают защищённую область. Атаки по сторонним каналам на шину передачи данных между Secure Enclave и основным процессором блокируются аппаратным мониторингом целостности.

Интеграция FairPlay в iOS и tvOS

Интеграция FairPlay в приложения iOS и tvOS выполняется через AVFoundation и требует реализации протоколов AVContentKeySessionDelegate и AVAssetResourceLoaderDelegate. Разработчику необходимо обрабатывать четыре ключевых события: получение SPC, отправку на сервер, получение CKC и передачу плееру.

Реализация делегата AVContentKeySession

swift
func contentKeySession(
    _ session: AVContentKeySession,
    didProvide keyRequest: AVContentKeyRequest
) {
    guard let identifier = keyRequest.identifier
    else { return }

    let spc: Data = keyRequest.makeStreamingContentKeyRequestData(
        appCertificate: certificate,
        contentIdentifier: identifier,
        options: nil
    )

    licenseService.requestCKC(spc) { ckc in
        keyRequest.processContentKeyResponse(
            AVContentKeyResponse(fairPlayStreamingKeyResponseData: ckc)
        )
    }
}

Подготовка сертификата и идентификатора контента

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

Идентификатор контента передаётся в систему лицензирования на этапе формирования SPC. Сервер лицензий использует этот идентификатор для поиска соответствующего ключа и политик воспроизведения, включая ограничения по времени и устройствам.

Обработка ошибок лицензирования

В процессе лицензирования могут возникать ошибки: истечение сертификата, неверный идентификатор контента, отсутствие прав доступа у пользователя. Ошибки FairPlay возвращаются через делегат contentKeySession:didFailWithError и должны обрабатываться с показом соответствующего UI пользователю.

Типовые коды ошибок включают FP_NO_ENTITLEMENT при отсутствии подписки и FP_REQUEST_TIMEOUT при проблемах с сетью. Рекомендуется реализовать логику повторных попыток с экспоненциальной задержкой для временных сетевых сбоев.

FairPlay Streaming и лицензирование

FairPlay Streaming — это протокол защиты потокового видео на базе HLS, который использует шифрование сегментов и механизм ключей с ограниченным сроком действия. Провайдер контента разворачивает собственный сервер лицензий, который интегрируется с системой аутентификации пользователей.

Сервер лицензий получает от клиента SPC-запрос, извлекает из него идентификатор устройства и контента, проверяет права пользователя в бэкенде и формирует CKC-ответ. Ключ контента шифруется открытым ключом устройства из сертификата FPS.

Политики лицензирования FairPlay

Лицензия FairPlay может содержать ограничения по времени (аренда на 48 часов), количеству устройств (максимум 5 авторизованных) и качеству воспроизведения (ограничение до 1080p для базового тарифа). Политики задаются на стороне сервера и упаковываются в Key Envelope.

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

Сравнение FairPlay с другими DRM

ПараметрFairPlayWidevinePlayReady
ЭкосистемаApple (iOS, tvOS, macOS)Google (Android, Chrome)Microsoft (Windows, Xbox)
Максимальное качество4K HDR Dolby Vision4K UHD4K UHD
Аппаратная защитаSecure EnclaveTEETPM + TEE
Требования к разработчикуFPS сертификат AppleНе требуетсяЛицензия Microsoft

Особенности работы FairPlay на разных версиях iOS

Поддержка FairPlay Streaming зависит от версии операционной системы и типа устройства. Начиная с iOS 10 и tvOS 10, API AVContentKeySession доступен для всех приложений, но аппаратное ускорение через Secure Enclave требуется только для контента в качестве 4K HDR. На устройствах с чипом A8–A10 доступно только максимальное разрешение 1080p.

В iOS 14 Apple добавила поддержку нескольких сессий FairPlay, что позволяет приложению воспроизводить несколько защищённых потоков одновременно — например, картинка в картинке с разными лицензиями. iOS 15 расширила протокол поддержкой фонового обновления ключей для длительного просмотра.

FairPlay в архитектуре мульти-DRM

Для кросс-платформенных стриминговых сервисов FairPlay используется как часть мульти-DRM архитектуры вместе с Widevine и PlayReady. Агрегаторы лицензий, такие как Axinom и EZDRM, предоставляют единый API, который транслирует запросы в формат SPC для FairPlay и в формат MediaDrm для Widevine, упрощая интеграцию на всех платформах.

Часто задаваемые вопросы

Что такое FairPlay DRM в iOS?

FairPlay — это технология DRM от Apple, встроенная в iOS, tvOS и macOS для защиты видеоконтента. Она использует аппаратное шифрование через Secure Enclave и протокол FairPlay Streaming для безопасной передачи ключей дешифровки на устройствах Apple.

Как получить сертификат FairPlay Streaming?

Для получения сертификата FPS необходимо зарегистрироваться в программе Apple Developer, создать сертификат в разделе Certificates, Identifiers & Profiles и скачать его в формате DER. Сертификат добавляется в бандл Xcode-проекта и подписывается при сборке.

Можно ли использовать FairPlay на Android?

Нет, FairPlay недоступен на Android, так как это проприетарная технология Apple, привязанная к аппаратной архитектуре Secure Enclave на чипах A-серии и M-серии. Для Android-устройств используется Widevine DRM от Google.

Чем отличается FairPlay от FairPlay Streaming?

FairPlay — общее название технологии DRM Apple, а FairPlay Streaming (FPS) — конкретный протокол для защиты HLS-потоков. FPS использует механизмы FairPlay для шифрования сегментов видео и управления лицензиями через AVContentKeySession.

Какие ограничения накладывает лицензия FairPlay?

Лицензия FairPlay может задавать ограничения по времени просмотра, максимальному качеству видео (720p, 1080p, 4K), количеству устройств и сроку действия ключа. Все политики выполняются аппаратно в Secure Enclave и не могут быть обойдены.

Итоги

  • FairPlay — проприетарный DRM Apple с аппаратной защитой через Secure Enclave и протокол FairPlay Streaming для HLS.
  • SPC и CKC — ключевые сообщения протокола: запрос лицензии от клиента и ответ с ключом от сервера.
  • Сертификат FPS обязателен для разработчиков и получается через программу Apple Developer.
  • Интеграция выполняется через AVContentKeySession и AVAssetResourceLoaderDelegate в AVFoundation.
  • Secure Enclave обеспечивает изолированное хранение и обработку ключей на аппаратном уровне.
  • Ограничения лицензии включают временные рамки, качество и количество устройств.
  • Мульти-DRM подход с FairPlay, Widevine и PlayReady необходим для кросс-платформенных стриминговых приложений.

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

Читайте также