Proteção de conteúdos com encriptação dinâmica e entrega de chaves

Logótipo dos Serviços de Multimédia v3


Aviso

Os Serviços de Multimédia do Azure serão descontinuados a 30 de junho de 2024. Para obter mais informações, consulte o Guia de Descontinuação do AMS.

Utilize os Serviços de Multimédia do Azure para proteger o suporte de dados a partir do momento em que sai do computador através do armazenamento, processamento e entrega. Com os Serviços de Multimédia, pode fornecer os seus conteúdos em direto e a pedido encriptados dinamicamente com o Advanced Encryption Standard (AES-128) ou qualquer um dos três principais sistemas de gestão de direitos digitais (DRM): Microsoft PlayReady, Google Widevine e Apple FairPlay.

O FairPlay Streaming é uma tecnologia da Apple que só está disponível para vídeo transferido através de HTTP Live Streaming (HLS) em dispositivos iOS, na Apple TV e no Safari no macOS. Os Serviços de Multimédia também fornecem um serviço para fornecer chaves AES e licenças DRM (PlayReady, Widevine e FairPlay) a clientes autorizados. Se o conteúdo for encriptado com uma chave limpa do AES e for enviado através de HTTPS, não estará claro até chegar ao cliente.

Nos Serviços de Multimédia v3, uma chave de conteúdo está associada ao Localizador de Transmissão em Fluxo (veja este exemplo). Se utilizar o serviço de entrega de chaves dos Serviços de Multimédia, pode permitir que os Serviços de Multimédia do Azure gerem a chave de conteúdo automaticamente. A chave de conteúdo deve ser gerada por si próprio se estiver a utilizar o seu próprio serviço de entrega de chaves ou se precisar de lidar com um cenário de elevada disponibilidade em que precisa de ter a mesma chave de conteúdo em dois datacenters.

Quando um fluxo é pedido por um leitor, os Serviços de Multimédia utilizam a chave especificada para encriptar dinamicamente os seus conteúdos através da chave desmarcada do AES ou da encriptação DRM. Para desencriptar o fluxo, o leitor pede a chave do serviço de entrega de chaves dos Serviços de Multimédia ou do serviço de entrega de chaves que especificou. Para decidir se o utilizador está autorizado a obter a chave, o serviço avalia a política de chave de conteúdo que especificou para a chave.

sistema de proteção de conteúdos

Pode utilizar a API REST ou uma biblioteca de cliente dos Serviços de Multimédia para configurar políticas de autorização e autenticação para as suas licenças e chaves.

O Widevine não está disponível na região govCloud.

Nota

Os serviços de multimédia vão impor o TLS 1.2 para todos os pedidos às origens de transmissão em fluxo keyDelivery, RESTv2, Ponto Final de Transmissão em Fluxo e Eventos em Direto. As contas com utilização do TLS 1.0 ou 1.1 existente estarão isentas desta imposição. Se quiser impor o TLS 1.2 para todos os seus pedidos para estes pontos finais de serviços de multimédia, contacte o suporte do AMS.

Browsers que suportam clientes DRM

Os browsers comuns suportam os seguintes clientes DRM:

Browser Encriptação
Chrome Widevine
Microsoft Edge, Internet Explorer 11 PlayReady
Firefox Widevine
Ópera Widevine
Safari FairPlay

Controlar o acesso a conteúdos

Pode controlar quem tem acesso aos seus conteúdos ao configurar a política de chave de conteúdo. Os Media Services suportam várias formas de autorização de utilizadores que efetuam pedidos de chave. O cliente (leitor) tem de cumprir a política antes de a chave poder ser entregue ao cliente. A política de chave de conteúdo pode ter restrições de tokens ou abertos.

Pode ser utilizada uma política de chave de conteúdo restrita aberta quando pretende emitir uma licença a qualquer pessoa sem autorização. Por exemplo, se a sua receita for baseada em anúncios e não baseada em subscrições.

Com uma política de chave de conteúdo restrita a tokens, a chave de conteúdo é enviada apenas para um cliente que apresenta um token JWT válido ou um token Web simples (SWT) no pedido de licença/chave. Este token tem de ser emitido por um STS.

Utilizar Azure AD como STS

Pode utilizar Azure AD como STS. Tem de ser configurado para criar um token assinado com a chave especificada e as afirmações de problema que especificou na configuração de restrição de tokens. O serviço de entrega de chaves/licenças dos Serviços de Multimédia devolve a licença ou chave pedida ao cliente se ambas as condições existirem:

  • O token é válido.
  • As afirmações no token correspondem às configuradas para a licença ou chave.

Quando configura a política restrita de tokens, tem de especificar a chave de verificação primária, o emissor e os parâmetros de audiência. A chave de verificação primária contém a chave com a qual o token foi assinado. O emissor é o STS que emite o token. A audiência, por vezes denominada âmbito, descreve a intenção do token ou o recurso ao qual o token autoriza o acesso. O serviço de entrega de chaves/licença dos Serviços de Multimédia valida que os valores no token correspondem aos valores no modelo.

