Impeça a distribuição não autorizada

Esta página descreve brevemente as opções que o Media CDN oferece para ajudar a impedir a distribuição não autorizada do seu conteúdo.

O Media CDN é compatível com várias opções de solicitação assinada para ajudar a proteger seu conteúdo contra distribuição não autorizada. Um token é um meio de troca de solicitações assinadas, como um cookie assinado, um URI com parâmetros de consulta ou um componente de caminho. Os tokens válidos apresentados pelos leitores são usados para autenticar o acesso ao seu conteúdo. Um visualizador com um token inválido ou ausente não pode acessar seu conteúdo.

O Media CDN oferece as seguintes opções de solicitação assinada para autenticação do cliente:

  • Assinaturas: o Media CDN usa uma única assinatura para ajudar a proteger o conteúdo.

  • Tokens: o Media CDN usa tokens para proteger o conteúdo. Você pode optar por usar a autenticação de token único ou de dois tokens.

    Quando a autenticação de dois tokens é usada, o Media CDN usa dois tokens, um de curto e um de longa duração, para ajudar a proteger o conteúdo.

As assinaturas permitem assinar URLs completos, incluindo o host e o protocolo.

Os tokens oferecem os seguintes recursos:

  • Compatibilidade com CDNs que não são do Google
  • Assinatura somente de caminho
  • Capacidade de assinar mais de um cabeçalho
  • Capacidade de incorporar dados arbitrários e IDs de sessão

Recomendamos tokens para novas integrações. Os tokens são necessários para a autenticação de dois tokens.

É possível usar solicitações assinadas e de autenticação de dois tokens em conjunto para ajudar a proteger seu conteúdo.

Como funcionam as solicitações assinadas

Uma solicitação assinada usa assinaturas ou tokens para verificar se todos os espectadores estão autenticados para acessar o conteúdo. É possível configurar o Media CDN para que o acesso seja definido como:

  • Um URI exato ou um prefixo URI por tempo limitado
  • Um cliente específico
  • Para solicitações assinadas usando tokens, até cinco caminhos com caracteres curinga

Para usar solicitações assinadas, gere chaves para assinar e verificar assinaturas. Em seguida, você configura as rotas, o que permite otimizar o comportamento com base no tipo de conteúdo, nos atributos do cliente e nos seus requisitos de atualização. As solicitações assinadas podem ser aplicadas por rota, o que ajuda a proteger endpoints específicos.

Cada serviço do Media CDN pode usar uma coleção de várias chaves. A coleção de chaves também é conhecida como conjunto de chaves. Os conjuntos de chaves permitem alternar chaves e distribuir chaves privadas em toda a infraestrutura sem interrupções.

É possível configurar o Media CDN para usar solicitações assinadas ou tokens para ajudar a proteger o conteúdo.

Para solicitações assinadas usando assinaturas, é possível usar qualquer um dos seguintes formatos:

  • Um URI exato com parâmetros de consulta: você especifica um URLPrefix com o URI exato e anexa os mesmos parâmetros de consulta a vários URIs.
  • Um prefixo URI com parâmetros de consulta: especifique um URLPrefix com um prefixo de URI e anexe os mesmos parâmetros de consulta a vários URIs.
  • Um componente de caminho: você especifica um componente de caminho, o que permite que os URIs de manifesto relativo herdem o componente de URI assinado.
  • Um cookie assinado: você especifica um prefixo de URI em um cookie, o que permite o acesso a qualquer URI com o prefixo especificado.

Para mais informações, consulte Gerar assinaturas.

No caso de solicitações assinadas usando tokens, é possível colocar o token em uma das seguintes opções:

  • Em um parâmetro de consulta de sua escolha
  • Em um cookie

Para mais informações, consulte Gerar tokens.

Como funciona a autenticação de token duplo

A autenticação de dois tokens usa dois tokens para autenticar solicitações ao seu conteúdo: um de curta duração para iniciar a reprodução e um de longa duração para o restante da sessão de reprodução.

Para usar a autenticação de token duplo, configure o servidor de aplicativos para emitir tokens de curta duração para user agents. Em seguida, configure o Media CDN para responder aos tokens de curta duração. É possível colocar o token em um parâmetro de consulta de sua escolha ou colocá-lo em um cookie. Para mais informações, consulte Usar a autenticação de dois tokens.

Os tokens de curta duração gerados pelo servidor do aplicativo ajudam a proteger os manifestos principais (às vezes chamados de playlists multivariantes). A expiração da solicitação assinada é curta o suficiente para solicitar um manifesto principal, mas não para acompanhar todo o conteúdo contido nele.

Quando o Media CDN recebe uma solicitação com um token de curta duração autorizado, ele gera um token de longa duração assinado. É possível usar o token em um parâmetro de consulta de nome único ou em um cookie. O token de longa duração permite visualizar um programa completo. Os tokens assinados de longa duração gerados pelo Media CDN usam assinaturas Ed25519 que são assinadas com chaves gerenciadas pelo Google associadas a um recurso EdgeCacheKeyset.

É possível personalizar o prazo de validade de tokens de curta e longa duração. Como prática recomendada, configure para um minuto o prazo de validade dos tokens de curta duração gerados no servidor de aplicativos. É preciso definir o prazo de validade dos tokens de longa duração gerados pelo Media CDN para uma duração maior que a do conteúdo, até no máximo um dia.

