FairPlay — co to jest, DRM od Apple i zasady działania

Autor: IT Sectr Opublikowano: 2026-05-24 Czas czytania: 8 min

FairPlay — to zastrzeżona technologia DRM opracowana przez Apple do ochrony treści wideo w ekosystemie iOS, tvOS i macOS. System wykorzystuje Secure Enclave i sprzętowe szyfrowanie do bezpiecznego przechowywania kluczy, co pozwala serwisom streamingowym dostarczać treści w jakości 4K HDR. Zgodnie z dokumentacją Apple Developer (2025), FairPlay Streaming jest obsługiwane na wszystkich urządzeniach Apple z układem A8 i nowszym.

Najważniejsze

  • FairPlay — rozwiązanie DRM Apple do ochrony wideo w aplikacjach iOS, tvOS i macOS.
  • Secure Enclave zapewnia sprzętowe przechowywanie kluczy deszyfrujących na poziomie układu.
  • FairPlay Streaming (FPS) — protokół do ochrony strumieni HLS w czasie rzeczywistym.
  • SCM (Server Certificate Module) — moduł weryfikacji autentyczności serwera licencji.
  • Integracja wymaga rejestracji w programie Apple Developer i uzyskania certyfikatu FPS.

Co to jest FairPlay?

FairPlay — to technologia DRM stworzona przez Apple i wdrożona w systemach operacyjnych iOS, tvOS, iPadOS i macOS do ochrony treści audio i wideo przed nieautoryzowanym użyciem. Pierwotnie opracowana dla iTunes i iPod, ewoluowała w pełnoprawny system ochrony treści strumieniowych poprzez protokół FairPlay Streaming.

W przeciwieństwie do innych rozwiązań DRM, FairPlay jest w pełni zintegrowana z architekturą sprzętową urządzeń Apple. Klucze deszyfrujące są przechowywane w Secure Enclave — chronionym koprocesorze, odizolowanym od głównego systemu operacyjnego, co czyni ekstrakcję kluczy praktycznie niemożliwą nawet przy jailbreaku.

Ewolucja FairPlay

Historia FairPlay rozpoczęła się w 2003 roku wraz z sklepem iTunes Store, gdzie stosowano szyfrowanie plików AAC z wykorzystaniem zastrzeżonego formatu M4P. W 2009 roku Apple wprowadziło FairPlay Streaming — protokół ochrony strumieniowego wideo oparty na HLS, który później stał się obowiązkowy dla Apple TV i aplikacji iOS.

Począwszy od iOS 10 i tvOS 10, Apple udostępniło FairPlay Streaming zewnętrznym deweloperom poprzez framework AVFoundation. Obecnie Netflix, Amazon Prime Video i Disney+ używają FairPlay do ochrony treści na urządzeniach Apple w rozdzielczości do 4K HDR z Dolby Vision.

Jak działa FairPlay DRM?

Działanie FairPlay opiera się na trzyetapowym procesie: pakowanie treści, dystrybucja przez CDN i deszyfrowanie na urządzeniu. Na etapie pakowania wideo jest szyfrowane przy użyciu AES-128 lub AES-256, a klucze szyfrowania są powiązane z konkretnym urządzeniem poprzez mechanizm Key Envelope.

Przy żądaniu treści odtwarzacz inicjuje sesję FairPlay poprzez AVContentKeySession, który wysyła żądanie do serwera licencji dostawcy treści. Serwer sprawdza prawa dostępu i zwraca klucz deszyfrujący, zaszyfrowany kluczem publicznym certyfikatu urządzenia.

Proces uzyskiwania licencji

Klient tworzy instancję AVContentKeySession i dodaje do niej ścieżkę treści. System tworzy żądanie SPC (Server Playback Context), które zawiera identyfikator urządzenia i certyfikat aplikacji, poświadczony przez Apple. To żądanie jest wysyłane na serwer licencji przez HTTPS.

Serwer licencji waliduje SPC, wyodrębnia klucz treści ze swojej bazy danych i szyfruje go kluczem publicznym urządzenia, tworząc CKC (Content Key Context). CKC jest zwracane do klienta, gdzie AVContentKeySession odszyfrowuje go przy użyciu klucza prywatnego Secure Enclave.

Schemat działania 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)

Kluczowe komponenty FairPlay

Architektura FairPlay obejmuje kilka powiązanych ze sobą komponentów: certyfikat aplikacji, Key Envelope, Secure Enclave i moduł deszyfrowania treści. Każdy komponent pełni swoją rolę w łańcuchu ochrony od serwera do ekranu użytkownika.

