Widevine: o que é, DRM e níveis de segurança explicados

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

Widevine é uma tecnologia DRM desenvolvida pelo Google para proteger conteúdo de vídeo contra cópia não autorizada em dispositivos móveis, Smart TVs e plataformas web. A criptografia de conteúdo é realizada através do módulo CDM, que é suportado em 4 bilhões de dispositivos em todo o mundo. A tecnologia Widevine garante compatibilidade com Android, iOS, Chrome e Smart TV, permitindo que serviços de streaming protejam conteúdo premium em qualquer plataforma.

Pontos principais

  • Widevine é uma solução DRM do Google para proteger vídeo em aplicativos móveis e web.
  • Três níveis de segurança: L1 (criptografia por hardware), L2 (software), L3 (seguro apenas na nuvem).
  • CDM — Content Decryption Module, componente chave para descriptografar conteúdo.
  • Licenciamento gerenciado através do servidor de licenças do Google que emite chaves para decodificação.
  • Compatibilidade com EME (Encrypted Media Extensions) permite funcionar em qualquer navegador.

O que é Widevine?

Widevine é uma tecnologia DRM proprietária adquirida pelo Google em 2010 e tornou-se o padrão de facto para proteção de conteúdo de vídeo no ecossistema Android. É usada pelos principais serviços de streaming, incluindo Netflix, Amazon Prime Video, Disney+ e Hulu, para prevenir cópia e distribuição não autorizada de conteúdo.

Widevine suporta criptografia AES-128 CBC usando chaves de conteúdo que são transmitidas apenas para dispositivos autorizados através de um canal de licenciamento seguro. O sistema fornece proteção de ponta a ponta desde a criptografia no servidor até a decodificação no dispositivo do usuário.

História e desenvolvimento do Widevine

A Widevine Technologies foi fundada em 1999 e originalmente desenvolveu soluções para proteção de conteúdo em plataformas de televisão a cabo. Após ser adquirida pelo Google em 2010, a tecnologia foi adaptada para plataformas móveis e integrada ao sistema operacional Android a partir da versão 4.4 KitKat. Desde 2015, o Widevine é um componente obrigatório da certificação Google Mobile Services.

Em 2018, o Google apresentou o Widevine Modular DRM, que permitiu aos fabricantes de dispositivos implementar diferentes níveis de proteção por hardware sem modificar o código do sistema operacional. Hoje, o Widevine Modular é suportado em mais de 4 bilhões de dispositivos e é o mecanismo DRM principal no Android.

Arquitetura do Widevine

A arquitetura do Widevine consiste em três componentes principais: o Content Decryption Module (CDM), o servidor de licenças e a ferramenta de criptografia de conteúdo. O CDM realiza a descriptografia no lado do cliente e interage com o Trusted Execution Environment (TEE) do hardware para armazenamento seguro de chaves.

O servidor de licenças do Google gerencia a emissão de chaves com base nas políticas do provedor de conteúdo, que definem restrições de tempo, número de dispositivos e qualidade de reprodução. A ferramenta de criptografia prepara o conteúdo no lado do provedor, empacotando-o no formato MPEG-DASH ou HLS com criptografia CENC.

Como funciona o Widevine DRM?

O processo de proteção começa na etapa de empacotamento de conteúdo, quando o arquivo de mídia é criptografado usando uma chave de conteúdo no servidor do provedor. O fluxo criptografado é transmitido ao dispositivo do usuário via CDN, onde o CDM solicita uma licença ao servidor de licenças.

O servidor de licenças verifica a autenticidade do dispositivo e o direito de acesso ao conteúdo. Se a verificação for bem-sucedida, o servidor emite uma licença com uma chave que o CDM usa para descriptografia. A licença pode conter restrições de tempo de visualização e resolução.

Protocolo de troca de licenças

A troca de licenças no Widevine é implementada através do protocolo EME (Encrypted Media Extensions) em navegadores ou via SDK em plataformas móveis. A solicitação de licença é gerada pelo CDM e enviada ao servidor de licenças via HTTPS, garantindo proteção contra interceptação de chaves em trânsito.

O servidor processa a solicitação e retorna uma licença que também é criptografada e só pode ser descriptografada pelo CDM do dispositivo. A vinculação por hardware da chave a um dispositivo específico impede sua transferência para outras plataformas.

Suporte a padrões de criptografia

O Widevine usa os padrões Common Encryption (CENC) definidos na ISO/IEC 23001-7, garantindo compatibilidade com os formatos MPEG-DASH e HLS. A criptografia AES-128 no modo CTR ou CBC é usada para proteger fluxos de mídia.

