FairPlay — qu’est-ce que c’est, le DRM d’Apple et principes de fonctionnement

Auteur : IT Sectr Publié le : 2026-05-24 Temps de lecture : 8 min

FairPlay est une technologie DRM propriétaire développée par Apple pour protéger le contenu vidéo dans l’écosystème iOS, tvOS et macOS. Le système utilise Secure Enclave et le chiffrement matériel pour le stockage sécurisé des clés, permettant aux services de streaming de fournir du contenu en qualité 4K HDR. Selon la documentation Apple Developer (2025), FairPlay Streaming est pris en charge sur tous les appareils Apple avec une puce A8 et plus récente.

Points clés

  • FairPlay — la solution DRM d’Apple pour protéger la vidéo dans les applications iOS, tvOS et macOS.
  • Secure Enclave assure le stockage matériel des clés de déchiffrement au niveau de la puce.
  • FairPlay Streaming (FPS) — protocole de protection des flux HLS en temps réel.
  • SCM (Server Certificate Module) — module de vérification de l’authenticité du serveur de licences.
  • Intégration nécessite une inscription au programme Apple Developer et l’obtention d’un certificat FPS.

Qu’est-ce que FairPlay ?

FairPlay est une technologie DRM créée par Apple et intégrée dans les systèmes d’exploitation iOS, tvOS, iPadOS et macOS pour protéger le contenu audio et vidéo contre toute utilisation non autorisée. Développée à l’origine pour iTunes et iPod, elle a évolué vers un système complet de protection de contenu en streaming via le protocole FairPlay Streaming.

Contrairement aux autres solutions DRM, FairPlay est entièrement intégrée dans l’architecture matérielle des appareils Apple. Les clés de déchiffrement sont stockées dans Secure Enclave — un coprocesseur protégé isolé du système d’exploitation principal, ce qui rend l’extraction des clés pratiquement impossible même avec un jailbreak.

Évolution de FairPlay

L’histoire de FairPlay a commencé en 2003 avec l’iTunes Store, où le chiffrement des fichiers AAC était appliqué au format propriétaire M4P. En 2009, Apple a présenté FairPlay Streaming — un protocole de protection vidéo en streaming basé sur HLS, devenu par la suite obligatoire pour Apple TV et les applications iOS.

À partir d’iOS 10 et tvOS 10, Apple a ouvert FairPlay Streaming aux développeurs tiers via le framework AVFoundation. Aujourd’hui, Netflix, Amazon Prime Video et Disney+ utilisent FairPlay pour protéger le contenu sur les appareils Apple en résolution 4K HDR avec Dolby Vision.

Comment fonctionne FairPlay DRM ?

Le fonctionnement de FairPlay repose sur un processus en trois étapes : le packaging du contenu, la distribution via CDN et le déchiffrement sur l’appareil. Lors du packaging, la vidéo est chiffrée avec AES-128 ou AES-256, et les clés de chiffrement sont liées à un appareil spécifique via le mécanisme Key Envelope.

Lors de la demande de contenu, le lecteur initie une session FairPlay via AVContentKeySession, qui envoie une requête au serveur de licences du fournisseur de contenu. Le serveur vérifie les droits d’accès et renvoie la clé de déchiffrement chiffrée avec la clé publique du certificat de l’appareil.

Processus d’obtention de licence

Le client crée une instance d’AVContentKeySession et y ajoute la piste de contenu. Le système génère une demande SPC (Server Playback Context) contenant l’identifiant de l’appareil et le certificat d’application signé par Apple. Cette demande est envoyée au serveur de licences via HTTPS.

Le serveur de licences valide le SPC, récupère la clé de contenu de sa base de données et la chiffre avec la clé publique de l’appareil pour former un CKC (Content Key Context). Le CKC est renvoyé au client, où AVContentKeySession le déchiffre à l’aide de la clé privée de Secure Enclave.

Schéma de fonctionnement de 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)

Composants clés de FairPlay

L’architecture FairPlay comprend plusieurs composants interconnectés : certificat d’application, Key Envelope, Secure Enclave et module de déchiffrement de contenu. Chaque composant joue son rôle dans la chaîne de protection, du serveur à l’écran de l’utilisateur.