KomponentFunkcjaGdzie jest wykonywany
Certyfikat aplikacjiIdentyfikacja aplikacji przed serwerem licencjiPrzechowywany w bundle aplikacji
SPCServer Playback Context — żądanie licencjiTworzony przez AVContentKeySession
CKCContent Key Context — odpowiedź z kluczemPrzetwarzany przez Secure Enclave
Secure EnclaveSprzętowe przechowywanie i deszyfrowanie kluczySprzętowy koprocesor SoC
Key EnvelopeKontener na klucz z metadanymi licencjiTworzony przez serwer licencji

Certyfikat aplikacji FairPlay

Do pracy z FairPlay deweloper musi uzyskać certyfikat FPS od Apple poprzez program Apple Developer. Certyfikat zawiera klucz publiczny pary asymetrycznej, której część prywatna jest używana przez Secure Enclave do deszyfrowania CKC.

Certyfikat aplikacji jest dodawany do bundle projektu i automatycznie podpisywany przy kompilacji przez Xcode. Przy pierwszym odtworzeniu chronionej treści system sprawdza ważność certyfikatu i żąda licencji.

Secure Enclave i ochrona sprzętowa

Secure Enclave — to dedykowany koprocesor w układach Apple A-serii i M-serii, działający na izolowanym systemie L4. Odpowiada za generowanie i przechowywanie kluczy prywatnych, deszyfrowanie CKC i przekazywanie klucza treści do modułu deszyfrowania wideo.

Wszystkie operacje kryptograficzne są wykonywane wyłącznie wewnątrz Secure Enclave, a klucze nigdy nie opuszczają chronionego obszaru. Ataki kanałami bocznymi na magistralę danych między Secure Enclave a głównym procesorem są blokowane przez sprzętowy monitoring integralności.

Integracja FairPlay w iOS i tvOS

Integracja FairPlay w aplikacjach iOS i tvOS jest wykonywana poprzez AVFoundation i wymaga implementacji protokołów AVContentKeySessionDelegate i AVAssetResourceLoaderDelegate. Deweloper musi obsłużyć cztery kluczowe zdarzenia: otrzymanie SPC, wysłanie na serwer, otrzymanie CKC i przekazanie do odtwarzacza.

Implementacja delegata 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)
        )
    }
}

Przygotowanie certyfikatu i identyfikatora treści

Przed rozpoczęciem odtwarzania należy załadować certyfikat aplikacji z bundle i przygotować identyfikator treści (najczęściej URL strumienia lub identyfikator filmu). Certyfikat musi być ważny przynajmniej przez okres wynajmu treści, w przeciwnym razie licencjonowanie zakończy się błędem.

Identyfikator treści jest przekazywany do systemu licencjonowania na etapie tworzenia SPC. Serwer licencji używa tego identyfikatora do wyszukania odpowiedniego klucza i polityk odtwarzania, w tym ograniczeń czasowych i urządzeniowych.

Obsługa błędów licencjonowania

W procesie licencjonowania mogą wystąpić błędy: wygaśnięcie certyfikatu, nieprawidłowy identyfikator treści, brak praw dostępu użytkownika. Błędy FairPlay są zwracane przez delegata contentKeySession:didFailWithError i powinny być obsługiwane z wyświetleniem odpowiedniego interfejsu użytkownikowi.

Typowe kody błędów obejmują FP_NO_ENTITLEMENT przy braku subskrypcji i FP_REQUEST_TIMEOUT przy problemach sieciowych. Zaleca się implementację logiki ponownych prób z wykładniczym opóźnieniem dla tymczasowych awarii sieci.

FairPlay Streaming i licencjonowanie

FairPlay Streaming — to protokół ochrony strumieniowego wideo oparty na HLS, który wykorzystuje szyfrowanie segmentów i mechanizm kluczy z ograniczonym okresem ważności. Dostawca treści wdraża własny serwer licencji, który integruje się z systemem uwierzytelniania użytkowników.

Serwer licencji otrzymuje od klienta żądanie SPC, wyodrębnia z niego identyfikator urządzenia i treści, sprawdza prawa użytkownika w backendzie i tworzy odpowiedź CKC. Klucz treści jest szyfrowany kluczem publicznym urządzenia z certyfikatu FPS.

Polityki licencjonowania FairPlay

Licencja FairPlay może zawierać ograniczenia czasowe (wynajem na 48 godzin), liczbę urządzeń (maksymalnie 5 autoryzowanych) i jakość odtwarzania (ograniczenie do 1080p dla podstawowego taryfu). Polityki są ustawiane po stronie serwera i pakowane w Key Envelope.

