Impedire la distribuzione non autorizzata

Questa pagina descrive brevemente le opzioni fornite da Media CDN per contribuire a impedire la distribuzione non autorizzata dei tuoi contenuti.

Media CDN offre le seguenti opzioni per aiutarti a proteggere i tuoi contenuti dalla distribuzione non autorizzata.

  • Token (approccio consigliato): Media CDN utilizza i token per contribuire a proteggere i contenuti.

    Un token è un mezzo per scambiare richieste firmate, ad esempio un cookie firmato, un URI con parametri di ricerca o un componente del percorso. I token validi presentati dagli spettatori vengono utilizzati per autenticare l'accesso ai tuoi contenuti. Un visualizzatore con un token non valido o mancante non può accedere ai tuoi contenuti.

    Puoi scegliere di utilizzare l'autenticazione con un solo token o con doppio token. I token sono obbligatori per l'autenticazione con doppio token.

    Quando viene utilizzata l'autenticazione con doppio token, Media CDN utilizza due token, uno di breve durata e uno di lunga durata.

    Google consiglia i token per le nuove integrazioni perché offrono i seguenti vantaggi:

    • Fornire compatibilità con reti CDN (Content Delivery Network) non Google.
    • Supporta la firma solo per il percorso.
    • Attiva la firma di più intestazioni.
    • Offrire revoca e controllo dell'accesso granulari.
    • Riduci al minimo l'impatto dei token compromessi.
    • Può incorporare dati e ID sessione arbitrari.
  • Firme: Media CDN utilizza una singola firma per contribuire a proteggere i contenuti. Le firme ti consentono di firmare l'URL completo, inclusi l'host e il protocollo.

Puoi utilizzare entrambe le opzioni insieme per proteggere i tuoi contenuti.

Come funziona l'autenticazione con doppio token

L'autenticazione con doppio token utilizza due token per autenticare le richieste ai tuoi contenuti: un token di breve durata per l'avvio della riproduzione e un token di lunga durata per il resto della sessione di riproduzione.

Per utilizzare l'autenticazione con doppio token, configura il server delle applicazioni in modo che emetta token di breve durata agli agenti utente. Poi, configura Media CDN in modo che risponda ai token di breve durata. Puoi inserire il token in un parametro di query a tua scelta o in un cookie. Per ulteriori informazioni, consulta Utilizzare l'autenticazione con doppio token.

I token di breve durata generati dal server delle applicazioni contribuiscono a proteggere i manifest principali (a volte chiamati playlist multivarianti). La data di scadenza della richiesta firmata è sufficientemente breve per richiedere un manifest principale, ma non per guardare tutti i contenuti contenuti in un manifest.

Quando Media CDN riceve una richiesta con un token di breve durata autorizzato, genera un token di lunga durata firmato. Puoi utilizzare il token in un parametro di query con un nome singolo o in un cookie. Il token di lunga durata supporta la visualizzazione di un programma integrale. I token di lunga durata firmati generati da Media CDN utilizzano firme Ed25519 firmate con chiavi gestite da Google associate a una risorsa EdgeCacheKeyset.

Puoi personalizzare la data e l'ora di scadenza dei token di durata breve e lunga. Come miglior prassi, Google consiglia di configurare la data e l'ora di scadenza dei token di breve durata generati sul server dell'applicazione su un minuto. Devi impostare la data e l'ora di scadenza dei token a durata lunga generati da Media CDN su una durata maggiore della durata dei contenuti, fino a un massimo di un giorno.

Flusso di richiesta per l'autenticazione con doppio token

Di seguito viene descritto il flusso di richiesta:

  1. Un visualizzatore richiede al server dell'applicazione i metadati dei contenuti multimediali che vuole visualizzare. Il server dell'applicazione restituisce l'URI del file manifest principale firmato con un token di breve durata.

  2. L'applicazione del player richiede il manifest principale da Media CDN. La richiesta include il token di breve durata come valore di un parametro di query URI nel formato del parametro di query con un solo nome.

  3. Media CDN verifica il token di breve durata e i parametri firmati del token.

    1. Se il token è valido, Media CDN crea un token di firma di lunga durata. Media CDN restituisce il token in un'intestazione Set-Cookie o modificando gli URI manifest e dei segmenti nel manifest principale in modo da includere il token.
    2. Se il token non è valido, Media CDN risponde con una risposta HTTP 403 Forbidden.
  4. L'applicazione del player riceve il manifest principale da Media CDN, quindi richiede la playlist multimediale o i segmenti multimediali a cui si fa riferimento nel manifest principale. La richiesta deve includere il token di lunga durata, come cookie firmato o come parametro URI.

  5. Media CDN verifica il token di firma a lunga durata:

    1. Se il token a durata lunga è valido per la richiesta specifica, Media CDN pubblica i contenuti richiesti.
    2. Se il token a lunga durata non è valido (a causa di un token scaduto o di un percorso non valido), Media CDN risponde con una risposta HTTP 403 Forbidden.
  6. Il processo viene ripetuto fino al termine della riproduzione dei contenuti multimediali o alla scadenza della firma di lunga durata.

