En esta página, se describen en resumen las opciones que proporciona Media CDN para evitar la distribución no autorizada de tu contenido.
Media CDN ofrece las siguientes opciones para ayudar a proteger tu contenido de la distribución no autorizada.
Tokens (enfoque recomendado): Media CDN usa tokens para ayudar a proteger el contenido.
Un token es un medio para intercambiar solicitudes firmadas, como una cookie firmada, un URI con parámetros de consulta o un componente de ruta de acceso. Los tokens válidos que presentan los usuarios se usan para autenticar el acceso a tu contenido. Los usuarios que tengan un token no válido o que no tengan un token no podrán acceder a tu contenido.
Puedes usar la autenticación de token único o de doble token. Los tokens son obligatorios para la autenticación de doble token.
Cuando se usa la autenticación de doble token, Media CDN usa dos tokens, uno de corta duración y uno de larga duración.
Google recomienda los tokens para integraciones nuevas, ya que ofrecen las siguientes ventajas:
- Proporcionar compatibilidad con redes de distribución de contenidos (CDN) que no sean de Google
- Admite la firma de solo ruta de acceso.
- Habilita la firma de varios encabezados.
- Ofrece control de acceso y revocación detallados.
- Minimiza el impacto de los tokens comprometidos.
- Puede incorporar IDs de sesión y datos arbitrarios.
Firmas: Media CDN usa una sola firma para ayudar a proteger el contenido. Las firmas te permiten realizar la firma de la URL completa, incluido el host y el protocolo.
Puedes usar ambas opciones para proteger tu contenido.
Cómo funciona la autenticación de doble token
La autenticación de doble token usa dos tokens para autenticar las solicitudes a tu contenido: un token de corta duración para iniciar la reproducción y un token de larga duración para el resto de la sesión de reproducción.
Para usar la autenticación de dos tokens, configura tu servidor de aplicaciones para que emita tokens de corta duración a los agentes de usuario. Luego, configura Media CDN para que responda a los tokens de corta duración. Puedes colocar el token en un parámetro de consulta de tu elección o colocar una clave en una cookie. Para obtener más información, consulta Usa la autenticación de token doble.
Los tokens de corta duración que genera el servidor de aplicaciones ayudan a proteger los manifiestos principales (a veces llamados playlists multivariantes). El vencimiento de la solicitud firmada es lo suficientemente corto como para solicitar un manifiesto principal, pero no ver todo el contenido que se encuentra en un manifiesto.
Cuando Media CDN recibe una solicitud con un token de corta duración autorizado, genera un token de larga duración firmado. Puedes usar el token en un parámetro de consulta con un solo nombre o en una cookie. El token de larga duración admite la visualización de un programa de formato completo. Los tokens de larga duración firmados por Media CDN usan firmas Ed25519 que se firman con claves administradas por Google asociadas con un recurso EdgeCacheKeyset
.
Puedes personalizar el tiempo de vencimiento de los tokens de corta y larga duración. Como práctica recomendada, Google recomienda que configures el tiempo de vencimiento de los tokens de corta duración generados en el servidor de aplicaciones en un minuto. Debes establecer el tiempo de vencimiento de los tokens de larga duración que genera la CDN de Media en una duración superior a la longitud de tu contenido, hasta un máximo de un día.
Flujo de solicitud para la autenticación de token doble
A continuación, se describe el flujo de solicitudes:
Un visualizar solicita metadatos del servidor de tu aplicación para ver los medios que quiere ver. Tu servidor de aplicaciones muestra el URI del manifiesto principal firmado con un token de corta duración.
Tu aplicación de reproductor solicita el manifiesto principal de Media CDN. La solicitud incluye el token de corta duración como valor de un parámetro de consulta de URI en el formato de parámetro de consulta de nombre único.
Media CDN verifica el token de corta duración y los parámetros firmados del token.
- Si el token es válido, Media CDN crea un token de firma de larga duración. Media CDN muestra el token en un encabezado Set-Cookie o mediante la modificación de los URI del manifiesto y del segmento en el manifiesto principal para incluir el token.
- Si el token no es válido, Media CDN responde con una respuesta
HTTP 403 Forbidden
.
La aplicación del reproductor recibe el manifiesto principal de Media CDN y, luego, solicita la playlist multimedia o los segmentos multimedia a los que se hace referencia en el manifiesto principal. La solicitud debe incluir el token de larga duración, ya sea como una cookie firmada o como un parámetro de URI.
Media CDN verifica el token de firma de larga duración:
- Si el token de larga duración es válido para la solicitud específica, Media CDN entrega el contenido solicitado.
- Si el token de larga duración no es válido (debido a un token vencido o a una ruta no válida), Media CDN responde con una respuesta
HTTP 403 Forbidden
.
El proceso se repite hasta que finalice la reproducción de medios o la firma de larga duración.
Formatos de token compatibles para solicitudes firmadas de doble token
Las solicitudes firmadas de doble token de Media CDN admiten varios formatos, según el tipo de token.
Solicitudes firmadas de corta duración
Media CDN admite tokens firmados con firmas Ed25519 de forma predeterminada para las solicitudes firmadas de corta duración. También puedes usar códigos de autenticación de mensajes basados en hash (HMAC) con claves simétricas para lograr la compatibilidad con el código de la aplicación existente y otras CDN.
Para usar HMAC, usa Secret Manager para almacenar el secreto HMAC. Luego, otorgas acceso a la cuenta de servicio de Media CDN para acceder al secreto almacenado. Como práctica recomendada, Google recomienda usar la firma asimétrica con firmas Ed25519 para la seguridad y el rendimiento.
La cuenta de servicio de Media CDN es propiedad del proyecto de Media CDN y no aparece en la lista de cuentas de servicio de tu proyecto. La cuenta de servicio otorga acceso solo a los recursos de Media CDN en los proyectos que permites de forma explícita.
La cuenta de servicio tiene el siguiente formato:
service-PROJECT_NUMBER@gcp-sa-mediaedgefill.iam.gserviceaccount.com
En el ejemplo anterior, PROJECT_NUMBER es el número del proyecto.
Para activar la cuenta de servicio de Media CDN del servicio, crea al menos un recurso de Media CDN, como EdgeCacheOrigin
.
Solicitudes firmadas de larga duración
Para las solicitudes firmadas de larga duración, Media CDN usa firmas Ed25519 que se firman con claves administradas por Google asociadas con un recurso EdgeCacheKeyset
.
Media CDN admite un formato de token único para tokens de larga duración, que se puede usar en un parámetro de consulta de nombre único para transmisiones HLS o en una cookie.
Cómo funcionan las solicitudes firmadas
Una solicitud firmada usa firmas o tokens para verificar que los visualizadores estén autenticados a fin de acceder al contenido. Puedes configurar Media CDN para que el acceso se limite a cualquiera de las siguientes opciones:
- Un URI exacto o un prefijo de URI por un tiempo limitado
- Un cliente específico
- Para solicitudes firmadas que usan tokens, hasta cinco rutas con comodines
Para usar solicitudes firmadas, generas claves para firmar y verificar firmas. Luego, configuras rutas, que te permiten optimizar el comportamiento en función del tipo de contenido, los atributos del cliente y tus requisitos de actualización. Las solicitudes firmadas se pueden aplicar por ruta, lo que te ayuda a proteger extremos específicos.
Cada servicio de Media CDN puede usar un conjunto de varias claves. El conjunto de claves también se conoce como conjunto de claves. Los conjuntos de claves te permiten rotar claves y distribuir claves privadas en tu propia infraestructura sin interrupciones.
Puedes configurar Media CDN para que use solicitudes firmadas o tokens para ayudar a proteger el contenido.
Para las solicitudes firmadas que usan tokens, puedes colocar el token en cualquiera de las siguientes opciones:
- En un parámetro de consulta que elijas
- En una cookie
Para obtener más información, consulta Genera tokens.
Para las solicitudes firmadas que usan firmas, puedes usar cualquiera de los siguientes formatos:
- Un URI exacto con parámetros de consulta: Especifica un
URLPrefix
con el URI exacto y agrega los mismos parámetros de consulta a varios URI. - Un prefijo de URI con parámetros de consulta: Especifica un
URLPrefix
con un prefijo de URI y agrega los mismos parámetros de consulta a varios URI. - Un componente de ruta de acceso: Especifica un componente de ruta de acceso, que permite que los URI de manifiesto relativos hereden el componente de URI firmado.
- Una cookie firmada: Especificas un prefijo de URI en una cookie, lo que permite el acceso a cualquier URI con el prefijo que especificaste.
Para obtener más información, consulta Genera firmas.
Consideraciones
En las siguientes secciones, se analizan varios factores que debes tener en cuenta para evitar la distribución no autorizada de tu contenido.
Consideraciones de seguridad
Media CDN valida todas las solicitudes que coinciden con una ruta configurada con un cdnPolicy.signedRequestMode
de REQUIRE_SIGNATURES
o REQUIRE_TOKENS
.
Te recomendamos que valides las solicitudes en tu origen. Aunque Media CDN rechaza las solicitudes no válidas y sin firmar para una ruta que requiere firmas, los clientes pueden encontrar una forma de acceder a tu origen directamente. Una capa adicional de validación ayuda a proporcionar un enfoque de defensa en profundidad para proteger tu contenido.
En la siguiente tabla, se explican las situaciones en las que Media CDN valida una solicitud:
La solicitud tiene firma | ¿La firma es válida? | signedRequestMode | Comportamiento | Código de estado |
---|---|---|---|---|
No | N/A | REQUIRE_SIGNATURES o REQUIRE_TOKENS |
Las solicitudes sin firmas ni tokens se tratan como si la firma no fuera válida. | HTTP 403 |
Sí | No | REQUIRE_SIGNATURES o REQUIRE_TOKENS |
Una firma o un token se consideran no válidos si vencieron o si tienen una URL o una clave incorrectas. Las firmas o los tokens no válidos se rechazan en el borde de la CDN. | HTTP 403 |
Sí | Sí | REQUIRE_SIGNATURES o REQUIRE_TOKENS |
Se valida una firma o un token, y la respuesta se entrega con contenido de una caché o del origen. | HTTP 200 |
Sí | Sí | Ninguno o DISABLED |
No se realiza ninguna validación, y se entrega una respuesta directamente al usuario. | HTTP 200 |
Sí | No | Ninguno o DISABLED |
No se realiza ninguna validación, y se entrega una respuesta directamente al usuario. | HTTP 200 |
Cuando tu aplicación detecte una firma no válida, asegúrate de que la aplicación responda con un código de estado HTTP 403 (Forbidden)
.
Los códigos de estado de HTTP 403
no se pueden almacenar en caché.
Si la aplicación envía un código de estado que se puede almacenar en caché a una solicitud no válida, es posible que las solicitudes futuras válidas se rechacen de forma incorrecta.
Límites de URI
La mayoría de los clientes HTTP modernos admiten URI de hasta 8,000 caracteres. Sin embargo, es posible que algunos dispositivos heredados o de nicho tengan límites más estrictos. En general, un URI firmado agrega aproximadamente 125 caracteres al URI de solicitud, que incluye lo siguiente:
- Si se usan todos los nombres de campo, aproximadamente 67 caracteres para cada campo
(como
Expires=
yKeyName=
). - Para la marca de tiempo de Unix, 10 caracteres
- Para
KeyName
, cinco caracteres - Para el valor
Signature
codificado en base64, 43 caracteres
Como práctica recomendada, mantén los URIs con menos de 2,000 caracteres usando parámetros de consulta como tokens. Los URIs más cortos evitan que los dispositivos envíen URIs truncados a Media CDN.
Dispositivos de transmisión de video por Internet heredados
Es posible que algunos dispositivos heredados de transmisión de video no admitan por completo la vinculación de cookies a solicitudes de manifiesto o segmento multimedia. Si tienes dispositivos con problemas conocidos que controlan las cookies HTTP, configura Media CDN a fin de que use parámetros de consulta para intercambio de doble token y solicitudes firmadas.
Cumplimiento de consentimientos y privacidad
Eres el único responsable del consentimiento y el cumplimiento de la privacidad que se requieren cuando se usan cookies para intercambiar tokens de corta duración. Cuando Media CDN se configura con el fin de usar solicitudes firmadas de doble token, Google emite y administra las cookies que se usan para tokens de larga duración.
Facturación
Si deseas obtener más información sobre la facturación de Secret Manager, consulta Precios.
Las recuperaciones de Media CDN para secretos se almacenan en caché de forma interna, lo que reduce significativamente la frecuencia de recuperaciones de secretos de Secret Manager. Las recuperaciones reducidas también reducen las tasas de acceso que Secret Manager observa y factura.
Para obtener más información sobre el almacenamiento en caché de Secret en Media CDN, consulta Descripción general de las claves.