FairPlay es una tecnología DRM propietaria desarrollada por Apple para proteger contenido de video en el ecosistema iOS, tvOS y macOS. El sistema utiliza Secure Enclave y cifrado por hardware para el almacenamiento seguro de claves, lo que permite a los servicios de streaming ofrecer contenido en calidad 4K HDR. Según la documentación de Apple Developer (2025), FairPlay Streaming es compatible con todos los dispositivos Apple con chip A8 y posteriores.
Puntos clave
FairPlay es una tecnología DRM creada por Apple e integrada en los sistemas operativos iOS, tvOS, iPadOS y macOS para proteger contenido de audio y video contra el uso no autorizado. Desarrollada originalmente para iTunes y iPod, ha evolucionado hasta convertirse en un sistema completo de protección de contenido en streaming a través del protocolo FairPlay Streaming.
A diferencia de otras soluciones DRM, FairPlay está completamente integrada en la arquitectura de hardware de los dispositivos Apple. Las claves de descifrado se almacenan en Secure Enclave — un coprocesador protegido aislado del sistema operativo principal, lo que hace que la extracción de claves sea prácticamente imposible incluso con jailbreak.
La historia de FairPlay comenzó en 2003 con la tienda iTunes Store, donde se aplicaba cifrado de archivos AAC en formato propietario M4P. En 2009, Apple presentó FairPlay Streaming — un protocolo de protección de video en streaming basado en HLS, que posteriormente se volvió obligatorio para Apple TV y aplicaciones iOS.
A partir de iOS 10 y tvOS 10, Apple abrió FairPlay Streaming a desarrolladores externos a través del framework AVFoundation. Hoy en día, Netflix, Amazon Prime Video y Disney+ utilizan FairPlay para proteger contenido en dispositivos Apple hasta resolución 4K HDR con Dolby Vision.
El funcionamiento de FairPlay se basa en un proceso de tres etapas: empaquetado de contenido, distribución a través de CDN y descifrado en el dispositivo. En la etapa de empaquetado, el video se cifra con AES-128 o AES-256, y las claves de cifrado se vinculan a un dispositivo específico mediante el mecanismo Key Envelope.
Al solicitar contenido, el reproductor inicia una sesión FairPlay a través de AVContentKeySession, que envía una solicitud al servidor de licencias del proveedor de contenido. El servidor verifica los derechos de acceso y devuelve la clave de descifrado cifrada con la clave pública del certificado del dispositivo.
El cliente crea una instancia de AVContentKeySession y le añade la pista de contenido. El sistema genera una solicitud SPC (Server Playback Context) que contiene el identificador del dispositivo y el certificado de la aplicación firmado por Apple. Esta solicitud se envía al servidor de licencias por HTTPS.
El servidor de licencias valida la SPC, extrae la clave de contenido de su base de datos y la cifra con la clave pública del dispositivo, formando una CKC (Content Key Context). La CKC se devuelve al cliente, donde AVContentKeySession la descifra utilizando la clave privada de 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)
La arquitectura de FairPlay incluye varios componentes interconectados: certificado de aplicación, Key Envelope, Secure Enclave y módulo de descifrado de contenido. Cada componente desempeña su función en la cadena de protección desde el servidor hasta la pantalla del usuario.
| Componente | Función | Dónde se ejecuta |
|---|---|---|
| Certificado de aplicación | Identifica la aplicación ante el servidor de licencias | Se almacena en el bundle de la app |
| SPC | Server Playback Context — solicitud de licencia | Generado por AVContentKeySession |
| CKC | Content Key Context — respuesta con clave | Procesado por Secure Enclave |
| Secure Enclave | Almacenamiento y descifrado de claves por hardware | Coprocesador de hardware en el SoC |
| Key Envelope | Contenedor de clave con metadatos de licencia | Generado por el servidor de licencias |
Para trabajar con FairPlay, el desarrollador debe obtener un certificado FPS de Apple a través del programa Apple Developer. El certificado incluye la clave pública de un par asimétrico, cuya parte privada utiliza Secure Enclave para descifrar la CKC.
El certificado de aplicación se añade al bundle del proyecto y se firma automáticamente durante la compilación mediante Xcode. En la primera reproducción de contenido protegido, el sistema verifica la validez del certificado y solicita una licencia.
Secure Enclave es un coprocesador dedicado en los chips Apple de las series A y M, que funciona con el sistema operativo aislado L4. Es responsable de generar y almacenar claves privadas, descifrar la CKC y transferir la clave de contenido al módulo de descifrado de video.
Todas las operaciones criptográficas se realizan exclusivamente dentro de Secure Enclave, y las claves nunca abandonan el área protegida. Los ataques de canal lateral en el bus de datos entre Secure Enclave y el procesador principal se bloquean mediante monitoreo de integridad por hardware.
La integración de FairPlay en aplicaciones iOS y tvOS se realiza a través de AVFoundation y requiere implementar los protocolos AVContentKeySessionDelegate y AVAssetResourceLoaderDelegate. El desarrollador debe manejar cuatro eventos clave: recibir SPC, enviarlo al servidor, recibir CKC y pasarlo al reproductor.
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)
)
}
}
Antes de iniciar la reproducción, es necesario cargar el certificado de aplicación desde el bundle y preparar el identificador de contenido (generalmente la URL del flujo o el ID de la película). El certificado debe ser válido al menos durante el período de alquiler del contenido, de lo contrario la licencia fallará.
El identificador de contenido se pasa al sistema de licencias en la etapa de formación de SPC. El servidor de licencias utiliza este identificador para buscar la clave correspondiente y las políticas de reproducción, incluyendo restricciones de tiempo y dispositivos.
Durante el proceso de licencia pueden ocurrir errores: caducidad del certificado, identificador de contenido inválido, falta de derechos de acceso del usuario. Los errores de FairPlay se devuelven a través del delegado contentKeySession:didFailWithError y deben manejarse mostrando la interfaz de usuario correspondiente.
Los códigos de error típicos incluyen FP_NO_ENTITLEMENT cuando no hay suscripción y FP_REQUEST_TIMEOUT por problemas de red. Se recomienda implementar una lógica de reintentos con retroceso exponencial para fallos de red temporales.
FairPlay Streaming es un protocolo de protección de video en streaming basado en HLS que utiliza cifrado de segmentos y un mecanismo de claves con tiempo de validez limitado. El proveedor de contenido despliega su propio servidor de licencias, que se integra con el sistema de autenticación de usuarios.
El servidor de licencias recibe una solicitud SPC del cliente, extrae los identificadores del dispositivo y del contenido, verifica los derechos del usuario en el backend y forma una respuesta CKC. La clave de contenido se cifra con la clave pública del dispositivo extraída del certificado FPS.
Una licencia FairPlay puede contener restricciones de tiempo (alquiler de 48 horas), límite de dispositivos (máximo 5 autorizados) y restricciones de calidad de reproducción (limitado a 1080p para el plan básico). Las políticas se definen en el servidor y se empaquetan en Key Envelope.
Es importante destacar que las políticas de FairPlay se aplican a nivel de Secure Enclave y no pueden eludirse mediante métodos de software a nivel del sistema operativo. Incluso con jailbreak, la protección por hardware impide la extracción de claves o la modificación de los parámetros de la licencia.
| Parámetro | FairPlay | Widevine | PlayReady |
|---|---|---|---|
| Ecosistema | Apple (iOS, tvOS, macOS) | Google (Android, Chrome) | Microsoft (Windows, Xbox) |
| Calidad máxima | 4K HDR Dolby Vision | 4K UHD | 4K UHD |
| Protección por hardware | Secure Enclave | TEE | TPM + TEE |
| Requisitos para desarrollador | Certificado FPS de Apple | No requerido | Licencia de Microsoft |
El soporte de FairPlay Streaming depende de la versión del sistema operativo y del tipo de dispositivo. Desde iOS 10 y tvOS 10, la API AVContentKeySession está disponible para todas las aplicaciones, pero la aceleración por hardware mediante Secure Enclave solo se requiere para contenido en calidad 4K HDR. En dispositivos con chips A8–A10, la resolución máxima disponible es 1080p.
En iOS 14, Apple añadió soporte para múltiples sesiones de FairPlay, lo que permite a una aplicación reproducir varios flujos protegidos simultáneamente — por ejemplo, imagen en imagen con diferentes licencias. iOS 15 amplió el protocolo con soporte de renovación de claves en segundo plano para visualización prolongada.
Para servicios de streaming multiplataforma, FairPlay se utiliza como parte de una arquitectura multi-DRM junto con Widevine y PlayReady. Los agregadores de licencias, como Axinom y EZDRM, proporcionan una API unificada que traduce las solicitudes al formato SPC para FairPlay y al formato MediaDrm para Widevine, simplificando la integración en todas las plataformas.
Preguntas frecuentes
FairPlay es una tecnología DRM de Apple integrada en iOS, tvOS y macOS para proteger contenido de video. Utiliza cifrado por hardware a través de Secure Enclave y el protocolo FairPlay Streaming para la transferencia segura de claves de descifrado en dispositivos Apple.
Para obtener un certificado FPS, es necesario registrarse en el programa Apple Developer, crear un certificado en la sección Certificates, Identifiers & Profiles y descargarlo en formato DER. El certificado se añade al bundle del proyecto Xcode y se firma durante la compilación.
No, FairPlay no está disponible en Android, ya que es una tecnología propietaria de Apple vinculada a la arquitectura de hardware Secure Enclave en chips de las series A y M. Los dispositivos Android utilizan Widevine DRM de Google.
FairPlay es el nombre general de la tecnología DRM de Apple, mientras que FairPlay Streaming (FPS) es un protocolo específico para proteger flujos HLS. FPS utiliza los mecanismos de FairPlay para cifrar segmentos de video y gestionar licencias a través de AVContentKeySession.
Una licencia FairPlay puede establecer restricciones de tiempo de visualización, calidad máxima de video (720p, 1080p, 4K), número de dispositivos y período de validez de la clave. Todas las políticas se ejecutan por hardware en Secure Enclave y no pueden ser eludidas.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.
Lea también