Visão geral das chaves

O Media CDN usa pares de chaves criptográficas ao assinar solicitações. O Media CDN usa um conjunto de chaves para armazenar pares de chaves usados ativamente para assinar solicitações. É possível ter até três chaves públicas e três chaves compartilhadas de validação, totalizando seis chaves por conjunto de chaves.

Também é possível remover chaves não usadas de um conjunto de chaves. O processo de adicionar e remover uma chave costuma ser chamado de rotação secreta. A rotação de secrets permite fazer o seguinte:

  • Adicione novos secrets a um conjunto de chaves com segurança, anexando-os a ele.
  • Gere tokens com a chave secreta correspondente.
  • Remova os secrets antigos depois que o token mais antigo possível expirar.

    Por exemplo, digamos que você definiu seus tokens de curta duração para expirar após uma hora. Em seguida, remova o secret mais antigo usado para os tokens de curta duração depois que as novas solicitações forem exibidas aos usuários por uma ou mais horas.

Antes de remover um secret não utilizado, verifique se ele não está referenciado ou buscado para assinar solicitações do usuário no servidor de aplicativos. A remoção prematura de um secret de um conjunto de chaves impede que o Media CDN valide as solicitações associadas a ele. Os usuários afetados recebem uma resposta HTTP 403 Forbidden.

Para otimizar o desempenho, a confiabilidade e o custo de acessos simultâneos ao Secret Manager, as chaves secretas de chave de validação compartilhadas são armazenadas em cache por até uma hora. O armazenamento em cache de secrets pode resultar na continuidade do acesso ao token após a exclusão dele do Secret Manager por até uma hora.

Como prática recomendada, faça a rotação das chaves regularmente.

Limitações conhecidas

O Media CDN rejeita solicitações assinadas com as assinaturas simétricas usadas pelo Cloud CDN com uma resposta HTTP 403. Atualmente, o Media CDN é compatível com chaves simétricas com solicitações que usam o formato de token e chaves referenciadas pelo Media CDN.

As chaves assimétricas precisam ser geradas como pares Ed25519, com uma chave privada de 512 bits (64 bytes) e uma chave pública de 256 bits (32 bytes). A biblioteca Tink tem suporte para gerar, assinar e validar assinaturas Ed25519 com C++, Go, Java e Objective-C.

As chaves assimétricas precisam ter as seguintes características:

  • ser codificada em base64 com comprimento de 44 bytes (preenchidos) ou 43 bytes (sem preenchimento); As formas com e sem padding de base64 são aceitas.

  • A chave pública precisa ser codificada no formato base64 seguro para URL. A chave privada pode ser codificada no formato base64 padrão.

  • Ter uma chave privada correspondente.

A seguir