Proteção de conteúdo com criptografia dinâmica e entrega de chave
Aviso
Os Serviços de Mídia do Azure serão desativados em 30 de junho de 2024. Para obter mais informações, consulte o Guia de Desativação do AMS.
Use os Serviços de Mídia do Azure para proteger sua mídia desde o momento em que ela sai do computador por meio de armazenamento, processamento e entrega. Com os Serviços de Mídia, é possível entregar o conteúdo ao vivo e sob demanda criptografado dinamicamente com a criptografia AES (AES-128) ou qualquer um dos três principais sistemas DRM (gerenciamento de direitos digitais): Microsoft PlayReady, Google Widevine e Apple FairPlay.
O FairPlay Streaming é uma tecnologia da Apple que está disponível somente para vídeo transferido por HLS (HTTP Live Streaming) em dispositivos iOS, na Apple TV e no Safari no macOS. Os serviços de mídia também fornecem um serviço de distribuição de chaves AES e licenças DRM (PlayReady, Widevine e FairPlay) para os clientes autorizados. Se o conteúdo for criptografado com uma chave não criptografada AES e for enviado por HTTPS, ele não estará claro até alcançar o cliente.
Em Serviços de Mídia do Azure v3, uma chave de conteúdo está associada ao Locazidador de Streaming (consulteEste exemplo). Se usar o serviço de distribuição de chaves dos Serviços de Mídia do Azure, você poderá permitir que os Serviços de Mídia do Azure gerem a chave de conteúdo para você. A chave de conteúdo deve gerada por você mesmo se estiver usando seu próprio serviço de entrega de chaves ou se precisar lidar com um cenário de alta disponibilidade no qual precisa ter a mesma chave de conteúdo em dois data centers.
Quando um fluxo é solicitado por um player, os Serviços de Mídia usam a chave especificada para criptografar dinamicamente o conteúdo usando a chave não criptografada AES ou a criptografia DRM. Para descriptografar o fluxo, o player solicita a chave do serviço de entrega de chave dos Serviços de Mídia ou do serviço de entrega de chaves especificado. Para decidir se o usuário será autorizado a obter a chave, o serviço avalia a política de chave de conteúdo que você especificou para a chave.
Você pode usar o API REST ou biblioteca de cliente de Serviços de Mídia para configurar políticas de autenticação e autorização para suas licenças e chaves.
O Widevine não está disponível na região GovCloud.
Observação
Os serviços de mídia farão a imposição do TLS 1.2 para todas as solicitações para origens de streaming de KeyDelivery, RESTv2, Ponto de extremidade de streaming e Evento ao vivo. As contas com o uso existente do TLS 1.0 ou 1.1 estarão isentas dessa imposição. Se você deseja impor o TLS 1.2 para todas as suas solicitações para esses terminais de serviços de mídia, entre em contato com o suporte do AMS.
Navegadores que dão suporte a clientes DRM
Os navegadores comuns dão suporte aos seguintes clientes DRM:
Navegador | Criptografia |
---|---|
Chrome | Widevine |
Microsoft Edge e Internet Explorer 11 | PlayReady |
Firefox | Widevine |
Opera | Widevine |
Safari | FairPlay |
Controlar o acesso do conteúdo
É possível controlar quem tem acesso ao seu conteúdo, configurando a política de chave de conteúdo. Os serviços de mídia oferecem suporte a várias maneiras de autorizar os usuários que fazem solicitações de chave. O cliente (player) deve estar em conformidade com a política antes de a chave poder ser entregue ao cliente. A política de chave de conteúdo pode ter abra ou token restrição.
Uma política de chave de conteúdo com abertura restrita pode ser usada para emitir uma licença a qualquer pessoa sem autorização. Por exemplo, se sua receita for baseada no Ad e não na assinatura.
Com uma política de chave de conteúdo restrita por token, a chave de conteúdo somente será enviada a um cliente que tenha um JWT (Token Web JSON) ou SWT (Token Web Simples) válido na solicitação da licença/chave. Este token deve ser emitido por um STS.
Como usar o Azure AD como um STS
É possível usar o Azure AD como um STS. Deve ser configurado para criar um token assinado com a chave especificada e as declarações de emissão que você especificou na configuração de restrição do token. O serviço de entrega da licença/chave dos Serviços de Mídia do Azure retornará à licença ou a chave solicitada ao cliente se ambas as condições existirem:
- O token ser válido.
- As declarações no token correspondem àquelas configuradas para a licença ou a chave.
Ao configurar a política restrita do token, você deve especificar os parâmetros de chave de verificação primária, emissor e público. 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, chamada frequentemente de escopo, descreve a intenção do token ou do recurso ao qual o token autoriza o acesso. O serviço de entrega de licença/chave dos Serviços de Mídia valida que os valores do token correspondem aos do modelo.
Prevenção de reprodução de token
O recurso Prevenção de Reprodução de Token permite que você defina um limite de quantas vezes o mesmo token pode ser usado para solicitar uma chave ou uma licença. Você pode adicionar uma declaração do tipo urn:microsoft:azure:mediaservices:maxuses
no token, em que o valor é o número de vezes que o token pode ser usado para adquirir uma licença ou chave. Todas as solicitações subsequentes com o mesmo token para a distribuição de chave retornarão uma resposta não autorizada.
Considerações
- Você deve ter controle sobre a geração de tokens. A declaração precisa ser colocada no próprio token.
- Ao usar esse recurso, as solicitações com tokens cuja hora de expiração esteja mais de uma hora além da hora em que a solicitação for recebida serão rejeitadas com uma resposta não autorizada.
- Os tokens são identificados exclusivamente por sua assinatura. Qualquer alteração na carga (por exemplo, atualizar para a hora de expiração ou a declaração) altera a assinatura do token e ele conta como um novo token que a distribuição de chaves não alcançou antes.
- A reprodução falhará se o token tiver excedido o
maxuses
valor. - Pode ser usada para todo o conteúdo protegido existente (somente o token emitido precisa ser alterado).
- Funciona com JWT e SWT.
Usando uma imagem personalizada do STS
Você pode optar por usar um STS personalizado para fornecer tokens. Os motivos incluem:
Seu IDP (provedor de identidade) não é compatível com o STS.
Você pode precisar de controle mais flexível ou mais restrito na integração do STS com o sistema de cobrança de assinante.
Por exemplo, umoperador de serviçopoderá oferecer vários pacotes de assinante OTT, como premium, básico e esportes. O operador poderá corresponder as declarações de um token com o pacote do assinante para que somente o conteúdo de um pacote específico seja disponibilizado. Nesse caso, um STS personalizado oferece a flexibilidade e o controle necessários.
Para incluir declarações personalizadas no token a fim de selecionar diferentes ContentKeyPolicyOptions com parâmetros de licença de DRM diferentes, por exemplo, uma licença de assinatura em vez de uma licença de aluguel.
Para incluir uma declaração que representa o identificador de chave do conteúdo da chave à qual o token concede acesso.
Ao usar um STS personalizado, duas alterações devem ser feitas:
- Ao configurar um serviço de entrega de licença para um ativo, você precisa especificar a chave de segurança usada para verificação pelo STS personalizado em vez da chave atual do Azure AD.
- Quando um token JTW é gerado, uma chave de segurança é especificada em vez da chave privada do certificado X509 atual no Azure AD.
Há dois tipos de chaves de segurança:
- Chave simétrica: a mesma chave é usada para gerar e verificar um JWT.
- Chave assimétrica: um par de chaves pública/privada em um certificado X509 é usado com uma chave privada para criptografar/gerar um JWT e, com a chave pública, verificar o token.
Observação
Se você usa o .NET Framework /C# como sua plataforma de desenvolvimento, o certificado X509 usado para uma chave assimétrica de segurança deve ter um comprimento de chave de pelo menos 2048. Este comprimento da chave é um requisito da classe System.IdentityModel.Tokens.X509AsymmetricSecurityKey no .NET Framework. Caso contrário, a seguinte exceção será lançada: IDX10630: o 'System.IdentityModel.Tokens.X509AsymmetricSecurityKey' para assinatura não pode ser menor que '2048' bits.
Como usar um serviço de entrega de licença/chave diferente dos Serviços de Mídia
Você poderá editar modelos de política de chave se quiser usar um serviço de entrega de chave/licença diferente.
Instruções, tutoriais e amostras
O exemplo do .Net Digital Rights Management mostra como implementar um sistema multi DRM com os Serviços de Mídia v3 usando o .NET.
Há exemplos de proteção de conteúdo adicionais disponíveis para Node.JS e Python:
Node.JS | Python | Descrição |
---|---|---|
Node.JS Carregar e transmitir por streaming HLS e DASH com o DRM do PlayReady e o Widevine | Python Carregar e transmitir por streaming HLS e DASH com o DRM do PlayReady e o Widevine | Demonstra como codificar e transmitir usando o DRM do Widevine e do PlayReady |
Node.JS Streaming e proteção de conteúdo de DRM do Playready básico | Python Streaming e proteção de conteúdo de DRM do Playready básico | Demonstra como codificar e transmitir usando o DRM do PlayReady |
Node.JS Streaming e proteção de conteúdo de DRM do Widevine básico | Python Streaming e proteção de conteúdo de DRM do Widevine básico | Demonstra como codificar e transmitir usando o DRM do Widevine |
Obter ajuda e suporte
Você pode entrar em contato com os Serviços de Mídia com perguntas ou seguir nossas atualizações por um dos seguintes métodos:
- P & R
-
Stack Overflow. Marque perguntas com
azure-media-services
. - @MSFTAzureMedia ou use @AzureSupport para solicitar suporte.
- Abra um tíquete de suporte por meio do portal do Azure.