FairPlay é uma tecnologia DRM proprietária desenvolvida pela Apple para proteger conteúdo de vídeo no ecossistema iOS, tvOS e macOS. O sistema usa Secure Enclave e criptografia de hardware para armazenamento seguro de chaves, permitindo que serviços de streaming forneçam conteúdo em qualidade 4K HDR. De acordo com a documentação da Apple Developer (2025), o FairPlay Streaming é suportado em todos os dispositivos Apple com chip A8 e posteriores.
Principais pontos
FairPlay é uma tecnologia DRM criada pela Apple e incorporada nos sistemas operacionais iOS, tvOS, iPadOS e macOS para proteger conteúdo de áudio e vídeo contra uso não autorizado. Originalmente desenvolvida para iTunes e iPod, evoluiu para um sistema completo de proteção de conteúdo em streaming através do protocolo FairPlay Streaming.
Ao contrário de outras soluções DRM, o FairPlay está totalmente integrado na arquitetura de hardware dos dispositivos Apple. As chaves de descriptografia são armazenadas no Secure Enclave — um coprocessador protegido isolado do sistema operacional principal, tornando a extração de chaves praticamente impossível mesmo com jailbreak.
A história do FairPlay começou em 2003 com a iTunes Store, onde a criptografia de arquivos AAC era aplicada no formato proprietário M4P. Em 2009, a Apple apresentou o FairPlay Streaming — um protocolo de proteção de vídeo em streaming baseado em HLS, que posteriormente se tornou obrigatório para Apple TV e aplicativos iOS.
A partir do iOS 10 e tvOS 10, a Apple abriu o FairPlay Streaming para desenvolvedores terceiros através do framework AVFoundation. Hoje, Netflix, Amazon Prime Video e Disney+ usam o FairPlay para proteger conteúdo em dispositivos Apple em resolução 4K HDR com Dolby Vision.
O funcionamento do FairPlay baseia-se em um processo de três etapas: empacotamento de conteúdo, distribuição via CDN e descriptografia no dispositivo. Na etapa de empacotamento, o vídeo é criptografado usando AES-128 ou AES-256, e as chaves de criptografia são vinculadas a um dispositivo específico através do mecanismo Key Envelope.
Ao solicitar conteúdo, o player inicia uma sessão FairPlay através do AVContentKeySession, que envia uma solicitação ao servidor de licenças do provedor de conteúdo. O servidor verifica os direitos de acesso e retorna a chave de descriptografia criptografada com a chave pública do certificado do dispositivo.
O cliente cria uma instância do AVContentKeySession e adiciona a trilha de conteúdo a ele. O sistema gera uma solicitação SPC (Server Playback Context) que contém o identificador do dispositivo e o certificado do aplicativo assinado pela Apple. Esta solicitação é enviada ao servidor de licenças via HTTPS.
O servidor de licenças valida o SPC, recupera a chave de conteúdo do seu banco de dados e a criptografa com a chave pública do dispositivo, formando um CKC (Content Key Context). O CKC é retornado ao cliente, onde o AVContentKeySession o descriptografa usando a chave privada do 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)
A arquitetura do FairPlay inclui vários componentes interconectados: certificado do aplicativo, Key Envelope, Secure Enclave e módulo de descriptografia de conteúdo. Cada componente desempenha seu papel na cadeia de proteção do servidor até a tela do usuário.
| Componente | Função | Onde é executado |
|---|---|---|
| Certificado do aplicativo | Identifica o aplicativo para o servidor de licenças | Armazenado no bundle do app |
| SPC | Server Playback Context — solicitação de licença | Gerado pelo AVContentKeySession |
| CKC | Content Key Context — resposta com chave | Processado pelo Secure Enclave |
| Secure Enclave | Armazenamento e descriptografia de chaves por hardware | Coprocessador de hardware no SoC |
| Key Envelope | Contêiner de chave com metadados de licença | Gerado pelo servidor de licenças |
Para trabalhar com FairPlay, o desenvolvedor deve obter um certificado FPS da Apple através do programa Apple Developer. O certificado inclui a chave pública de um par assimétrico, cuja parte privada é usada pelo Secure Enclave para descriptografar o CKC.
O certificado do aplicativo é adicionado ao bundle do projeto e assinado automaticamente durante a compilação através do Xcode. Na primeira reprodução de conteúdo protegido, o sistema verifica a validade do certificado e solicita uma licença.
Secure Enclave é um coprocessador dedicado nos chips Apple das séries A e M, executando o sistema operacional isolado L4. Ele é responsável por gerar e armazenar chaves privadas, descriptografar o CKC e passar a chave de conteúdo ao módulo de descriptografia de vídeo.
Todas as operações criptográficas são realizadas exclusivamente dentro do Secure Enclave, e as chaves nunca deixam a área protegida. Os ataques de canal lateral no barramento de dados entre o Secure Enclave e o processador principal são bloqueados por monitoramento de integridade por hardware.
A integração do FairPlay em aplicativos iOS e tvOS é feita através do AVFoundation e requer a implementação dos protocolos AVContentKeySessionDelegate e AVAssetResourceLoaderDelegate. O desenvolvedor precisa lidar com quatro eventos principais: receber SPC, enviar ao servidor, receber CKC e passar ao 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)
)
}
}
Antes de iniciar a reprodução, é necessário carregar o certificado do aplicativo do bundle e preparar o identificador de conteúdo (geralmente a URL do fluxo ou o ID do filme). O certificado deve ser válido pelo menos pelo período de aluguel do conteúdo, caso contrário o licenciamento falhará.
O identificador de conteúdo é passado ao sistema de licenciamento na fase de formação do SPC. O servidor de licenças usa este identificador para encontrar a chave correspondente e as políticas de reprodução, incluindo restrições de tempo e dispositivos.
Durante o licenciamento podem ocorrer erros: expiração do certificado, identificador de conteúdo inválido, falta de direitos de acesso do usuário. Os erros do FairPlay são retornados através do delegate contentKeySession:didFailWithError e devem ser tratados com a interface de usuário apropriada.
Os códigos de erro típicos incluem FP_NO_ENTITLEMENT quando não há assinatura e FP_REQUEST_TIMEOUT para problemas de rede. Recomenda-se implementar lógica de repetição com backoff exponencial para falhas de rede temporárias.
FairPlay Streaming é um protocolo de proteção de vídeo em streaming baseado em HLS que usa criptografia de segmentos e um mecanismo de chaves com prazo de validade limitado. O provedor de conteúdo implanta seu próprio servidor de licenças, que se integra ao sistema de autenticação de usuários.
O servidor de licenças recebe uma solicitação SPC do cliente, extrai os identificadores do dispositivo e do conteúdo, verifica os direitos do usuário no backend e forma uma resposta CKC. A chave de conteúdo é criptografada com a chave pública do dispositivo do certificado FPS.
Uma licença FairPlay pode conter restrições de tempo (aluguel de 48 horas), limite de dispositivos (máximo 5 autorizados) e restrições de qualidade de reprodução (limitado a 1080p para o plano básico). As políticas são definidas no servidor e empacotadas no Key Envelope.
É importante notar que as políticas do FairPlay são aplicadas no nível do Secure Enclave e não podem ser contornadas por métodos de software no nível do sistema operacional. Mesmo com jailbreak, a proteção por hardware impede a extração da chave ou a modificação dos parâmetros da licença.
| Parâmetro | FairPlay | Widevine | PlayReady |
|---|---|---|---|
| Ecossistema | Apple (iOS, tvOS, macOS) | Google (Android, Chrome) | Microsoft (Windows, Xbox) |
| Qualidade máxima | 4K HDR Dolby Vision | 4K UHD | 4K UHD |
| Proteção por hardware | Secure Enclave | TEE | TPM + TEE |
| Requisitos do desenvolvedor | Certificado FPS da Apple | Não exigido | Licença da Microsoft |
O suporte ao FairPlay Streaming depende da versão do sistema operacional e do tipo de dispositivo. Desde o iOS 10 e tvOS 10, a API AVContentKeySession está disponível para todos os aplicativos, mas a aceleração por hardware através do Secure Enclave é necessária apenas para conteúdo em qualidade 4K HDR. Em dispositivos com chips A8–A10, a resolução máxima disponível é 1080p.
No iOS 14, a Apple adicionou suporte a múltiplas sessões FairPlay, permitindo que um aplicativo reproduza vários fluxos protegidos simultaneamente — por exemplo, picture-in-picture com licenças diferentes. O iOS 15 estendeu o protocolo com suporte à renovação de chaves em segundo plano para exibição prolongada.
Para serviços de streaming multiplataforma, o FairPlay é usado como parte de uma arquitetura multi-DRM junto com Widevine e PlayReady. Os agregadores de licenças, como Axinom e EZDRM, fornecem uma API unificada que traduz as solicitações para o formato SPC para FairPlay e o formato MediaDrm para Widevine, simplificando a integração em todas as plataformas.
Perguntas frequentes
FairPlay é uma tecnologia DRM da Apple incorporada no iOS, tvOS e macOS para proteger conteúdo de vídeo. Ela usa criptografia por hardware através do Secure Enclave e o protocolo FairPlay Streaming para transferência segura de chaves de descriptografia em dispositivos Apple.
Para obter um certificado FPS, é necessário se registrar no programa Apple Developer, criar um certificado na seção Certificates, Identifiers & Profiles e baixá-lo em formato DER. O certificado é adicionado ao bundle do projeto Xcode e assinado durante a compilação.
Não, o FairPlay não está disponível no Android, pois é uma tecnologia proprietária da Apple vinculada à arquitetura de hardware Secure Enclave nos chips das séries A e M. Dispositivos Android usam o Widevine DRM do Google.
FairPlay é o nome geral da tecnologia DRM da Apple, enquanto FairPlay Streaming (FPS) é um protocolo específico para proteger fluxos HLS. O FPS usa mecanismos do FairPlay para criptografar segmentos de vídeo e gerenciar licenças através do AVContentKeySession.
Uma licença FairPlay pode definir restrições de tempo de exibição, qualidade máxima de vídeo (720p, 1080p, 4K), número de dispositivos e prazo de validade da chave. Todas as políticas são executadas por hardware no Secure Enclave e não podem ser contornadas.
Resumo
Vamos desenvolver um aplicativo móvel chave na mão
A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.
Leia também