Formati di token supportati per le richieste firmate con due token

Le richieste firmate con doppio token della CDN multimediale supportano più formati, a seconda del tipo di token.

Richieste firmate di breve durata

Per le richieste firmate di breve durata, Media CDN supporta per impostazione predefinita i token firmati con firme Ed25519. Puoi anche utilizzare i codici HMAC (Hash-based Message Authentication Code) con chiave simmetrica per la compatibilità con il codice dell'applicazione esistente e altre CDN.

Per utilizzare gli HMAC, utilizza Secret Manager per archiviare il secret HMAC. Poi concedi l'accesso all'account di servizio Media CDN per accedere al secret archiviato. Come best practice, Google consiglia di utilizzare la firma asimmetrica con le firme Ed25519 per la sicurezza e le prestazioni.

L'account di servizio Media CDN è di proprietà del progetto Media CDN e non viene visualizzato nell'elenco degli account di servizio del progetto. L'account di servizio concede l'accesso solo alle risorse Media CDN nei progetti che consenti esplicitamente.

Il service account ha il seguente formato:

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

dove PROJECT_NUMBER è il numero del progetto.

Per attivare l'account di servizio Media CDN, crea almeno una risorsa Media CDN, ad esempio EdgeCacheOrigin.

Richieste firmate di lunga durata

Per le richieste firmate di lunga durata, Media CDN utilizza firme Ed25519 firmate con chiavi gestite da Google associate a una risorsa EdgeCacheKeyset.

Media CDN supporta un singolo formato di token per i token di lunga durata, che può essere utilizzato in un parametro di query con un nome singolo per gli stream HLS o in un cookie.

Come funzionano le richieste firmate

Una richiesta firmata utilizza firme o token per verificare che ogni visualizzatore sia autenticato per accedere ai contenuti. Puoi configurare Media CDN in modo che l'accesso sia limitato a uno dei seguenti elementi:

  • Un URI esatto o un prefisso URI per un periodo di tempo limitato
  • Un cliente specifico
  • Per le richieste firmate che utilizzano token, fino a cinque percorsi con caratteri jolly

Per utilizzare le richieste firmate, devi generare chiavi per firmare e verificare le firme. Poi, configurerai i percorsi, che ti consentono di ottimizzare il comportamento in base al tipo di contenuti, agli attributi dei clienti e ai tuoi requisiti di aggiornamento. Le richieste firmate possono essere applicate su base route, il che ti consente di proteggere endpoint specifici.

Ogni servizio Media CDN può utilizzare una raccolta di più chiavi. La raccolta di chiavi è nota anche come set di chiavi. I set di chiavi ti consentono di girare le chiavi e distribuire le chiavi private nella tua infrastruttura senza interruzione.

Puoi configurare Media CDN in modo che utilizzi richieste firmate o token per contribuire a proteggere i contenuti.

Per le richieste firmate che utilizzano i token, puoi inserire il token in uno dei seguenti elementi:

  • In un parametro di query a tua scelta
  • In un cookie

Per ulteriori informazioni, consulta Generare token.

Per le richieste firmate con firme, puoi utilizzare uno dei seguenti formati:

  • Un URI esatto con parametri di query: specifica un URLPrefix con l'URI esatto e aggiungi gli stessi parametri di ricerca a più URI.
  • Un prefisso URI con parametri di query: specifichi un URLPrefix con un prefisso URI e aggiungi gli stessi parametri di ricerca a più URI.
  • Un componente del percorso: specifica un componente del percorso, che consente agli URI manifest relativi di ereditare il componente dell'URI firmato.
  • Un cookie firmato: specifichi un prefisso URI in un cookie, che consente di accedere a qualsiasi URI con il prefisso specificato.