Prevenção de repetição de tokens

A funcionalidade Prevenção de Repetição de Tokens permite-lhe definir um limite para quantas vezes o mesmo token pode ser utilizado para pedir uma chave ou uma licença. Pode adicionar uma afirmação do tipo urn:microsoft:azure:mediaservices:maxuses no token, em que o valor é o número de vezes que o token pode ser utilizado para adquirir uma licença ou chave. Todos os pedidos subsequentes com o mesmo token para Entrega de Chaves devolverão uma resposta não autorizada.

Considerações

  • Tem de ter controlo sobre a geração de tokens. A afirmação tem de ser colocada no próprio token.
  • Ao utilizar esta funcionalidade, os pedidos com tokens cujo tempo de expiração está a mais de uma hora do momento em que o pedido é recebido são rejeitados com uma resposta não autorizada.
  • Os tokens são identificados exclusivamente pela respetiva assinatura. Qualquer alteração ao payload (por exemplo, atualizar para o tempo de expiração ou para a afirmação) altera a assinatura do token e irá contar como um novo token que a Entrega de Chaves não deparou antes.
  • A reprodução falha se o token tiver excedido o maxuses valor.
  • Pode ser utilizado para todos os conteúdos protegidos existentes (apenas o token emitido tem de ser alterado).
  • Funciona com JWT e SWT.

Utilizar um STS personalizado

Pode optar por utilizar um STS personalizado para fornecer tokens. Os motivos incluem:

  • O seu fornecedor de identidade (IDP) não suporta STS.

  • Poderá precisar de um controlo mais flexível ou mais apertado para integrar o STS no seu sistema de faturação de subscritores.

    Por exemplo, um operador de serviço OTT pode oferecer vários pacotes de subscritores, como premium, básico e desportivo. O operador poderá querer corresponder as afirmações num token com o pacote de um subscritor para que apenas os conteúdos num pacote específico sejam disponibilizados. Neste caso, um STS personalizado fornece a flexibilidade e o controlo necessários.

  • Para incluir afirmações personalizadas no token para selecionar entre diferentes ContentKeyPolicyOptions com diferentes parâmetros de licença DRM, por exemplo, uma licença de subscrição versus uma licença de aluguer.

  • Para incluir uma afirmação que representa o identificador da chave de conteúdo da chave à qual o token concede acesso.

Quando utiliza um STS personalizado, têm de ser efetuadas duas alterações:

  • Quando configura um serviço de entrega de licenças para um recurso, tem de especificar a chave de segurança utilizada para verificação pelo STS personalizado em vez da chave atual do Azure AD.
  • Quando é gerado um token JTW, é especificada uma chave de segurança em vez da chave privada do certificado X509 atual no Azure AD.

Existem dois tipos de chaves de segurança:

  • Chave simétrica: a mesma chave é utilizada para gerar e verificar um JWT.
  • Chave assimétrica: é utilizado um par de chaves público-privado num certificado X509 com uma chave privada para encriptar/gerar um JWT e com a chave pública para verificar o token.

Nota

Se utilizar .NET Framework/C# como plataforma de desenvolvimento, o certificado X509 utilizado para uma chave de segurança assimétrica tem de ter um comprimento de chave de, pelo menos, 2048. Este comprimento de chave é um requisito da classe System.IdentityModel.Tokens.X509AsymmetricSecurityKey no .NET Framework. Caso contrário, é emitida a seguinte exceção: IDX10630: Os bits "System.IdentityModel.Tokens.X509AsymmetricSecurityKey" para assinatura não podem ser menores do que os bits "2048".

Utilizar um serviço de entrega de licenças/chaves que não os Serviços de Multimédia

Pode editar modelos de política de chave se quiser utilizar um serviço de entrega de chaves/licenças diferente.

Procedimentos, tutoriais e exemplos

O exemplo de Gestão de Direitos Digitais do .Net mostra-lhe como implementar um sistema multi-DRM com Os Serviços de Multimédia v3 através do .NET.

Existem exemplos adicionais de proteção de conteúdos disponíveis para Node.JS e Python:

Node.JS Python Description
Node.JS Carregar e transmitir HLS e DASH com PlayReady e Widevine DRM Python Upload and stream HLS and DASH with PlayReady and Widevine DRM Demonstra como codificar e transmitir em fluxo com o Widevine e o PlayReady DRM
Node.JS proteção e transmissão em fluxo de conteúdos DRM do Playready Básico Proteção e transmissão em fluxo de conteúdos DRM do Python Basic Playready Demonstra como codificar e transmitir em fluxo com o PlayReady DRM
Node.JS proteção e transmissão em fluxo de conteúdos drm do Basic Widevine Proteção e transmissão em fluxo de conteúdos do Python Basic Widevine DRM Demonstra como codificar e transmitir em fluxo com o Widevine DRM

Obter ajuda e suporte

Pode contactar os Serviços de Multimédia com perguntas ou seguir as nossas atualizações através de um dos seguintes métodos: