Wrapping di chiavi

Il wrapping delle chiavi è il processo di crittografia di una chiave utilizzando un'altra chiave, al fine di memorizzarla in modo sicuro o trasmetterla tramite un canale non attendibile. Il wrapping delle chiavi può basarsi sulla crittografia simmetrica o asimmetrica, a seconda del contesto.

In Cloud Key Management Service, il wrapping delle chiavi viene utilizzato per importare in modo sicuro le chiavi di crittografia fornite dall'utente. L'importazione delle chiavi richiede un job di importazione e ogni job di importazione ha un metodo di importazione che specifica il protocollo di wrapping delle chiavi da utilizzare.

Cloud KMS prevede formati specifici per il materiale della chiave importato. Prima che il materiale della chiave venga sottoposto a wrapping per l'importazione, potrebbe essere necessario convertirlo nel formato previsto da Cloud KMS. Formattazione delle chiavi per l'importazione contiene i dettagli dei formati richiesti e fornisce istruzioni su come puoi convertire le chiavi nel formato richiesto, se necessario.

Una volta formattato correttamente, Google Cloud CLI può eseguire automaticamente il wrapping del materiale della chiave prima di trasmetterlo in modo sicuro a Cloud KMS. Per maggiori dettagli, vedi Importare una chiave. In alternativa, puoi eseguire manualmente l'incapsulamento delle chiavi utilizzando i protocolli criptografici appropriati. Wrapping di una chiave utilizzando OpenSSL su Linux fornisce un esempio di come eseguire questa operazione.

Metodi di importazione

Cloud KMS fornisce i seguenti metodi di importazione:

Metodo di importazione Tipo di chiave del job di importazione Algoritmo di wrapping delle chiavi
RSA_OAEP_3072_SHA1_AES_256 RSA a 3072 bit RSAES-OAEP con SHA-1 + AES-KWP
RSA_OAEP_4096_SHA1_AES_256 RSA a 4096 bit RSAES-OAEP con SHA-1 + AES-KWP
RSA_OAEP_3072_SHA256_AES_256 (consigliato) RSA a 3072 bit RSAES-OAEP con SHA-256 + AES-KWP
RSA_OAEP_4096_SHA256_AES_256 RSA a 4096 bit RSAES-OAEP con SHA-256 + AES-KWP
RSA_OAEP_3072_SHA256 RSA a 3072 bit RSAES-OAEP con SHA-256
RSA_OAEP_4096_SHA256 RSA a 4096 bit RSAES-OAEP con SHA-256

Algoritmi di wrapping delle chiavi

I metodi di importazione forniti da Cloud KMS corrispondono ai seguenti algoritmi di wrapping delle chiavi:

RSAES-OAEP con SHA-1/SHA-256 + AES-KWP

Questo algoritmo di wrapping delle chiavi è uno schema di crittografia ibrida costituito da un'operazione di wrapping delle chiavi asimmetriche e da un'operazione di wrapping delle chiavi simmetriche:

  1. La chiave pubblica del job di importazione viene utilizzata per criptare una chiave AES-256 monouso. La crittografia viene eseguita utilizzando RSAES-OAEP e MGF-1, insieme all'algoritmo di digest specificato dal metodo di importazione. La chiave AES-256 monouso viene generata al momento dell'esecuzione del wrapping.
  2. La chiave AES-256 monouso del passaggio 1 viene utilizzata per criptare il materiale della chiave di destinazione utilizzando il wrapping della chiave AES con padding.

Il materiale della chiave con wrapping per l'importazione è un array di byte singolo costituito dai risultati del passaggio 1, seguiti dai risultati del passaggio 2. In altre parole, i risultati dei passaggi 1 e 2 vengono concatenati per formare il materiale della chiave con wrapping.

Questo algoritmo è lo stesso dell'algoritmo di wrapping delle chiavi PKCS #11 CKM_RSA_AES_KEY_WRAP. Se stai importando una chiave da un HSM e questo supporta questo algoritmo, puoi utilizzarlo direttamente. In alternativa, i passaggi 1 e 2 di cui sopra possono essere eseguiti con i meccanismi PKCS #11 CKM_RSA_PKCS_OAEP e CKM_AES_KEY_WRAP_PAD rispettivamente.

Se l'HSM di origine (o un altro fornitore di chiavi, se non utilizzi un HSM) non supporta il meccanismo di wrapping delle chiavi RSA AES, devi eseguire manualmente il wrapping del materiale della chiave utilizzando la chiave pubblica del tuo job di importazione. Per un esempio di come eseguire questa operazione utilizzando OpenSSL, consulta Wrapping di una chiave utilizzando OpenSSL su Linux.

RSAES-OAEP con SHA-256

Si tratta di un'operazione di wrapping delle chiavi asimmetriche che utilizza la chiave pubblica del job di importazione con RSAES-OAEP, utilizzando MGF-1 e l'algoritmo di digest SHA-256, per criptare direttamente il materiale della chiave di destinazione. Si basa sul meccanismo RSA OAEP di PKCS #11 CKM_RSA_PKCS_OAEP. Le limitazioni di dimensioni associate a questo metodo di importazione lo rendono inadatto per l'importazione di chiavi private RSA.