FairPlay — este o tehnologie DRM proprietară dezvoltată de Apple pentru protejarea conținutului video în ecosistemul iOS, tvOS și macOS. Sistemul utilizează Secure Enclave și criptarea hardware pentru stocarea sigură a cheilor, permițând serviciilor de streaming să ofere conținut în calitate 4K HDR. Conform documentației Apple Developer (2025), FairPlay Streaming este suportat pe toate dispozitivele Apple cu cip A8 și mai noi.
Principalele puncte
FairPlay — este o tehnologie DRM creată de Apple și implementată în sistemele de operare iOS, tvOS, iPadOS și macOS pentru protejarea conținutului audio și video împotriva utilizării neautorizate. Dezvoltată inițial pentru iTunes și iPod, a evoluat într-un sistem complet de protecție a conținutului streaming prin protocolul FairPlay Streaming.
Spre deosebire de alte soluții DRM, FairPlay este complet integrată în arhitectura hardware a dispozitivelor Apple. Cheile de decriptare sunt stocate în Secure Enclave — un coprocesor protejat, izolat de sistemul de operare principal, ceea ce face extragerea cheilor practic imposibilă chiar și cu jailbreak.
Istoria FairPlay a început în 2003 cu magazinul iTunes Store, unde se aplica criptarea fișierelor AAC folosind formatul proprietar M4P. În 2009, Apple a introdus FairPlay Streaming — un protocol de protecție a videoului streaming bazat pe HLS, care ulterior a devenit obligatoriu pentru Apple TV și aplicațiile iOS.
Începând cu iOS 10 și tvOS 10, Apple a deschis accesul la FairPlay Streaming pentru dezvoltatorii terți prin framework-ul AVFoundation. Astăzi, Netflix, Amazon Prime Video și Disney+ folosesc FairPlay pentru protejarea conținutului pe dispozitivele Apple până la rezoluția 4K HDR cu Dolby Vision.
Funcționarea FairPlay se bazează pe un proces în trei etape: ambalarea conținutului, distribuirea prin CDN și decriptarea pe dispozitiv. La etapa de ambalare, videoul este criptat folosind AES-128 sau AES-256, iar cheile de criptare sunt legate de un anumit dispozitiv prin mecanismul Key Envelope.
La solicitarea conținutului, playerul inițiază o sesiune FairPlay prin AVContentKeySession, care trimite o solicitare către serverul de licențe al furnizorului de conținut. Serverul verifică drepturile de acces și returnează cheia de decriptare, criptată cu cheia publică a certificatului dispozitivului.
Clientul creează o instanță AVContentKeySession și îi adaugă piesa de conținut. Sistemul formează o solicitare SPC (Server Playback Context), care conține identificatorul dispozitivului și certificatul aplicației, atestat de Apple. Această solicitare este trimisă la serverul de licențe prin HTTPS.
Serverul de licențe validează SPC, extrage cheia de conținut din baza sa de date și o criptează cu cheia publică a dispozitivului, formând CKC (Content Key Context). CKC este returnat clientului, unde AVContentKeySession îl decriptează folosind cheia privată a Secure Enclave.
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)
Arhitectura FairPlay include mai multe componente interconectate: certificatul aplicației, Key Envelope, Secure Enclave și modulul de decriptare a conținutului. Fiecare componentă joacă rolul său în lanțul de protecție de la server până la ecranul utilizatorului.
| Componentă | Funcție | Unde se execută |
|---|---|---|
| Certificatul aplicației | Identificarea aplicației în fața serverului de licențe | Stocat în bundle-ul aplicației |
| SPC | Server Playback Context — solicitarea licenței | Format de AVContentKeySession |
| CKC | Content Key Context — răspunsul cu cheia | Procesat de Secure Enclave |
| Secure Enclave | Stocarea hardware și decriptarea cheilor | Coprocesor hardware SoC |
| Key Envelope | Container pentru cheie cu metadatele licenței | Format de serverul de licențe |
Pentru a lucra cu FairPlay, dezvoltatorul trebuie să obțină certificatul FPS de la Apple prin programul Apple Developer. Certificatul include cheia publică a unei perechi asimetrice, a cărei parte privată este folosită de Secure Enclave pentru decriptarea CKC.
Certificatul aplicației este adăugat în bundle-ul proiectului și semnat automat la compilare prin Xcode. La prima redare a conținutului protejat, sistemul verifică validitatea certificatului și solicită licența.
Secure Enclave — este un coprocesor dedicat pe cipurile Apple din seria A și M, care rulează pe sistemul de operare izolat L4. Acesta este responsabil pentru generarea și stocarea cheilor private, decriptarea CKC și transmiterea cheii de conținut către modulul de decriptare video.
Toate operațiile criptografice sunt executate exclusiv în interiorul Secure Enclave, iar cheile nu părăsesc niciodată zona protejată. Atacurile pe canale laterale asupra magistralei de date dintre Secure Enclave și procesorul principal sunt blocate prin monitorizarea hardware a integrității.
Integrarea FairPlay în aplicațiile iOS și tvOS se realizează prin AVFoundation și necesită implementarea protocoalelor AVContentKeySessionDelegate și AVAssetResourceLoaderDelegate. Dezvoltatorul trebuie să gestioneze patru evenimente cheie: primirea SPC, trimiterea la server, primirea CKC și transmiterea către player.
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)
)
}
}
Înainte de începerea redării, trebuie încărcat certificatul aplicației din bundle și pregătit identificatorul de conținut (de obicei URL-ul fluxului sau identificatorul filmului). Certificatul trebuie să fie valabil cel puțin pe perioada închirierii conținutului, altfel licențierea se va încheia cu eroare.
Identificatorul de conținut este transmis sistemului de licențiere la etapa formării SPC. Serverul de licențe folosește acest identificator pentru a găsi cheia corespunzătoare și politicile de redare, inclusiv restricțiile de timp și de dispozitiv.
În procesul de licențiere pot apărea erori: expirarea certificatului, identificator de conținut incorect, lipsa drepturilor de acces ale utilizatorului. Erorile FairPlay sunt returnate prin delegatul contentKeySession:didFailWithError și trebuie gestionate cu afișarea unei interfețe corespunzătoare utilizatorului.
Codurile de eroare tipice includ FP_NO_ENTITLEMENT în lipsa abonamentului și FP_REQUEST_TIMEOUT în cazul problemelor de rețea. Se recomandă implementarea logicii de reîncercare cu întârziere exponențială pentru defecțiunile temporare de rețea.
FairPlay Streaming — este un protocol de protecție a videoului streaming bazat pe HLS, care utilizează criptarea segmentelor și mecanismul cheilor cu durată limitată de valabilitate. Furnizorul de conținut implementează propriul server de licențe, care se integrează cu sistemul de autentificare a utilizatorilor.
Serverul de licențe primește de la client solicitarea SPC, extrage din aceasta identificatorul dispozitivului și al conținutului, verifică drepturile utilizatorului în backend și formează răspunsul CKC. Cheia de conținut este criptată cu cheia publică a dispozitivului din certificatul FPS.
Licența FairPlay poate conține restricții de timp (închiriere pentru 48 de ore), număr de dispozitive (maximum 5 autorizate) și calitate a redării (limitare la 1080p pentru tariful de bază). Politicile sunt stabilite pe partea serverului și ambalate în Key Envelope.
Este important de reținut că politicile FairPlay sunt aplicate la nivelul Secure Enclave și nu pot fi ocolite prin metode software la nivelul sistemului de operare. Chiar și cu jailbreak, protecția hardware împiedică extragerea cheii sau modificarea parametrilor licenței.
| Parametru | FairPlay | Widevine | PlayReady |
|---|---|---|---|
| Ecosistem | Apple (iOS, tvOS, macOS) | Google (Android, Chrome) | Microsoft (Windows, Xbox) |
| Calitate maximă | 4K HDR Dolby Vision | 4K UHD | 4K UHD |
| Protecție hardware | Secure Enclave | TEE | TPM + TEE |
| Cerințe pentru dezvoltator | Certificat FPS Apple | Nu este necesar | Licență Microsoft |
Suportul pentru FairPlay Streaming depinde de versiunea sistemului de operare și de tipul dispozitivului. Începând cu iOS 10 și tvOS 10, API-ul AVContentKeySession este disponibil pentru toate aplicațiile, dar accelerarea hardware prin Secure Enclave este necesară doar pentru conținutul în calitate 4K HDR. Pe dispozitivele cu cip A8–A10 este disponibilă doar rezoluția maximă de 1080p.
În iOS 14, Apple a adăugat suportul pentru multiple sesiuni FairPlay, permițând aplicației să redea mai multe fluxuri protejate simultan — de exemplu, imagine în imagine cu licențe diferite. iOS 15 a extins protocolul cu suport pentru actualizarea în fundal a cheilor pentru vizionarea de lungă durată.
Pentru serviciile de streaming cross-platform, FairPlay este utilizat ca parte a arhitecturii multi-DRM împreună cu Widevine și PlayReady. Agregatorii de licențe, precum Axinom și EZDRM, oferă un API unificat care traduce solicitările în formatul SPC pentru FairPlay și formatul MediaDrm pentru Widevine, simplificând integrarea pe toate platformele.
Întrebări frecvente
FairPlay — este o tehnologie DRM de la Apple, integrată în iOS, tvOS și macOS pentru protejarea conținutului video. Utilizează criptarea hardware prin Secure Enclave și protocolul FairPlay Streaming pentru transmiterea sigură a cheilor de decriptare pe dispozitivele Apple.
Pentru a obține certificatul FPS, trebuie să vă înregistrați în programul Apple Developer, să creați un certificat în secțiunea Certificates, Identifiers & Profiles și să îl descărcați în format DER. Certificatul se adaugă în bundle-ul proiectului Xcode și se semnează la compilare.
Nu, FairPlay nu este disponibil pe Android, deoarece este o tehnologie proprietară Apple legată de arhitectura hardware Secure Enclave pe cipurile din seria A și M. Pentru dispozitivele Android se utilizează Widevine DRM de la Google.
FairPlay este denumirea generală a tehnologiei DRM Apple, iar FairPlay Streaming (FPS) este protocolul specific pentru protejarea fluxurilor HLS. FPS utilizează mecanismele FairPlay pentru criptarea segmentelor video și gestionarea licențelor prin AVContentKeySession.
Licența FairPlay poate stabili restricții privind timpul de vizionare, calitatea maximă a videoului (720p, 1080p, 4K), numărul de dispozitive și perioada de valabilitate a cheii. Toate politicile sunt executate hardware în Secure Enclave și nu pot fi ocolite.
Rezumat
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și