FairPlay — o que é, o DRM da Apple e princípios de funcionamento

Autor: IT Sectr Publicado: 2026-05-24 Tempo de leitura: 8 min

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 — solução DRM da Apple para proteger vídeo em aplicativos iOS, tvOS e macOS.
  • Secure Enclave fornece armazenamento de chaves de descriptografia em nível de hardware no chip.
  • FairPlay Streaming (FPS) — protocolo para proteger fluxos HLS em tempo real.
  • SCM (Server Certificate Module) — módulo de verificação de autenticidade do servidor de licenças.
  • Integração requer registro no programa Apple Developer e obtenção do certificado FPS.

O que é FairPlay?

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.

Evolução do FairPlay

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.

Como funciona o FairPlay DRM?

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.

Processo de obtenção de licença

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.

Diagrama de funcionamento do 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)

Componentes principais do FairPlay

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.

ComponenteFunçãoOnde é executado
Certificado do aplicativoIdentifica o aplicativo para o servidor de licençasArmazenado no bundle do app
SPCServer Playback Context — solicitação de licençaGerado pelo AVContentKeySession
CKCContent Key Context — resposta com chaveProcessado pelo Secure Enclave
Secure EnclaveArmazenamento e descriptografia de chaves por hardwareCoprocessador de hardware no SoC
Key EnvelopeContêiner de chave com metadados de licençaGerado pelo servidor de licenças

Certificado do aplicativo FairPlay

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 e proteção por hardware

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.

Integração do FairPlay no iOS e tvOS

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.

Implementação do delegate 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)
        )
    }
}

Preparação do certificado e identificador de conteúdo

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.

Tratamento de erros de licenciamento

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 e licenciamento

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.

Políticas de licenciamento do FairPlay

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.

Comparação do FairPlay com outros DRMs

ParâmetroFairPlayWidevinePlayReady
EcossistemaApple (iOS, tvOS, macOS)Google (Android, Chrome)Microsoft (Windows, Xbox)
Qualidade máxima4K HDR Dolby Vision4K UHD4K UHD
Proteção por hardwareSecure EnclaveTEETPM + TEE
Requisitos do desenvolvedorCertificado FPS da AppleNão exigidoLicença da Microsoft

FairPlay em diferentes versões do iOS

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.

FairPlay em arquitetura multi-DRM

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

O que é FairPlay DRM no iOS?

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.

Como obter um certificado FairPlay Streaming?

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.

Posso usar FairPlay no Android?

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.

Qual a diferença entre FairPlay e FairPlay Streaming?

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.

Quais restrições uma licença FairPlay impõe?

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

  • FairPlay — DRM proprietário da Apple com proteção por hardware via Secure Enclave e protocolo FairPlay Streaming para HLS.
  • SPC e CKC — mensagens-chave do protocolo: solicitação de licença do cliente e resposta com chave do servidor.
  • Certificado FPS obrigatório para desenvolvedores, obtido através do programa Apple Developer.
  • Integração via AVContentKeySession e AVAssetResourceLoaderDelegate no AVFoundation.
  • Secure Enclave fornece armazenamento e processamento isolados de chaves em nível de hardware.
  • Restrições de licença incluem limites de tempo, qualidade e número de dispositivos.
  • Abordagem multi-DRM com FairPlay, Widevine e PlayReady é necessária para aplicativos de streaming multiplataforma.

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.

Discutir o projeto

Leia também