FairPlay — cos’è, il DRM di Apple e principi di funzionamento

Autore: IT Sectr Pubblicato: 2026-05-24 Tempo di lettura: 8 min

FairPlay è una tecnologia DRM proprietaria sviluppata da Apple per proteggere i contenuti video nell’ecosistema iOS, tvOS e macOS. Il sistema utilizza Secure Enclave e crittografia hardware per l’archiviazione sicura delle chiavi, consentendo ai servizi di streaming di fornire contenuti in qualità 4K HDR. Secondo la documentazione Apple Developer (2025), FairPlay Streaming è supportato su tutti i dispositivi Apple con chip A8 e successivi.

Punti chiave

  • FairPlay — la soluzione DRM di Apple per proteggere i video nelle app iOS, tvOS e macOS.
  • Secure Enclave fornisce l’archiviazione hardware delle chiavi di decrittografia a livello di chip.
  • FairPlay Streaming (FPS) — protocollo per proteggere i flussi HLS in tempo reale.
  • SCM (Server Certificate Module) — modulo di verifica dell’autenticità del server di licenze.
  • Integrazione richiede la registrazione al programma Apple Developer e l’ottenimento del certificato FPS.

Cos’è FairPlay?

FairPlay è una tecnologia DRM creata da Apple e integrata nei sistemi operativi iOS, tvOS, iPadOS e macOS per proteggere i contenuti audio e video da utilizzi non autorizzati. Originariamente sviluppata per iTunes e iPod, si è evoluta in un sistema completo di protezione dei contenuti in streaming attraverso il protocollo FairPlay Streaming.

A differenza di altre soluzioni DRM, FairPlay è completamente integrata nell’architettura hardware dei dispositivi Apple. Le chiavi di decrittografia sono memorizzate in Secure Enclave — un coprocessore protetto isolato dal sistema operativo principale, rendendo l’estrazione delle chiavi praticamente impossibile anche con jailbreak.

Evoluzione di FairPlay

La storia di FairPlay è iniziata nel 2003 con l’iTunes Store, dove la crittografia dei file AAC veniva applicata nel formato proprietario M4P. Nel 2009, Apple ha presentato FairPlay Streaming — un protocollo di protezione video in streaming basato su HLS, che in seguito è diventato obbligatorio per Apple TV e app iOS.

A partire da iOS 10 e tvOS 10, Apple ha aperto FairPlay Streaming agli sviluppatori terzi attraverso il framework AVFoundation. Oggi, Netflix, Amazon Prime Video e Disney+ utilizzano FairPlay per proteggere i contenuti sui dispositivi Apple fino alla risoluzione 4K HDR con Dolby Vision.

Come funziona FairPlay DRM?

Il funzionamento di FairPlay si basa su un processo in tre fasi: packaging dei contenuti, distribuzione tramite CDN e decrittografia sul dispositivo. Nella fase di packaging, il video viene crittografato con AES-128 o AES-256 e le chiavi di crittografia vengono legate a un dispositivo specifico attraverso il meccanismo Key Envelope.

Quando si richiede un contenuto, il lettore avvia una sessione FairPlay tramite AVContentKeySession, che invia una richiesta al server di licenze del fornitore di contenuti. Il server verifica i diritti di accesso e restituisce la chiave di decrittografia crittografata con la chiave pubblica del certificato del dispositivo.

Processo di ottenimento della licenza

Il client crea un’istanza di AVContentKeySession e vi aggiunge la traccia del contenuto. Il sistema genera una richiesta SPC (Server Playback Context) contenente l’identificatore del dispositivo e il certificato dell’applicazione firmato da Apple. Questa richiesta viene inviata al server di licenze via HTTPS.

Il server di licenze convalida la SPC, recupera la chiave del contenuto dal suo database e la crittografa con la chiave pubblica del dispositivo, formando un CKC (Content Key Context). Il CKC viene restituito al client, dove AVContentKeySession lo decrittografa utilizzando la chiave privata di Secure Enclave.

Schema di funzionamento di 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)

Componenti chiave di FairPlay

L’architettura di FairPlay include diversi componenti interconnessi: certificato dell’applicazione, Key Envelope, Secure Enclave e modulo di decrittografia dei contenuti. Ogni componente svolge il suo ruolo nella catena di protezione dal server allo schermo dell’utente.