ComposantFonctionLieu d’exécution
Certificat d’applicationIdentifie l’application auprès du serveur de licencesStocké dans le bundle de l’app
SPCServer Playback Context — demande de licenceGénéré par AVContentKeySession
CKCContent Key Context — réponse avec cléTraité par Secure Enclave
Secure EnclaveStockage et déchiffrement matériel des clésCoprocesseur matériel sur le SoC
Key EnvelopeConteneur de clé avec métadonnées de licenceGénéré par le serveur de licences

Certificat d’application FairPlay

Pour travailler avec FairPlay, le développeur doit obtenir un certificat FPS d’Apple via le programme Apple Developer. Le certificat comprend la clé publique d’une paire asymétrique, dont la partie privée est utilisée par Secure Enclave pour déchiffrer le CKC.

Le certificat d’application est ajouté au bundle du projet et signé automatiquement à la compilation via Xcode. Lors de la première lecture de contenu protégé, le système vérifie la validité du certificat et demande une licence.

Secure Enclave et protection matérielle

Secure Enclave est un coprocesseur dédié sur les puces Apple des séries A et M, fonctionnant sur le système d’exploitation isolé L4. Il est responsable de la génération et du stockage des clés privées, du déchiffrement du CKC et du transfert de la clé de contenu au module de déchiffrement vidéo.

Toutes les opérations cryptographiques sont effectuées exclusivement à l’intérieur de Secure Enclave, et les clés ne quittent jamais la zone protégée. Les attaques par canaux auxiliaires sur le bus de données entre Secure Enclave et le processeur principal sont bloquées par la surveillance de l’intégrité matérielle.

Intégration de FairPlay dans iOS et tvOS

L’intégration de FairPlay dans les applications iOS et tvOS se fait via AVFoundation et nécessite l’implémentation des protocoles AVContentKeySessionDelegate et AVAssetResourceLoaderDelegate. Le développeur doit gérer quatre événements clés : recevoir SPC, l’envoyer au serveur, recevoir CKC et le transmettre au lecteur.

Implémentation du délégué 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)
        )
    }
}

Préparation du certificat et de l’identifiant de contenu

Avant de commencer la lecture, vous devez charger le certificat d’application depuis le bundle et préparer l’identifiant de contenu (généralement l’URL du flux ou l’ID du film). Le certificat doit être valide au moins pendant la durée de location du contenu, sinon la licence échouera.

L’identifiant de contenu est transmis au système de licence lors de la phase de formation du SPC. Le serveur de licences utilise cet identifiant pour trouver la clé correspondante et les politiques de lecture, y compris les restrictions de temps et d’appareils.

Gestion des erreurs de licence

Des erreurs peuvent survenir lors de la licence : expiration du certificat, identifiant de contenu invalide, absence de droits d’accès de l’utilisateur. Les erreurs FairPlay sont renvoyées via le délégué contentKeySession:didFailWithError et doivent être traitées avec l’interface utilisateur appropriée.

Les codes d’erreur typiques incluent FP_NO_ENTITLEMENT en l’absence d’abonnement et FP_REQUEST_TIMEOUT pour les problèmes réseau. Il est recommandé d’implémenter une logique de réessai avec backoff exponentiel pour les pannes réseau temporaires.

FairPlay Streaming et licence

FairPlay Streaming est un protocole de protection vidéo en streaming basé sur HLS qui utilise le chiffrement de segments et un mécanisme de clés à durée de validité limitée. Le fournisseur de contenu déploie son propre serveur de licences, intégré au système d’authentification des utilisateurs.

Le serveur de licences reçoit une demande SPC du client, extrait les identifiants de l’appareil et du contenu, vérifie les droits de l’utilisateur dans le backend et forme une réponse CKC. La clé de contenu est chiffrée avec la clé publique de l’appareil issue du certificat FPS.

Politiques de licence FairPlay

Une licence FairPlay peut contenir des restrictions de temps (location de 48 h), une limite d’appareils (5 appareils autorisés maximum) et des restrictions de qualité de lecture (limitée à 1080p pour le forfait de base). Les politiques sont définies côté serveur et conditionnées dans Key Envelope.

Il est important de noter que les politiques FairPlay sont appliquées au niveau de Secure Enclave et ne peuvent être contournées par des méthodes logicielles au niveau du système d’exploitation. Même avec un jailbreak, la protection matérielle empêche l’extraction de la clé ou la modification des paramètres de licence.