Para derivação de chaves, é usado HKDF (HMAC-based Key Derivation Function), que permite gerar chaves únicas para cada segmento de conteúdo. O suporte a HLS no Widevine foi adicionado com a versão Modular 2.0, expandindo a compatibilidade com plataformas Apple.

Exemplo de solicitação de licença no Android

kotlin
@Throws
fun requestLicense(): ByteArray {
    val drmSessionManager = mediaDrm.createSession(
        sessionId,
        List("keyRequestType", "init")
    )
    val request = mediaDrm.getKeyRequest(
        sessionId,
        schemeData.get("mimeType"),
        KeyType.STREAMING,
        mutableMapOf()
    )
    return licenseService.acquire(request.data)
}

Níveis de segurança do Widevine: L1, L2, L3

O Widevine define três níveis de segurança que diferem na forma como as operações criptográficas são realizadas e o conteúdo é processado. O nível L1 fornece máxima proteção, L3 fornece mínima e L2 ocupa uma posição intermediária.

NívelTipo de proteçãoRequisitos do dispositivoResolução máxima
L1HardwareTEE no nível do SoC4K Ultra HD
L2HíbridaTEE para chaves, software para vídeo1080p
L3SoftwareApenas CDM por software720p

Nível L1 — criptografia por hardware

O nível L1 requer um Trusted Execution Environment (TEE) no nível de hardware, onde todas as operações criptográficas são realizadas. As chaves de conteúdo nunca saem do TEE, impedindo sua extração mesmo se o sistema operacional principal estiver comprometido.

Dispositivos com certificação L1 podem reproduzir conteúdo em qualidade 4K e HDR, pois o fluxo de vídeo descriptografado é enviado diretamente para uma saída de vídeo protegida sem acesso dos processos do usuário.

Nível L3 — criptografia por software

O nível L3 realiza todas as operações criptográficas por software dentro do espaço de usuário normal. Este é o modo menos seguro, onde as chaves podem ser extraídas da RAM do dispositivo.

O Widevine L3 limita a qualidade de reprodução a 720p, tornando-o adequado para visualização em dispositivos de baixa especificação ou navegadores de desktop sem proteção por hardware.

Verificando o nível de segurança em um dispositivo

kotlin
fun getSecurityLevel(): String {
    val mediaDrm = MediaDrm(UUID.fromString(
        "edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"
    ))
    val level = mediaDrm.getPropertyString(
        "securityLevel"
    )
    return level.ifEmpty { "L3" }
}

Integração do Widevine em aplicativos móveis

A integração do Widevine em aplicativos móveis é realizada através das APIs padrão MediaDrm (Android) e AVContentKeySession (iOS). Na maioria dos casos, o desenvolvedor não precisa trabalhar diretamente com DRM — bibliotecas de players como ExoPlayer e AVPlayer lidam com licenciamento automaticamente.

Integração no Android

No Android, o Widevine é integrado através da classe MediaDrm, que fornece acesso direto ao CDM. Para aplicativos de streaming, recomenda-se usar o ExoPlayer com o módulo DrmSessionManager, que gerencia automaticamente as solicitações de licença.

Ao inicializar o player, é necessário especificar o UUID do esquema Widevine (`edef8ba9-79d6-4ace-a3c8-27dcd51d21ed`) e a URL do servidor de licenças fornecida pelo provedor de conteúdo. O ExoPlayer lida com o ciclo de solicitação e renovação de licenças automaticamente.

Configuração do ExoPlayer para Widevine

kotlin
val drmLicenseUrl = "https://license.service.com/wv"
val mediaItem = MediaItem.Builder()
    .setUri(Uri.parse(streamUrl))
    .setDrmKeyRequestUrl(drmLicenseUrl)
    .setDrmKeyRequestHeaders(
        mapOf("Authorization" to token)
    )
    .build()

val exoPlayer = ExoPlayer.Builder(context)
    .build()
exoPlayer.setMediaItem(mediaItem)
exoPlayer.prepare()

Integração com players web

Em plataformas web, o Widevine funciona através de Media Source Extensions (MSE) e Encrypted Media Extensions (EME). Navegadores baseados em Chromium têm o Widevine CDM integrado, e o desenvolvedor só precisa inicializar uma sessão EME com a configuração correta.

Para usar o Widevine em um navegador, é necessário especificar um iniciador de licença com o tipo keySystem `com.widevine.alpha`. Após criar uma instância do MediaKeys, o navegador lida automaticamente com as solicitações de licença.

