Evitar la distribución no autorizada

En esta página se describen brevemente las opciones que ofrece Media CDN para ayudar a evitar la distribución no autorizada de tu contenido.

Media CDN ofrece las siguientes opciones para proteger tu contenido frente a la distribución no autorizada.

  • Tokens (método recomendado): Media CDN usa tokens para 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. Los tokens válidos que presenten los usuarios se utilizan para autenticar el acceso a tu contenido. Un usuario con un token no válido o que no tenga token no podrá acceder a tu contenido.

    Puedes usar la autenticación con un solo token o con dos tokens. Los tokens son necesarios para la autenticación con dos tokens.

    Cuando se usa la autenticación con dos tokens, Media CDN usa dos tokens: uno de corta duración y otro de larga duración.

    Google recomienda usar tokens en las nuevas integraciones porque ofrecen las siguientes ventajas:

    • Ofrecer compatibilidad con redes de distribución de contenido (CDN) que no sean de Google.
    • Admite la firma solo de la ruta.
    • Habilita la firma de varios encabezados.
    • Ofrecer control y revocación de acceso pormenorizados.
    • Minimiza el impacto de las tokens vulneradas.
    • Puede insertar datos arbitrarios e IDs de sesión.
  • Firmas: Media CDN usa una sola firma para proteger el contenido. Las firmas te permiten firmar URLs completas, incluido el host y el protocolo.

Puedes usar ambas opciones para proteger tu contenido.

Cómo funciona la autenticación con dos tokens

La autenticación con dos tokens 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 con dos tokens, configura tu servidor de aplicaciones para que emita tokens de corta duración a los agentes de usuario. A continuación, configura Media CDN para que responda a los tokens de corta duración. Puede colocar el token en un parámetro de consulta de su elección o en una cookie. Para obtener más información, consulta Usar la autenticación con dos tokens.

Los tokens de corta duración generados por tu servidor de aplicaciones ayudan a proteger los manifiestos principales (a veces denominados listas de reproducción multivariante). La caducidad de la solicitud firmada es lo suficientemente breve como para solicitar un archivo de manifiesto principal, pero no para ver todo el contenido incluido en un archivo de manifiesto.

Cuando Media CDN recibe una solicitud con un token de corta duración autorizado, genera un token de larga duración firmado. Puede usar el token en un parámetro de consulta con un solo nombre o en una cookie. El token de larga duración permite ver un programa completo. Los tokens de larga duración firmados que genera Media CDN usan firmas Ed25519 que se firman conGoogle-owned and managed keys asociado a 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 tu aplicación en un minuto. Debes definir el tiempo de vencimiento de los tokens de larga duración que genera Media CDN con una duración superior a la longitud del contenido, hasta un máximo de un día.

Flujo de solicitudes para la autenticación con dos tokens

A continuación se describe el flujo de solicitudes:

  1. Un visor solicita metadatos de tu servidor de aplicaciones para el contenido multimedia que quiere ver. Tu servidor de aplicaciones devuelve el URI del manifiesto principal firmado con un token de corta duración.

  2. Tu aplicación de reproductor solicita el manifiesto principal a la CDN multimedia. 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 un solo nombre.

  3. Media CDN verifica el token de corta duración y los parámetros firmados del token.

    1. Si el token es válido, Media CDN crea un token de firma de larga duración. Media CDN devuelve el token en un encabezado Set-Cookie o modificando los URIs del manifiesto y del segmento en el manifiesto principal para incluir el token.
    2. Si el token no es válido, Media CDN responde con una respuesta HTTP 403 Forbidden.
  4. La aplicación del reproductor recibe el manifiesto principal de la CDN de contenido multimedia y, a continuación, solicita la lista de reproducción 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.

  5. Media CDN verifica el token de firma de larga duración:

    1. Si el token de larga duración es válido para la solicitud específica, Media CDN sirve el contenido solicitado.
    2. Si el token de larga duración no es válido (porque ha caducado o porque la ruta no es válida), Media CDN responde con una respuesta HTTP 403 Forbidden.
  6. El proceso se repite hasta que finaliza la reproducción multimedia o hasta que caduca la firma de larga duración.

Formatos de token admitidos para solicitudes firmadas con dos tokens

Las solicitudes firmadas con tokens duales de Media CDN admiten varios formatos, según el tipo de token.

Solicitudes firmadas de corta duración

En el caso de las solicitudes firmadas de corta duración, Media CDN admite de forma predeterminada tokens firmados con firmas Ed25519. También puedes usar códigos de autenticación de mensajes basados en hash con clave simétrica (HMACs) para que sean compatibles con el código de aplicación y otras CDNs.

Para usar HMACs, debes usar Secret Manager para almacenar el secreto de HMAC. A continuación, concede acceso a la cuenta de servicio de Media CDN para que pueda acceder al secreto almacenado. Como práctica recomendada, Google recomienda usar firmas asimétricas con firmas Ed25519 para mejorar la seguridad y el rendimiento.

La cuenta de servicio de Media CDN es propiedad del proyecto de Media CDN y no se muestra en la lista de cuentas de servicio de tu proyecto. La cuenta de servicio solo concede acceso a los recursos de Media CDN de los proyectos a los que le des permiso explícitamente.

La cuenta de servicio tiene el siguiente formato:

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

donde PROJECT_NUMBER es el número de tu proyecto.

Para activar la cuenta de servicio de Media CDN, crea al menos un recurso de Media CDN, como EdgeCacheOrigin.