Ważne jest, że polityki FairPlay są stosowane na poziomie Secure Enclave i nie można ich ominąć programowymi metodami na poziomie systemu operacyjnego. Nawet przy jailbreaku ochrona sprzętowa zapobiega ekstrakcji klucza lub zmianie parametrów licencji.

Porównanie FairPlay z innymi DRM

ParametrFairPlayWidevinePlayReady
EkologiaApple (iOS, tvOS, macOS)Google (Android, Chrome)Microsoft (Windows, Xbox)
Maksymalna jakość4K HDR Dolby Vision4K UHD4K UHD
Ochrona sprzętowaSecure EnclaveTEETPM + TEE
Wymagania dla deweloperaCertyfikat FPS AppleNiewymaganeLicencja Microsoft

Cechy działania FairPlay na różnych wersjach iOS

Wsparcie dla FairPlay Streaming zależy od wersji systemu operacyjnego i typu urządzenia. Począwszy od iOS 10 i tvOS 10, API AVContentKeySession jest dostępne dla wszystkich aplikacji, ale przyspieszenie sprzętowe przez Secure Enclave jest wymagane tylko dla treści w jakości 4K HDR. Na urządzeniach z układem A8–A10 dostępna jest tylko maksymalna rozdzielczość 1080p.

W iOS 14 Apple dodało obsługę wielu sesji FairPlay, co pozwala aplikacji na jednoczesne odtwarzanie kilku chronionych strumieni — na przykład obraz w obrazie z różnymi licencjami. iOS 15 rozszerzyło protokół o obsługę tła aktualizacji kluczy dla długotrwałego oglądania.

FairPlay w architekturze multi-DRM

Dla międzyplatformowych serwisów streamingowych FairPlay jest używany jako część architektury multi-DRM wraz z Widevine i PlayReady. Agregatory licencji, takie jak Axinom i EZDRM, udostępniają jednolity API, który tłumaczy żądania na format SPC dla FairPlay i format MediaDrm dla Widevine, upraszczając integrację na wszystkich platformach.

Często zadawane pytania

Co to jest FairPlay DRM w iOS?

FairPlay — to technologia DRM od Apple, wbudowana w iOS, tvOS i macOS do ochrony treści wideo. Wykorzystuje sprzętowe szyfrowanie przez Secure Enclave i protokół FairPlay Streaming do bezpiecznego przesyłania kluczy deszyfrujących na urządzeniach Apple.

Jak uzyskać certyfikat FairPlay Streaming?

Aby uzyskać certyfikat FPS, należy zarejestrować się w programie Apple Developer, utworzyć certyfikat w sekcji Certificates, Identifiers & Profiles i pobrać go w formacie DER. Certyfikat jest dodawany do bundle projektu Xcode i podpisywany przy kompilacji.

Czy można używać FairPlay na Androidzie?

Nie, FairPlay jest niedostępny na Androidzie, ponieważ jest to zastrzeżona technologia Apple związana z architekturą sprzętową Secure Enclave w układach A-serii i M-serii. Dla urządzeń z Androidem używany jest Widevine DRM od Google.

Czym różni się FairPlay od FairPlay Streaming?

FairPlay to ogólna nazwa technologii DRM Apple, a FairPlay Streaming (FPS) to konkretny protokół do ochrony strumieni HLS. FPS wykorzystuje mechanizmy FairPlay do szyfrowania segmentów wideo i zarządzania licencjami przez AVContentKeySession.

Jakie ograniczenia nakłada licencja FairPlay?

Licencja FairPlay może ustawiać ograniczenia czasu oglądania, maksymalnej jakości wideo (720p, 1080p, 4K), liczby urządzeń i okresu ważności klucza. Wszystkie polityki są wykonywane sprzętowo w Secure Enclave i nie mogą być ominięte.

Podsumowanie

  • FairPlay — zastrzeżony DRM Apple z ochroną sprzętową przez Secure Enclave i protokół FairPlay Streaming dla HLS.
  • SPC i CKC — kluczowe komunikaty protokołu: żądanie licencji od klienta i odpowiedź z kluczem od serwera.
  • Certyfikat FPS jest obowiązkowy dla deweloperów i uzyskiwany przez program Apple Developer.
  • Integracja jest wykonywana przez AVContentKeySession i AVAssetResourceLoaderDelegate w AVFoundation.
  • Secure Enclave zapewnia izolowane przechowywanie i przetwarzanie kluczy na poziomie sprzętowym.
  • Ograniczenia licencji obejmują ramy czasowe, jakość i liczbę urządzeń.
  • Podejście multi-DRM z FairPlay, Widevine i PlayReady jest niezbędne dla międzyplatformowych aplikacji streamingowych.

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również