ComponenteFunzioneDove viene eseguito
Certificato dell’applicazioneIdentifica l’app presso il server di licenzeArchiviato nel bundle dell’app
SPCServer Playback Context — richiesta di licenzaGenerato da AVContentKeySession
CKCContent Key Context — risposta con chiaveElaborato da Secure Enclave
Secure EnclaveArchiviazione e decrittografia hardware delle chiaviCoprocessore hardware sul SoC
Key EnvelopeContenitore di chiavi con metadati della licenzaGenerato dal server di licenze

Certificato dell’applicazione FairPlay

Per lavorare con FairPlay, lo sviluppatore deve ottenere un certificato FPS da Apple tramite il programma Apple Developer. Il certificato include la chiave pubblica di una coppia asimmetrica, la cui parte privata viene utilizzata da Secure Enclave per decrittografare il CKC.

Il certificato dell’applicazione viene aggiunto al bundle del progetto e firmato automaticamente durante la compilazione tramite Xcode. Alla prima riproduzione di contenuti protetti, il sistema verifica la validità del certificato e richiede una licenza.

Secure Enclave e protezione hardware

Secure Enclave è un coprocessore dedicato sui chip Apple delle serie A e M, che esegue il sistema operativo isolato L4. È responsabile della generazione e dell’archiviazione delle chiavi private, della decrittografia del CKC e del trasferimento della chiave del contenuto al modulo di decrittografia video.

Tutte le operazioni crittografiche vengono eseguite esclusivamente all’interno di Secure Enclave e le chiavi non lasciano mai l’area protetta. Gli attacchi side-channel sul bus dati tra Secure Enclave e il processore principale vengono bloccati dal monitoraggio dell’integrità hardware.

Integrazione di FairPlay in iOS e tvOS

L’integrazione di FairPlay nelle app iOS e tvOS avviene tramite AVFoundation e richiede l’implementazione dei protocolli AVContentKeySessionDelegate e AVAssetResourceLoaderDelegate. Lo sviluppatore deve gestire quattro eventi chiave: ricevere SPC, inviarlo al server, ricevere CKC e passarlo al lettore.

Implementazione del delegato 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)
        )
    }
}

Preparazione del certificato e dell’identificatore del contenuto

Prima di iniziare la riproduzione, è necessario caricare il certificato dell’applicazione dal bundle e preparare l’identificatore del contenuto (di solito l’URL del flusso o l’ID del film). Il certificato deve essere valido almeno per la durata del noleggio del contenuto, altrimenti la licenza fallirà.

L’identificatore del contenuto viene passato al sistema di licenze nella fase di formazione della SPC. Il server di licenze utilizza questo identificatore per trovare la chiave corrispondente e le politiche di riproduzione, incluse le restrizioni di tempo e dispositivi.

Gestione degli errori di licenza

Durante la licenza possono verificarsi errori: scadenza del certificato, identificatore del contenuto non valido, mancanza di diritti di accesso dell’utente. Gli errori di FairPlay vengono restituiti tramite il delegato contentKeySession:didFailWithError e devono essere gestiti mostrando l’interfaccia utente appropriata.

I codici di errore tipici includono FP_NO_ENTITLEMENT in assenza di abbonamento e FP_REQUEST_TIMEOUT per problemi di rete. Si raccomanda di implementare la logica di ripetizione con backoff esponenziale per i guasti di rete temporanei.

FairPlay Streaming e licenze

FairPlay Streaming è un protocollo di protezione video in streaming basato su HLS che utilizza la crittografia dei segmenti e un meccanismo di chiavi con durata limitata. Il fornitore di contenuti implementa il proprio server di licenze, integrato con il sistema di autenticazione degli utenti.

Il server di licenze riceve una richiesta SPC dal client, estrae gli identificatori del dispositivo e del contenuto, verifica i diritti dell’utente nel backend e forma una risposta CKC. La chiave del contenuto viene crittografata con la chiave pubblica del dispositivo dal certificato FPS.

Politiche di licenza FairPlay

Una licenza FairPlay può contenere restrizioni di tempo (noleggio di 48 ore), limiti di dispositivi (massimo 5 autorizzati) e restrizioni sulla qualità di riproduzione (limitata a 1080p per il piano base). Le politiche sono impostate lato server e impacchettate in Key Envelope.