Solicitudes firmadas de larga duración

En el caso de las solicitudes firmadas de larga duración, Media CDN usa firmas Ed25519 que se firman con Google-owned and managed keysasociadas a un recurso EdgeCacheKeyset.

Media CDN admite un único formato de token para tokens de larga duración, que se puede usar en un parámetro de consulta con un solo nombre para las secuencias HLS o en una cookie.

Cómo funcionan las solicitudes firmadas

Una solicitud firmada usa firmas o tokens para verificar que cada usuario se ha autenticado para acceder al contenido. Puedes configurar Media CDN para que el acceso se limite a cualquiera de los siguientes elementos:

  • Un URI exacto o un prefijo de URI durante un tiempo limitado
  • Un cliente específico
  • Para solicitudes firmadas con tokens, hasta cinco rutas con comodines

Para usar solicitudes firmadas, genera claves para firmar y verificar firmas. A continuación, configura las 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 le ayuda a proteger endpoints específicos.

Cada servicio de Media CDN puede usar una colección de varias claves. La colección 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.

Puede configurar Media CDN para que use solicitudes firmadas o tokens para proteger el contenido.

En el caso de las solicitudes firmadas con tokens, puedes colocar el token en cualquiera de los siguientes elementos:

  • En un parámetro de consulta que elijas
  • En una cookie

Para obtener más información, consulta Generar tokens.

En el caso de las solicitudes firmadas con firmas, puede usar cualquiera de los siguientes formatos:

  • Un URI exacto con parámetros de consulta: especifica un URLPrefix con el URI exacto y añade los mismos parámetros de consulta a varios URIs.
  • Un prefijo de URI con parámetros de consulta: especifica un URLPrefix con un prefijo de URI y añade los mismos parámetros de consulta a varios URIs.
  • Un componente de ruta: especifica un componente de ruta, lo que permite que los URIs de manifiesto relativos hereden el componente de URI firmado.
  • Una cookie firmada: especifica un prefijo de URI en una cookie, lo que permite acceder a cualquier URI con el prefijo que haya especificado.

Para obtener más información, consulta Generar firmas.

Cuestiones importantes

En las siguientes secciones se analizan varios factores que debes tener en cuenta para evitar la distribución no autorizada de tu contenido.

Cuestiones sobre 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 de una ruta que requiere firmas, los clientes pueden encontrar una forma de acceder directamente a tu origen. 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 los casos en los que Media CDN valida una solicitud:

Request has signature ¿Firma 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
No REQUIRE_SIGNATURES o REQUIRE_TOKENS Una firma o un token se consideran no válidos si han caducado o si tienen una URL que no coincide o una clave incorrecta. Las firmas o los tokens no válidos se rechazan en el extremo de la CDN. HTTP 403
REQUIRE_SIGNATURES o REQUIRE_TOKENS Se valida una firma o un token, y la respuesta se sirve con contenido de una caché o del origen. HTTP 200
Ninguno o DISABLED No se realiza ninguna validación y se envía una respuesta directamente al usuario. directamente. HTTP 200
No Ninguno o DISABLED No se realiza ninguna validación y se envía una respuesta directamente al usuario. directamente. HTTP 200

Cuando tu aplicación detecte una firma no válida, asegúrate de que responda con un código de estado HTTP 403 (Forbidden). Los códigos de estado HTTP 403 no se pueden almacenar en caché.

Si tu aplicación envía un código de estado que se puede almacenar en caché a una solicitud no válida, es posible que se rechacen solicitudes válidas en el futuro por error.

Límites de URI

La mayoría de los clientes HTTP modernos admiten URIs de hasta 8000 caracteres. Sin embargo, algunos dispositivos antiguos o especializados pueden tener límites más estrictos. Por lo general, un URI firmado añade unos 125 caracteres al URI de solicitud, que incluye lo siguiente:

  • Si se usan todos los nombres de campo, se pueden usar aproximadamente 67 caracteres en cada campo (como Expires= y KeyName=).
  • Marca de tiempo de Unix: 10 caracteres
  • En el caso de KeyName, cinco caracteres
  • En el caso del valor Signature codificado en Base64, 43 caracteres

Como práctica recomendada, las URIs deben tener menos de 2000 caracteres y usar parámetros de consulta como tokens. Los URIs más cortos evitan que los dispositivos envíen URIs truncados a Media CDN.

Dispositivos de streaming de vídeo antiguos

Es posible que algunos dispositivos de streaming de vídeo antiguos no admitan completamente la adjunción de cookies a las solicitudes de manifiesto o de segmento multimedia. Si tienes dispositivos con problemas conocidos para gestionar las cookies HTTP, configura Media CDN para que use parámetros de consulta en las solicitudes firmadas y el intercambio de tokens dual.

Usted es el único responsable de cumplir los requisitos de consentimiento y privacidad cuando use cookies para intercambiar tokens de corta duración. Cuando Media CDN se configura para usar solicitudes firmadas con dos tokens, Google emite y gestiona las cookies que se usan para los tokens de larga duración.

Facturación

Para obtener más información sobre cómo se factura Secret Manager, consulta la página Precios.

Las solicitudes de secretos de Media CDN se almacenan en caché internamente, lo que reduce significativamente la frecuencia de las solicitudes de secretos de Secret Manager. Las peticiones reducidas también disminuyen significativamente las tasas de acceso que observa Secret Manager y por las que te factura.

Para obtener más información sobre el almacenamiento en caché de secretos en Media CDN, consulta el artículo Información general sobre las claves.