Per ulteriori informazioni, vedi Generare firme.

Considerazioni

Le sezioni seguenti illustrano vari fattori da prendere in considerazione per contribuire a impedire la distribuzione non autorizzata dei tuoi contenuti.

Considerazioni sulla sicurezza

Media CDN convalida tutte le richieste che corrispondono a un percorso configurato con un valore cdnPolicy.signedRequestMode di REQUIRE_SIGNATURES o REQUIRE_TOKENS.

Ti consigliamo di convalidare le richieste all'origine. Anche se Media CDN rifiuta le richieste non valide e non firmate per un percorso che richiede firme, i client potrebbero trovare un modo per accedere direttamente all'origine. Un ulteriore livello di convalida contribuisce a fornire un approccio di difesa in profondità per proteggere i tuoi contenuti.

La seguente tabella illustra gli scenari in cui Media CDN convalida una richiesta:

La richiesta ha la firma Firma valida? signedRequestMode Comportamento Codice di stato
No N/D REQUIRE_SIGNATURES o REQUIRE_TOKENS Le richieste senza firme o token vengono trattate come se la firma non fosse valida. HTTP 403
No REQUIRE_SIGNATURES o REQUIRE_TOKENS Una firma o un token è considerata non valida se è scaduta o se ha un URL non corrispondente o una chiave errata. Le firme o i token non validi vengono rifiutati all'edge della CDN. HTTP 403
REQUIRE_SIGNATURES o REQUIRE_TOKENS Viene convalidata una firma o un token e la risposta viene pubblicata con contenuti di una cache o dell'origine. HTTP 200
Nessuno o DISABLED Non viene eseguita alcuna convalida e viene inviata una risposta direttamente all'utente. HTTP 200
No Nessuno o DISABLED Non viene eseguita alcuna convalida e viene inviata una risposta direttamente all'utente. HTTP 200

Quando l'applicazione rileva una firma non valida, assicurati che risponda con un codice di stato HTTP 403 (Forbidden). I codici di stato HTTP 403 non sono memorizzabili nella cache.

Se la tua applicazione invia un codice di stato memorizzabile in cache a una richiesta non valida, le richieste future valide potrebbero essere rifiutate erroneamente.

Limiti per gli URI

La maggior parte dei client HTTP moderni supporta URI con una lunghezza massima di 8000 caratteri. Tuttavia, alcuni dispositivi legacy o di nicchia potrebbero avere limiti più rigidi. In genere, un URI firmato aggiunge circa 125 caratteri all'URI della richiesta, tra cui:

  • Se vengono utilizzati tutti i nomi di campo, circa 67 caratteri per ogni campo (ad es. Expires= e KeyName=).
  • Per il timestamp Unix, 10 caratteri
  • Per KeyName, cinque caratteri
  • Per il valore Signature con codifica Base64, 43 caratteri

Come best practice, mantieni gli URI di lunghezza inferiore a 2000 caratteri utilizzando i parametri di query come token. Gli URI più brevi impediscono ai dispositivi di inviare URI troncati alla Media CDN.

Dispositivi di streaming video legacy

Alcuni dispositivi legacy per lo streaming di video potrebbero non supportare completamente l'attacco dei cookie alle richieste di manifest o segmenti multimediali. Se hai dispositivi con problemi noti relativi al trattamento dei cookie HTTP, configura Media CDN in modo che utilizzi parametri di ricerca per le richieste firmate e lo scambio di token doppi.

Sei l'unico responsabile della conformità al consenso e alla privacy richiesta quando utilizzi i cookie per scambiare token di breve durata. Quando Media CDN è configurato per utilizzare richieste firmate con due token, Google emette e gestisce i cookie utilizzati per i token di lunga durata.

Fatturazione

Per scoprire di più su come vengono fatturati i costi di Secret Manager, consulta la sezione Prezzi.

I recuperi dei secret da parte di Media CDN vengono memorizzati nella cache internamente, riducendo notevolmente la frequenza dei recuperi dei secret da Secret Manager. I recuperi ridotti riducono anche in modo significativo le frequenze di accesso rilevate e fatturate da Secret Manager.

Per ulteriori informazioni sulla memorizzazione nella cache delle chiavi segrete in Media CDN, consulta la Panoramica delle chiavi.