Comparaison de FairPlay avec d’autres DRM

ParamètreFairPlayWidevinePlayReady
ÉcosystèmeApple (iOS, tvOS, macOS)Google (Android, Chrome)Microsoft (Windows, Xbox)
Qualité maximale4K HDR Dolby Vision4K UHD4K UHD
Protection matérielleSecure EnclaveTEETPM + TEE
Exigences pour le développeurCertificat FPS AppleNon requisLicence Microsoft

FairPlay sur les différentes versions d’iOS

La prise en charge de FairPlay Streaming dépend de la version du système d’exploitation et du type d’appareil. Depuis iOS 10 et tvOS 10, l’API AVContentKeySession est disponible pour toutes les applications, mais l’accélération matérielle via Secure Enclave n’est nécessaire que pour le contenu en qualité 4K HDR. Sur les appareils avec puces A8–A10, la résolution maximale est limitée à 1080p.

Dans iOS 14, Apple a ajouté la prise en charge de plusieurs sessions FairPlay, permettant à une application de lire plusieurs flux protégés simultanément — par exemple, l’image dans l’image avec différentes licences. iOS 15 a étendu le protocole avec la mise à jour des clés en arrière-plan pour une visualisation prolongée.

FairPlay dans une architecture multi-DRM

Pour les services de streaming multiplateformes, FairPlay est utilisé dans le cadre d’une architecture multi-DRM avec Widevine et PlayReady. Les agrégateurs de licences, tels qu’Axinom et EZDRM, fournissent une API unifiée qui traduit les demandes au format SPC pour FairPlay et au format MediaDrm pour Widevine, simplifiant l’intégration sur toutes les plateformes.

Foire aux questions

Qu’est-ce que FairPlay DRM dans iOS ?

FairPlay est une technologie DRM d’Apple intégrée dans iOS, tvOS et macOS pour protéger le contenu vidéo. Elle utilise le chiffrement matériel via Secure Enclave et le protocole FairPlay Streaming pour le transfert sécurisé des clés de déchiffrement sur les appareils Apple.

Comment obtenir un certificat FairPlay Streaming ?

Pour obtenir un certificat FPS, vous devez vous inscrire au programme Apple Developer, créer un certificat dans la section Certificates, Identifiers & Profiles et le télécharger au format DER. Le certificat est ajouté au bundle du projet Xcode et signé lors de la compilation.

Peut-on utiliser FairPlay sur Android ?

Non, FairPlay n’est pas disponible sur Android, car il s’agit d’une technologie propriétaire Apple liée à l’architecture matérielle Secure Enclave sur les puces des séries A et M. Les appareils Android utilisent Widevine DRM de Google.

Quelle est la différence entre FairPlay et FairPlay Streaming ?

FairPlay est le nom général de la technologie DRM d’Apple, tandis que FairPlay Streaming (FPS) est un protocole spécifique pour protéger les flux HLS. FPS utilise les mécanismes de FairPlay pour chiffrer les segments vidéo et gérer les licences via AVContentKeySession.

Quelles restrictions une licence FairPlay impose-t-elle ?

Une licence FairPlay peut définir des restrictions de temps de visionnage, de qualité vidéo maximale (720p, 1080p, 4K), de nombre d’appareils et de durée de validité de la clé. Toutes les politiques sont applées par le matériel dans Secure Enclave et ne peuvent être contournées.

Résumé

  • FairPlay — DRM propriétaire Apple avec protection matérielle via Secure Enclave et protocole FairPlay Streaming pour HLS.
  • SPC et CKC — messages clés du protocole : demande de licence du client et réponse avec clé du serveur.
  • Certificat FPS obligatoire pour les développeurs, obtenu via le programme Apple Developer.
  • Intégration via AVContentKeySession et AVAssetResourceLoaderDelegate dans AVFoundation.
  • Secure Enclave assure le stockage et le traitement isolés des clés au niveau matériel.
  • Restrictions de licence incluent le temps, la qualité et le nombre d’appareils.
  • Approche multi-DRM avec FairPlay, Widevine et PlayReady nécessaire pour les apps de streaming multiplateforme.

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi