Media CDN utilizza coppie di chiavi di crittografia durante la firma delle richieste. Media CDN utilizza un set di chiavi per archiviare coppie di chiavi attive utilizzati per firmare le richieste. Puoi avere fino a tre chiavi pubbliche e tre chiavi di condivise, per un totale di sei chiavi per set di chiavi.
Puoi anche rimuovere le chiavi non utilizzate da un set di chiavi. Aggiunta e rimozione di una chiave viene generalmente chiamata rotazione secret. La rotazione dei secret consente di eseguire seguenti:
- Aggiungi in modo sicuro nuovi secret a un set di chiavi aggiungendoli al set di chiavi.
- Genera token con il secret corrispondente.
Rimuovi i vecchi secret alla scadenza del token meno recente possibile.
Ad esempio, supponiamo che tu abbia impostato i token di breve durata in modo che scadano dopo una ora. Quindi, rimuovi il secret meno recente utilizzato per la breve durata. dopo che le nuove richieste gestiscono gli utenti per una o più ore.
Prima di rimuovere un secret inutilizzato, verifica che non vi sia fatto riferimento o che non sia stato recuperato
firmare le richieste degli utenti sul tuo server delle applicazioni. Rimozione prematura di un secret
da un set di chiavi impedisce a Media CDN di convalidare le richieste
associati al secret. Agli utenti interessati viene inviata una risposta HTTP 403
Forbidden
.
Per ottimizzare le prestazioni, l'affidabilità e il costo degli accessi simultanei Secret Manager, i secret della chiave di convalida condivisa vengono memorizzati nella cache per un un'ora. La memorizzazione nella cache dei secret può comportare la continuazione dell'accesso al token dopo che un secret eliminati da Secret Manager per un massimo di un'ora.
Come best practice, ruota le chiavi regolarmente.
Limitazioni note
Media CDN rifiuta le richieste firmate con il metodo simmetrico
firme utilizzate da Cloud CDN con una risposta HTTP 403
.
Al momento Media CDN supporta le chiavi simmetriche con richieste che utilizzano
il formato del token e le chiavi a cui fa riferimento Media CDN.
Le chiavi asimmetriche devono essere generate come coppie Ed25519, con un chiave privata e una chiave pubblica a 256 bit (32 byte). La La libreria Tink supporta per la generazione di chiavi, la firma e la convalida delle firme Ed25519 con C++, Go, Java e Objective-C.
Le chiavi asimmetriche devono avere le seguenti caratteristiche:
Essere codificata in Base64 con una lunghezza di 44 byte (con padding) o 43 byte (senza riempimenti). Sono accettati i formati Base64 sia riempiti che non riempiti.
La chiave pubblica deve essere codificata nel formato Base64 protetto per l'URL. La chiave privata può essere codificata formato base64 standard.
Avere una chiave privata corrispondente.