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 потоку або ID фільму). Сертифікат повинен бути чинним щонайменше протягом строку оренди контенту, інакше ліцензування завершиться невдачею.

Ідентифікатор контенту передається в систему ліцензування на етапі формування SPC. Сервер ліцензій використовує цей ідентифікатор для пошуку відповідного ключа та політик відтворення, включаючи обмеження за часом та кількістю пристроїв.

Обробка помилок ліцензування

Під час ліцензування можуть виникати помилки: закінчення терміну дії сертифіката, недійсний ідентифікатор контенту, відсутність прав доступу користувача. Помилки FairPlay повертаються через делегат contentKeySession:didFailWithError та повинні оброблятися з відображенням відповідного інтерфейсу.

Типові коди помилок включають 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 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

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