Fluxo de solicitação para autenticação de token duplo

Confira a seguir a descrição do fluxo de solicitações:

  1. Um leitor solicita metadados do servidor de aplicativos para a mídia que quer visualizar. O servidor de aplicativos retorna o URI do manifesto principal assinado com um token de curta duração.

  2. O aplicativo do player solicita o manifesto principal do Media CDN. A solicitação inclui o token de curta duração como um valor de um parâmetro de consulta de URI no formato de parâmetro de consulta de nome único.

  3. O Media CDN verifica o token de curta duração e os parâmetros assinados dele.

    1. Se o token for válido, o Media CDN criará um token de assinatura de longa duração. O Media CDN retorna o token em um cabeçalho Set-Cookie ou modificando os URIs do manifesto e do segmento no manifesto principal para incluir o token.
    2. Se o token não for válido, o Media CDN vai responder com uma resposta HTTP 403 Forbidden.
  4. O app do player recebe o manifesto principal do Media CDN e, em seguida, solicita a playlist de mídia ou os segmentos referenciados no manifesto principal. A solicitação precisa incluir o token de longa duração, como um cookie assinado ou um parâmetro de URI.

  5. O Media CDN verifica o token de assinatura de longa duração:

    1. Se o token de longa duração for válido para a solicitação específica, o Media CDN exibirá o conteúdo solicitado.
    2. Se o token de longa duração não for válido (devido a um token expirado ou a um caminho inválido), o Media CDN responderá com uma resposta HTTP 403 Forbidden.
  6. O processo se repete até que a reprodução da mídia termine ou a assinatura de longa duração expire.

Formatos de token compatíveis com solicitações assinadas com token duplo

As solicitações assinadas com token duplo do Media CDN são compatíveis com vários formatos, dependendo do tipo de token.

Solicitações assinadas de curta duração

Para solicitações assinadas de curta duração, o Media CDN por padrão oferece suporte a tokens assinados com assinaturas Ed25519. Também é possível usar códigos de autenticação de mensagens baseados em hash de chave simétrica (HMACs) para compatibilidade com o código do aplicativo existente e outras CDNs.

Para usar HMACs, use o Secret Manager para armazenar o secret do HMAC. Em seguida, você concede acesso à conta de serviço do Media CDN para acessar o secret armazenado. Como prática recomendada, sugerimos o uso de assinatura assimétrica com assinaturas Ed25519 para segurança e desempenho.

A conta de serviço do Media CDN pertence ao projeto do Media CDN e não é exibida na lista de contas de serviço do seu projeto. A conta de serviço concede acesso somente aos recursos de CDN de mídia nos projetos explicitamente permitidos.

A conta de serviço tem o seguinte formato:

service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com

Em que PROJECT_NUMBER é o número do projeto.

Para ativar a conta de serviço do Media CDN de serviço, crie pelo menos um recurso do Media CDN, como EdgeCacheOrigin.

Solicitações assinadas de longa duração

Para solicitações assinadas de longa duração, o Media CDN usa assinaturas Ed25519 que são assinadas com chaves gerenciadas pelo Google associadas a um recurso EdgeCacheKeyset.

O Media CDN é compatível com um formato de token único para tokens de longa duração, que podem ser usados em um parâmetro de consulta de nome único para streams HLS ou em um cookie.

Considerações

As seções a seguir discutem itens como:

Limites de URI

A maioria dos clientes HTTP modernos é compatível com URIs com até 8.000 caracteres. No entanto, alguns dispositivos legados ou de nicho podem ter limites mais rigorosos. Em geral, um URI assinado adiciona cerca de 125 caracteres ao URI de solicitação, o que inclui o seguinte:

  • Se todos os nomes de campo forem usados, aproximadamente 67 caracteres para cada campo (como Expires= e KeyName=).
  • Para o carimbo de data/hora Unix, 10 caracteres
  • Para a KeyName, cinco caracteres
  • Para o valor Signature codificado em base64, 43 caracteres

Como prática recomendada, mantenha URIs com menos de 2.000 caracteres usando parâmetros de consulta como tokens. URIs mais curtos impedem que os dispositivos enviem URIs truncados para o Media CDN.

Dispositivos de streaming de vídeo legados

Alguns dispositivos de streaming de vídeo legados podem não ter suporte total à anexação de cookies em solicitações de segmento de mídia ou manifesto. Se você tiver dispositivos com problemas conhecidos que processam cookies HTTP, configure o Media CDN para usar parâmetros de consulta em solicitações assinadas e troca de token duplo.

Você é a única pessoa responsável por qualquer consentimento e conformidade de privacidade necessários ao usar cookies para trocar tokens de curta duração. Quando o Media CDN é configurado para usar solicitações assinadas com dois tokens, o Google emite e gerencia os cookies usados para tokens de longa duração.

Faturamento

Para saber mais sobre como o Secret Manager é faturado, consulte Preços.

As buscas de secrets do Media CDN são armazenadas em cache internamente, reduzindo significativamente a taxa de buscas de secrets do Secret Manager. As buscas reduzidas também reduzem significativamente as taxas de acesso que o Secret Manager observa e cobra.

Para mais informações sobre o armazenamento em cache de secrets no Media CDN, consulte Visão geral de chaves.