È importante notare che le politiche FairPlay vengono applicate a livello di Secure Enclave e non possono essere aggirate con metodi software a livello di sistema operativo. Anche con jailbreak, la protezione hardware impedisce l’estrazione della chiave o la modifica dei parametri della licenza.

Confronto tra FairPlay e altri DRM

ParametroFairPlayWidevinePlayReady
EcosistemaApple (iOS, tvOS, macOS)Google (Android, Chrome)Microsoft (Windows, Xbox)
Qualità massima4K HDR Dolby Vision4K UHD4K UHD
Protezione hardwareSecure EnclaveTEETPM + TEE
Requisiti per lo sviluppatoreCertificato FPS AppleNon richiestoLicenza Microsoft

FairPlay sulle diverse versioni di iOS

Il supporto di FairPlay Streaming dipende dalla versione del sistema operativo e dal tipo di dispositivo. Da iOS 10 e tvOS 10, l’API AVContentKeySession è disponibile per tutte le app, ma l’accelerazione hardware tramite Secure Enclave è necessaria solo per i contenuti in qualità 4K HDR. Sui dispositivi con chip A8–A10, la risoluzione massima è limitata a 1080p.

In iOS 14, Apple ha aggiunto il supporto per più sessioni FairPlay, consentendo a un’app di riprodurre più flussi protetti contemporaneamente — ad esempio, picture-in-picture con licenze diverse. iOS 15 ha esteso il protocollo con il supporto del rinnovo delle chiavi in background per la visione prolungata.

FairPlay in un’architettura multi-DRM

Per i servizi di streaming multipiattaforma, FairPlay viene utilizzato come parte di un’architettura multi-DRM insieme a Widevine e PlayReady. Gli aggregatori di licenze, come Axinom ed EZDRM, forniscono un’API unificata che traduce le richieste nel formato SPC per FairPlay e nel formato MediaDrm per Widevine, semplificando l’integrazione su tutte le piattaforme.

Domande frequenti

Cos’è FairPlay DRM in iOS?

FairPlay è una tecnologia DRM di Apple integrata in iOS, tvOS e macOS per proteggere i contenuti video. Utilizza la crittografia hardware tramite Secure Enclave e il protocollo FairPlay Streaming per il trasferimento sicuro delle chiavi di decrittografia sui dispositivi Apple.

Come ottenere un certificato FairPlay Streaming?

Per ottenere un certificato FPS, è necessario registrarsi al programma Apple Developer, creare un certificato nella sezione Certificates, Identifiers & Profiles e scaricarlo in formato DER. Il certificato viene aggiunto al bundle del progetto Xcode e firmato durante la compilazione.

Si può usare FairPlay su Android?

No, FairPlay non è disponibile su Android, poiché è una tecnologia proprietaria di Apple legata all’architettura hardware Secure Enclave sui chip delle serie A e M. I dispositivi Android utilizzano Widevine DRM di Google.

Qual è la differenza tra FairPlay e FairPlay Streaming?

FairPlay è il nome generale della tecnologia DRM di Apple, mentre FairPlay Streaming (FPS) è un protocollo specifico per proteggere i flussi HLS. FPS utilizza i meccanismi di FairPlay per crittografare i segmenti video e gestire le licenze tramite AVContentKeySession.

Quali restrizioni impone una licenza FairPlay?

Una licenza FairPlay può impostare restrizioni sul tempo di visione, sulla qualità video massima (720p, 1080p, 4K), sul numero di dispositivi e sulla durata della chiave. Tutte le politiche vengono eseguite dall’hardware in Secure Enclave e non possono essere aggirate.

Riepilogo

  • FairPlay — DRM proprietario Apple con protezione hardware tramite Secure Enclave e protocollo FairPlay Streaming per HLS.
  • SPC e CKC — messaggi chiave del protocollo: richiesta di licenza dal client e risposta con chiave dal server.
  • Certificato FPS obbligatorio per gli sviluppatori, ottenuto tramite il programma Apple Developer.
  • Integrazione tramite AVContentKeySession e AVAssetResourceLoaderDelegate in AVFoundation.
  • Secure Enclave fornisce archiviazione ed elaborazione isolate delle chiavi a livello hardware.
  • Restrizioni della licenza includono limiti di tempo, qualità e numero di dispositivi.
  • Approccio multi-DRM con FairPlay, Widevine e PlayReady necessario per le app di streaming multipiattaforma.

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche