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 delle chiavi.

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

Formati chiave supportati

  • Le chiavi simmetriche per la crittografia devono essere di 16 byte (solo per la crittografia simmetrica non elaborata) o 32 byte di dati binari e non devono essere codificate. Se la tua chiave ha una codifica esadecimale o Base64, devi decodificarla prima di tentare l'importazione.

  • Le chiavi simmetriche per la firma (chiavi MAC) devono avere una lunghezza uguale alla lunghezza di output della funzione hash di crittografia in uso (ad esempio, le chiavi HMAC-SHA256 devono avere una lunghezza di 32 byte) e non devono essere codificate. Se la tua chiave è con codifica esadecimale o Base64, devi decodificarla prima di tentare di importarla.

  • Le chiavi asimmetriche per la crittografia o la firma devono essere in formato PKCS #8 e con codifica DER. Il formato PCKS #8 è definito nel documento 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, come la lunghezza, non possono essere modificati dopo la creazione della chiave. In questi casi, la chiave non può essere importata in Cloud KMS.

Controllo di una chiave simmetrica

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

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

  • Le chiavi di firma simmetriche (chiavi MAC) devono avere una lunghezza uguale alla lunghezza di output della funzione hash crittografica in uso (ad esempio, le chiavi HMAC-SHA256 devono avere una lunghezza di 32 byte).

Usa il comando file per verificare 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 è una stringa di lettere e numeri che termina con il segno =, potrebbe essere con codifica Base64. Utilizza il comando base64 (Base64.exe su Windows) per decodificarlo. Di seguito è riportato un esempio di chiave con codifica Base64:

      THzArjassB+giKeNeT1Zr74OgV24t+Ep+37Ec6ojB3Y=
      
    • Se contiene una o più righe di numeri esadecimali, potrebbe essere codificata in formato esadecimale. Utilizza il comando xxd (o il Format-Hexcomando PowerShell in Windows) per decodificarlo. Di seguito è riportato un esempio di chiave con codifica 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 di tasti asimmetrici

È possibile importare chiavi asimmetriche utilizzando uno qualsiasi degli algoritmi supportati. In pratica, è difficile determinare retroattivamente 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. Usa il comando file per verificare 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 questo comando per convertirlo nel formato PCKS#8 DER:

      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 nel formato PKCS #8. Esegui questo comando per assicurarti che il formato della chiave sia corretto. Il comando non ha effetto se la chiave è già nel formato corretto. In questo caso, puoi usare 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 sopra indicati e ritieni che la chiave sia in un formato appropriato, ma l'importazione continua a non riuscire, verifica la presenza di errori nella console Google Cloud, quindi consulta Risoluzione dei problemi relativi alle importazioni non riuscite.

Passaggi successivi