Media CDN usa pares de claves criptográficas cuando firma solicitudes. En Media CDN, se usa un conjunto de claves para almacenar pares de claves que se usan de forma activa a fin de firmar solicitudes. Puedes tener hasta tres claves públicas y tres claves compartidas de validación, para un total de seis claves por conjunto de claves.
También puedes quitar las claves que no se usen de un conjunto de claves. Por lo general, agregar y quitar una clave se denomina rotación de secretos. La rotación de secretos te permite hacer lo siguiente:
- Agrega nuevos secretos a un conjunto de claves y agrégalos al conjunto de claves de forma segura.
- Genera tokens con el secreto correspondiente.
Quita los secretos antiguos después de que venza el token más antiguo posible.
Por ejemplo, supongamos que configuraste tus tokens de corta duración para que venzan después de una hora. Luego, debes quitar el secreto más antiguo que se usa para los tokens de corta duración después de que las solicitudes nuevas entreguen a los usuarios durante una o más horas.
Antes de quitar un secreto sin usar, verifica que no se haga referencia a él ni se recupere para firmar las solicitudes del usuario en el servidor de tu aplicación. Quitar un secreto de un conjunto de claves antes de tiempo evita que Media CDN valide las solicitudes asociadas con ese secreto. Los usuarios afectados reciben una respuesta HTTP 403
Forbidden
.
Para optimizar el rendimiento, la confiabilidad y el costo de los accesos simultáneos a Secret Manager, tus secretos de claves de validación compartidas se almacenan en caché hasta por una hora. El almacenamiento en caché de un secreto puede hacer que continúe el acceso al token después de que se borre un secreto de Secret Manager durante una hora.
Como práctica recomendada, rota las claves con regularidad.
Limitaciones conocidas
Media CDN rechaza las solicitudes que se firman con las firmas simétricas que usa Cloud CDN con una respuesta HTTP 403
.
Actualmente, la CDN de medios admite claves simétricas con solicitudes que usan el formato de token y las claves a las que hace referencia Media CDN.
Las claves asimétricas deben generarse como pares Ed25519, con una clave privada de 512 bits (64 bytes) y una clave pública de 256 bits (32 bytes). La biblioteca Tink admite la generación de claves, las firmas y la validación de firmas de EC25519 con C++, Go, Java y Objective-C.
Las claves asimétricas deben tener las siguientes características:
Estar codificados en base64 con una longitud de 44 bytes (con relleno) o 43 bytes (sin rellenar). Se aceptan las formas rellenas y no rellenas de base64.
La clave pública se debe codificar en formato base64 seguro para URL. La clave privada se puede codificar en formato base64 estándar.
Tener una clave privada coincidente.