Tratamento de erros de licenciamento

Ao integrar o Widevine, é importante tratar corretamente os erros de licenciamento que ocorrem devido à falta de direitos de acesso, expiração de assinatura ou incompatibilidade do dispositivo. O erro TYPE_EXPIRED_LICENSE requer atualização da licença através de uma nova solicitação ao servidor, enquanto TYPE_OUTPUT_NOT_ALLOWED indica incompatibilidade da saída de vídeo com as políticas DRM.

Recomenda-se implementar um mecanismo de repetição com backoff exponencial para erros de rede temporários e mostrar ao usuário uma mensagem clara para falhas de licenciamento permanentes. O registro de erros de sessões DRM ajuda provedores de conteúdo a identificar problemas com dispositivos e otimizar políticas.

Widevine e DRMs alternativos

O Widevine compete com o FairPlay da Apple e o PlayReady da Microsoft, formando as três principais soluções DRM no mercado de plataformas móveis. Cada tecnologia tem suas próprias vantagens e limitações relacionadas ao ecossistema da plataforma.

Comparação de soluções DRM

CaracterísticaWidevineFairPlayPlayReady
DesenvolvedorGoogleAppleMicrosoft
Plataforma principalAndroid, ChromeiOS, tvOS, SafariWindows, Xbox, UWP
Nível máximoL1 (4K)Equivalente a L1 (4K)SL3000 (4K)
Proteção por hardwareTEESecure EnclaveTPM + TEE

Escolha de DRM para um projeto

A seleção de DRM depende das plataformas alvo do aplicativo. Para projetos focados em Android, o Widevine é a escolha natural, pois vem pré-instalado em todos os dispositivos certificados com Google Mobile Services e não requer taxas de licença adicionais.

Para projetos multiplataforma, frequentemente é usada uma abordagem multi-DRM com agregadores de licenças como Axinom, EZDRM e Vualto, que fornecem uma API unificada para trabalhar com todos os três sistemas DRM. Isso reduz a complexidade da integração e centraliza o gerenciamento de licenças.

Perguntas frequentes

O que é Widevine DRM?

Widevine é uma tecnologia DRM do Google projetada para proteger conteúdo de vídeo digital contra cópia não autorizada. É usada por serviços de streaming para criptografar vídeo e gerenciar acesso através de um sistema de licenciamento.

Quais níveis de segurança o Widevine possui?

O Widevine suporta três níveis de segurança: L1 com criptografia por hardware em TEE, L2 com abordagem híbrida e L3 com implementação totalmente por software. L1 permite reprodução de conteúdo em 4K, L3 é limitado a qualidade 720p.

Como verificar o nível do Widevine no Android?

Você pode verificar o nível do Widevine no Android através da classe MediaDrm solicitando a propriedade securityLevel. Para isso, crie uma instância do MediaDrm com o UUID do Widevine e chame getPropertyString, ou use aplicativos de terceiros como DRM Info.

Como o Widevine é diferente do FairPlay?

Widevine é desenvolvido pelo Google para Android e Chrome, enquanto FairPlay é para iOS, tvOS e Safari. Ambos suportam criptografia por hardware e 4K, mas o Widevine é mais difundido em dispositivos Android, enquanto o FairPlay é o padrão de facto no ecossistema Apple.

É necessária uma licença para usar o Widevine?

Para usar o Widevine em um aplicativo móvel, nenhuma licença separada é necessária — a tecnologia está incorporada em dispositivos Android certificados e Chrome. Taxas são cobradas apenas de provedores de conteúdo pelo uso do servidor de licenças.

Resumo

  • Widevine é o principal mecanismo DRM no Android, fornecendo proteção de conteúdo de vídeo através de criptografia por hardware ou software.
  • Os três níveis de segurança L1, L2, L3 determinam a qualidade máxima de reprodução e o grau de proteção das chaves.
  • CDM (Content Decryption Module) realiza a descriptografia de conteúdo no lado do cliente usando chaves de licença.
  • A integração é feita através do ExoPlayer, MediaDrm no Android e EME em plataformas web.
  • Para iOS é necessário FairPlay, tornando uma abordagem multi-DRM necessária para projetos multiplataforma.
  • Widevine Modular suporta criptografia CENC e é compatível com formatos MPEG-DASH e HLS.
  • O servidor de licenças do Google gerencia o acesso ao conteúdo com base em políticas definidas pelo provedor de conteúdo.

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