FairPlay — az Apple által kifejlesztett DRM-technológia a videótartalom védelmére az iOS, tvOS és macOS ökoszisztémában. A rendszer a Secure Enclave-et és hardveres titkosítást használ a kulcsok biztonságos tárolására, ami lehetővé teszi a streaming szolgáltatók számára, hogy a tartalmat 4K HDR minőségben kínálják. Az Apple Developer dokumentációja (2025) szerint a FairPlay Streaming minden olyan Apple-eszközön támogatott, amely A8-as vagy újabb chipet tartalmaz.
A lényeg
FairPlay — DRM-technológia, amelyet az Apple hozott létre, és integrált az iOS, tvOS, iPadOS és macOS operációs rendszerekbe az audio- és videótartalom jogosulatlan használat elleni védelme érdekében. Eredetileg az iTunes és az iPod számára fejlesztették, majd a FairPlay Streaming protokollon keresztül a streaming tartalom védelmére szolgáló teljes értékű rendszerré fejlődött.
Más DRM-megoldásoktól eltérően a FairPlay teljes mértékben be van építve az Apple-eszközök hardveres architektúrájába. A visszafejtési kulcsok a Secure Enclave-ben — a fő operációs rendszertől elszigetelt, védett társprocesszorban — tárolódnak, ami a kulcsok kinyerését gyakorlatilag lehetetlenné teszi még jailbreak esetén is.
A FairPlay története 2003-ban kezdődött az iTunes Store áruházzal, ahol AAC-fájlokat titkosítottak a szabadalmaztatott M4P formátum használatával. 2009-ben az Apple bemutatta a FairPlay Streaminget — a HLS-alapú streaming videó védelmére szolgáló protokollt, amely később kötelezővé vált az Apple TV és az iOS-alkalmazások számára.
Az iOS 10 és tvOS 10 rendszertől kezdve az Apple a AVFoundation keretrendszeren keresztül megnyitotta a FairPlay Streaming elérését a külső fejlesztők számára. Ma a Netflix, az Amazon Prime Video és a Disney+ a FairPlay-t használja a tartalmak védelmére Apple-eszközökön akár 4K HDR és Dolby Vision minőségben.
A FairPlay működése háromfázisú folyamatra épül: a tartalom csomagolása, a CDN-en keresztüli terjesztés és a visszafejtés az eszközön. A csomagolási szakaszban a videót AES-128 vagy AES-256 titkosítással titkosítják, a titkosítási kulcsokat pedig a Key Envelope mechanizmus segítségével egy adott eszközhöz kötik.
A tartalom kérésekor a lejátszó a AVContentKeySession segítségével FairPlay-munkamenetet indít, amely licenckérést küld a tartalomszolgáltató licenckiszolgálójának. A kiszolgáló ellenőrzi a hozzáférési jogokat, és visszaadja a visszafejtési kulcsot, amelyet az eszköz tanúsítványának nyilvános kulcsával titkosítottak.
A kliens létrehoz egy AVContentKeySession példányt, és hozzáadja hozzá a tartalom sávját. A rendszer SPC (Server Playback Context) kérést állít elő, amely az eszköz azonosítóját és az Apple által hitelesített alkalmazástanúsítványt tartalmazza. Ezt a kérést HTTPS-en keresztül küldi el a licenckiszolgálónak.
A licenckiszolgáló érvényesíti az SPC-t, kinyeri a tartalomkulcsot az adatbázisából, és az eszköz nyilvános kulcsával titkosítva CKC-t (Content Key Context) hoz létre. A CKC visszakerül a klienshez, ahol az AVContentKeySession a Secure Enclave magánkulcsának használatával fejti vissza.
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)
A FairPlay architektúrája több, egymással összefüggő összetevőt foglal magában: az alkalmazástanúsítványt, a Key Envelope-et, a Secure Enclave-et és a tartalom-visszafejtő modult. Minden összetevő saját szerepet játszik a védelmi láncban a szervertől a felhasználó képernyőjéig.
| Összetevő | Funkció | Hol fut |
|---|---|---|
| Alkalmazástanúsítvány | Az alkalmazás azonosítása a licenckiszolgáló előtt | A kötegelben (bundle) tárolva |
| SPC | Server Playback Context — licenckérés | Az AVContentKeySession hozza létre |
| CKC | Content Key Context — kulcsot tartalmazó válasz | A Secure Enclave dolgozza fel |
| Secure Enclave | A kulcsok hardveres tárolása és visszafejtése | Az SoC hardveres társprocesszora |
| Key Envelope | Kulcsot és licenc-metaadatokat tartalmazó konténer | A licenckiszolgáló hozza létre |
A FairPlay használatához a fejlesztőnek FPS-tanúsítványt kell szereznie az Apple-től az Apple Developer programon keresztül. A tanúsítvány tartalmazza az aszimmetrikus kulcspár nyilvános kulcsát, amelynek titkos részét a Secure Enclave használja a CKC visszafejtésére.
Az alkalmazástanúsítvány hozzáadódik a projekt kötegeléhez (bundle), és a Xcode az összeállítás során automatikusan aláírja. A védett tartalom első lejátszásakor a rendszer ellenőrzi a tanúsítvány érvényességét, és licencet kér.
A Secure Enclave az Apple A-sorozatú és M-sorozatú chipjein található dedikált társprocesszor, amely elszigetelt L4 operációs rendszeren fut. Felelős a titkos kulcsok előállításáért és tárolásáért, a CKC visszafejtéséért és a tartalomkulcs átadásáért a videó-visszafejtő modulnak.
Minden kriptográfiai művelet kizárólag a Secure Enclave belsejében történik, és a kulcsok soha nem hagyják el a védett területet. Oldalcsatornás támadásokat a Secure Enclave és a fő processzor közötti adatbusz ellen a hardveres integritásfigyelés blokkolja.
A FairPlay integrálása iOS és tvOS alkalmazásokba az AVFoundation segítségével történik, és az AVContentKeySessionDelegate és az AVAssetResourceLoaderDelegate protokollok megvalósítását igényli. A fejlesztőnek négy kulcsfontosságú eseményt kell kezelnie: az SPC beszerzését, a kiszolgálónak való elküldését, a CKC fogadását és a lejátszónak való átadását.
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)
)
}
}
A lejátszás megkezdése előtt be kell tölteni az alkalmazástanúsítványt a kötegelből (bundle), és elő kell készíteni a tartalomazonosítót (leggyakrabban a streamek URL-je vagy a film azonosítója). A tanúsítványnak legalább a tartalom kölcsönzési időtartamáig érvényesnek kell lennie, különben a licencelés hibával ér véget.
A tartalomazonosítót a licencelő rendszernek adják át az SPC létrehozásának szakaszában. A licenckiszolgáló ezt az azonosítót használja a megfelelő kulcs és a lejátszási szabályzatok — beleértve az idő- és eszközkorlátozásokat — megkeresésére.
A licencelés során hibák léphetnek fel: lejárt tanúsítvány, helytelen tartalomazonosító vagy a felhasználó hozzáférési jogainak hiánya. A FairPlay-hibákat a rendszer a contentKeySession:didFailWithError delegátán keresztül adja vissza, és a megfelelő felhasználói felület (UI) megjelenítésével kell kezelni.
A jellemző hibakódok közé tartozik a FP_NO_ENTITLEMENT, ha nincs előfizetés, és az FP_REQUEST_TIMEOUT hálózati problémák esetén. Az átmeneti hálózati hibákhoz ajánlott exponenciális késleltetésű újrapróbálkozási logikát megvalósítani.
A FairPlay Streaming a HLS-alapú streaming videó védelmére szolgáló protokoll, amely szegmenstitkosítást és korlátozott élettartamú kulcsmechanizmust használ. A tartalomszolgáltató saját licenckiszolgálót telepít, amely integrálódik a felhasználói hitelesítő rendszerrel.
A licenckiszolgáló SPC-kérést kap a klienstől, kinyeri belőle az eszköz és a tartalom azonosítóját, ellenőrzi a felhasználó jogait a háttérrendszerben, és CKC-választ hoz létre. A tartalomkulcsot az FPS-tanúsítványból származó eszköz nyilvános kulcsával titkosítják.
A FairPlay-licenc időbeli korlátozásokat (48 órás kölcsönzés), az eszközök számát (legfeljebb 5 hitelesített eszköz) és a lejátszási minőséget (alap tarifánál 1080p-re korlátozás) tartalmazhat. A szabályzatokat a kiszolgáló oldalán állítják be, és a Key Envelope-be csomagolják.
Fontos megjegyezni, hogy a FairPlay-szabályzatokat a Secure Enclave szintjén alkalmazzák, és az operációs rendszer szintjén szoftveres módszerekkel nem megkerülhetők. Még jailbreak esetén is a hardveres védelem megakadályozza a kulcs kinyerését vagy a licenc paramétereinek módosítását.
| Paraméter | FairPlay | Widevine | PlayReady |
|---|---|---|---|
| Ökoszisztéma | Apple (iOS, tvOS, macOS) | Google (Android, Chrome) | Microsoft (Windows, Xbox) |
| Maximális minőség | 4K HDR Dolby Vision | 4K UHD | 4K UHD |
| Hardveres védelem | Secure Enclave | TEE | TPM + TEE |
| Fejlesztői követelmények | Apple FPS-tanúsítvány | Nem szükséges | Microsoft-licenc |
A FairPlay Streaming támogatása az operációs rendszer verziójától és az eszköz típusától függ. Az iOS 10 és tvOS 10 rendszertől kezdve az AVContentKeySession API minden alkalmazás számára elérhető, de a Secure Enclave-en keresztüli hardveres gyorsítás csak a 4K HDR minőségű tartalomhoz szükséges. Az A8–A10 chippel rendelkező eszközökön csak a maximális 1080p felbontás érhető el.
Az iOS 14-ben az Apple hozzáadta a több FairPlay-munkamenet támogatását, ami lehetővé teszi, hogy az alkalmazás egyszerre több védett streamben játsszon — például kép a képben módban, eltérő licencekkel. Az iOS 15 kiterjesztette a protokollt a kulcsok háttérben történő frissítésének támogatásával a hosszú távú nézéshez.
A platformfüggetlen streaming szolgáltatások esetében a FairPlay a multi-DRM architektúra részeként működik a Widevine és a PlayReady mellett. Licencaggregátorok, például az Axinom és az EZDRM, egységes API-t biztosítanak, amely a kéréseket a FairPlay SPC-formátumába, illetve a Widevine MediaDrm formátumába alakítja, leegyszerűsítve az integrációt minden platformon.
Gyakran ismételt kérdések
FairPlay — az Apple DRM-technológiája, amely be van építve az iOS, tvOS és macOS rendszerbe a videótartalom védelmére. Hardveres titkosítást használ a Secure Enclave-en keresztül, valamint a FairPlay Streaming protokollt a visszafejtési kulcsok biztonságos átvitelére Apple-eszközökön.
Az FPS-tanúsítvány megszerzéséhez regisztrálni kell az Apple Developer programban, létre kell hozni a tanúsítványt a Certificates, Identifiers & Profiles szakaszban, és DER formátumban kell letölteni. A tanúsítványt hozzáadják az Xcode-projekt kötegeléhez (bundle), és az összeállításkor aláírják.
Nem, a FairPlay nem elérhető Androidon, mivel ez az Apple szabadalmaztatott technológiája, amely az A- és M-sorozatú chipek Secure Enclave hardveres architektúrájához kötött. Android-eszközökön a Google Widevine DRM-jét használják.
A FairPlay az Apple DRM-technológiájának általános elnevezése, míg a FairPlay Streaming (FPS) a HLS-folyamok védelmére szolgáló konkrét protokoll. Az FPS a FairPlay mechanizmusait használja a videószegmensek titkosítására és a licencek kezelésére az AVContentKeySession segítségével.
A FairPlay-licenc korlátozásokat szabhat meg a nézési idő, a maximális videóminőség (720p, 1080p, 4K), az eszközök száma és a kulcs érvényességi ideje tekintetében. Minden szabályzat hardveresen, a Secure Enclave-ben fut, és nem megkerülhető.
Összegzés
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is