Formattazione delle chiavi per l'importazione

Questo argomento descrive come formattare le chiavi in modo che possano essere importate da Cloud KMS come nuove versioni della chiave.

Il formato corretto per il materiale della chiave varia a seconda che il materiale della chiave venga importato in una chiave simmetrica o in una chiave asimmetrica. Per maggiori informazioni sulla differenza tra chiavi simmetriche e asimmetriche, consulta Scopi e algoritmi delle chiavi.

Formati delle chiavi supportati

  • Le chiavi simmetriche per la crittografia devono essere di 16 byte (solo per la crittografia simmetrica non elaborata) o di 32 byte di dati binari e non devono essere codificate. Se la chiave è codificata in esadecimale o in base64, devi decodificarla prima di tentare di importarla.

  • Le chiavi simmetriche per la firma (chiavi MAC) devono avere una lunghezza pari alla lunghezza della output della funzione di hash crittografica utilizzata (ad es. le chiavi HMAC-SHA256 devono avere una lunghezza di 32 byte) e non devono essere codificate. Se la chiave è codificata in esadecimale o in base64, devi decodificarla prima di tentare di importarla.

  • Le chiavi asimmetriche per la crittografia o la firma devono essere in formato PKCS #8 e devono essere con codifica DER. Il formato PCKS 8 è definito nel RFC 5208. La codifica DER è definita in International Telecommunications Union X.680. Le chiavi asimmetriche devono utilizzare una delle combinazioni di lunghezza e algoritmo supportate da Cloud KMS.

Alcuni aspetti di una chiave, ad esempio la lunghezza, non possono essere modificati dopo la sua creazione. In questi casi, la chiave non può essere importata in Cloud KMS.

Controllo di una chiave simmetrica

Utilizza il comando wc per controllare la lunghezza di una chiave simmetrica.

wc -c /path/to/unwrapped-key
  • Non puoi importare una chiave di crittografia simmetrica con una lunghezza diversa da 32.

  • Le chiavi di firma simmetriche (chiavi MAC) devono avere una lunghezza pari alla lunghezza di output della funzione di hash crittografica utilizzata (ad es. le chiavi HMAC-SHA256 devono avere una lunghezza di 32 byte).

Utilizza il comando file per controllare il formato di una chiave.

file /path/to/unwrapped-key
  • Se l'output è data, la chiave è nel formato corretto per l'importazione.

  • Se l'output è ASCII text, utilizza il comando cat per visualizzare i contenuti del file.

    • Se si tratta di una stringa di lettere e numeri che termina con il segno =, potrebbe essere codificata in base64. Utilizza il comando base64 (Base64.exe su Windows) per decodificarlo. Di seguito è riportato un esempio di chiave codificata in base64:

      THzArjassB+giKeNeT1Zr74OgV24t+Ep+37Ec6ojB3Y=
      
    • Se contiene una o più righe di numeri esadecimali, potrebbe essere codificata in esadecimale. Utilizza il comando xxd (o il comando PowerShell Format-Hex su Windows) per decodificarlo. Di seguito è riportato un esempio di chiave codificata in esadecimale:

      00000000: 4c7c c0ae 36ac b01f a088 a78d 793d 59af  L|..6.......y=Y.
      00000010: be0e 815d b8b7 e129 fb7e c473 aa23 0776  ...]...).~.s.#.v
      
    • Se contiene altro testo, potrebbe non essere una chiave simmetrica valida.

Formattazione delle chiavi asimmetriche

È possibile importare chiavi asimmetriche che utilizzano uno degli algoritmi supportati. In pratica, è difficile determinare in modo retroattivo l'algoritmo utilizzato per creare una chiave asimmetrica. Per questo motivo, ti consigliamo di eseguire i seguenti comandi su ogni chiave asimmetrica prima di tentare di importarla in Cloud KMS.

  1. Utilizza il comando file per controllare il formato di una chiave.

    file /path/to/unwrapped-key
    
    • Se l'output è PEM, la chiave è in formato PEM. Se è ASCII text, probabilmente è in formato PEM. In entrambi i casi, esegui il seguente comando per convertirlo in formato DER PCKS#8:

      openssl pkcs8 -topk8 -nocrypt -inform PEM -outform DER \
          -in /path/to/asymmetric-key-pem \
          -out /path/to/formatted-key
      
    • Se l'output è data, è probabile che la chiave sia in formato DER, ma potrebbe non essere in formato PKCS #8. Esegui il comando seguente per assicurarti che la chiave sia nel formato corretto. Il comando non ha alcun effetto se la chiave è già nel formato corretto. In questo caso, puoi utilizzare il comando diff per verificare che i file di input e di output siano identici.

      openssl pkcs8 -topk8 -nocrypt -inform DER -outform DER \
          -in /path/to/asymmetric-key-der \
          -out /path/to/formatted-key
      

Risoluzione dei problemi

Se esegui i comandi precedenti e ritieni che la chiave sia in un formato appropriato, ma l'importazione continua a non riuscire, controlla la presenza di errori nella console Google Cloud e consulta la sezione Risoluzione dei problemi relativi alle importazioni non riuscite.

Passaggi successivi