O que é criptografia DRM?

A criptografia DRM converte mídia codificada em texto cifrado que um player só pode descriptografar com a chave de conteúdo correspondente. Um sistema de licenças fornece essa chave e suas regras de uso aos clientes que autoriza.

Como funciona a criptografia DRM

A criptografia é aplicada pelo empacotador, após a codificação. Com Common Encryption (ISO/IEC 23001-7), usado por fluxos de MP4 fragmentado para DASH e HLS, as amostras criptografadas usam uma chave AES de 128 bits em um dos quatro esquemas do padrão; os dois permitidos pelo formato de fluxo do W3C para Encrypted Media Extensions são cenc (modo contador) e cbcs (encadeamento de blocos de cifra, com um padrão que criptografa apenas parte de cada amostra de vídeo). Um fluxo protegido também pode conter amostras não criptografadas, por exemplo, um trecho inicial sem criptografia. A mídia não expõe a chave de conteúdo em claro. Ela transporta um ID de chave, por padrão na caixa de criptografia de faixa (tenc). O cliente de um sistema DRM precisa dos dados de inicialização desse sistema para solicitar uma licença, e a localização desses dados depende do formato de distribuição. Para DASH, o DASH-IF descreve um cabeçalho específico do sistema de proteção (pssh) para cada sistema, transportado na mídia, no manifesto como um elemento cenc:pssh, ou em ambos; o manifesto também informa o ID da chave como cenc:default_KID. Uma playlist HLS sinaliza chaves em tags EXT-X-KEY, cujo atributo URI especifica como obter a chave; o conteúdo FairPlay deve usar o formato de chave com.apple.streamingkeydelivery nessa tag. O player entrega os dados de inicialização ao módulo de descriptografia de conteúdo do dispositivo, encaminha a solicitação de licença do módulo ao serviço de licenças e devolve a licença; a descriptografia ocorre então dentro do módulo. As amostras são criptografadas uma única vez, e apenas a licença é emitida por cliente, de modo que todos os espectadores baixam os mesmos segmentos criptografados, que podem ser compartilhados e armazenados em cache como os não criptografados.

Informações essenciais

  1. cenc ou cbcs? Os dois esquemas não são intercambiáveis, e o dispositivo precisa oferecer suporte ao esquema usado no empacotamento do conteúdo. O conteúdo FairPlay deve usar o método SAMPLE-AES do HLS, que o RFC 8216 define para MP4 fragmentado como o esquema cbcs, e a especificação de autoria da Apple determina que SAMPLE-AES-CTR não deve ser usado em dispositivos Apple. O RFC 8216 não define nenhum método em modo contador, mas a documentação do Media3 do Android lista HLS em MP4 fragmentado como um formato compatível com Widevine cenc e, no Android TV, PlayReady cenc. A mesma documentação lista Widevine cenc a partir do Android 4.4, mas cbcs apenas a partir do Android 7.1 (a própria tabela de plataformas do Widevine informa Android 7.x e posteriores), e o PlayReady adicionou cbcs na versão 4.0 do cliente, na qual esse suporte continua sendo opcional. Uma única cópia em cbcs pode, portanto, atender a clientes FairPlay, Widevine e PlayReady que ofereçam suporte ao esquema, algo que apenas o número de versão PlayReady 4.0 não garante, e clientes Android ou PlayReady mais antigos precisam de uma segunda cópia em cenc. Se você empacotar nos dois esquemas, a Microsoft determina que um serviço não deve criptografar o mesmo conteúdo nos dois modos com o mesmo ID de chave e a mesma chave.
  2. O ID da chave é secreto e com o que ele precisa coincidir? Não, ele é um rótulo. O ID da chave é transportado sem criptografia na caixa tenc, nos dados pssh e nos manifestos DASH, e informa ao cliente e ao serviço de licenças qual chave é necessária; apenas a chave em si é secreta, e ela é entregue dentro de uma licença. Os identificadores precisam coincidir em todos os níveis: o DASH-IF exige que o valor de cenc:default_KID no manifesto corresponda ao valor na caixa tenc, que considera a fonte de verdade, e uma licença que forneça uma chave sob um ID diferente impede a descriptografia das amostras, mesmo que o fluxo seja carregado.
  3. Uma cópia criptografada funciona com vários sistemas DRM? Sim, para sistemas que ofereçam suporte ao esquema usado: Common Encryption existe para que vários sistemas de chaves possam descriptografar a mesma mídia. Cada sistema ainda precisa de sua própria sinalização e de um serviço de licenças capaz de retornar a mesma chave. Os empacotadores geram essa sinalização para cada sistema; o Shaka Packager, por exemplo, pode emitir sinalização Widevine, PlayReady e FairPlay para um único conjunto de chaves. A localização da sinalização importa para os navegadores: o DASH-IF desaconselha o uso de caixas pssh em segmentos de inicialização, pois cada caixa processada por um navegador pode iniciar outra solicitação de licença, a menos que o player detecte e bloqueie as duplicadas, e observa que transportar dados pssh no manifesto permite adicionar um sistema DRM sem modificar o conteúdo.
  4. Quando a rotação de chaves compensa sua complexidade? O DASH-IF descreve seu principal objetivo como exigir uma nova autorização periodicamente para conteúdo contínuo ao vivo, por exemplo, nas transições entre programas, e afirma explicitamente que a intenção não é tornar a criptografia mais forte. Em Common Encryption, as mudanças nos IDs de chave são sinalizadas por amostra por meio de grupos de amostras seig, opcionalmente com dados de licença em caixas pssh dentro de fragmentos de filme; em HLS, cada tag EXT-X-KEY se aplica aos segmentos seguintes até a próxima tag com o mesmo KEYFORMAT ou até o fim da playlist. A rotação exige suporte do player (o Media3 do Android exige seu modo de múltiplas sessões para fluxos com rotação de chaves), mudanças de chave alinhadas aos limites dos segmentos e solicitações de licença distribuídas ao longo do tempo para que todos os clientes não solicitem no mesmo instante. O DASH-IF descreve uma forma de distribuir essas solicitações que atribui a responsabilidade ao sistema DRM: as chaves atuais e as próximas são anunciadas em dados pssh, e cada cliente escolhe um instante aleatório para solicitar sua licença.

Quando a criptografia DRM é importante

Configure a criptografia durante o empacotamento de fluxos destinados à reprodução controlada e proteja as chaves separadamente. Uma incompatibilidade no identificador da chave, no esquema ou na configuração da licença torna impossível reproduzir mídia codificada corretamente.

Fontes

Transforme conhecimento sobre mídia em um pipeline funcional

Conecte uploads, processamento, IA, armazenamento e entrega por meio de uma única API declarativa, com o stack de codificação, o ajuste de escala e as constantes mudanças de formatos gerenciados para você.

Experimente a Transloadit gratuitamente