Wrapping di chiavi

Il wrapping delle chiavi è il processo di crittografia di una chiave mediante un'altra chiave, per archiviarla in modo sicuro o trasmetterla su un canale non attendibile. Il wrapping di chiavi può basarsi su una 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 delle chiavi importato. Prima che il materiale della chiave venga sottoposto a wrapping per l'importazione, potresti dover convertirlo nel formato previsto da Cloud KMS. La formattazione delle chiavi per l'importazione contiene i dettagli dei formati richiesti e fornisce istruzioni su come convertire le chiavi nel formato richiesto, se necessario.

Una volta formattato correttamente il materiale della chiave, 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 Importazione di una chiave. In alternativa, puoi eseguire manualmente il wrapping delle chiavi utilizzando i protocolli crittografici appropriati. L'aggregazione di una chiave mediante OpenSSL su Linux fornisce un esempio di come sia possibile farlo.

Metodi di importazione

Cloud KMS fornisce i seguenti metodi di importazione:

Metodo di importazione Tipo di chiave job di importazione Algoritmo di wrapping di 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 (consigliata) 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 di 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 di chiavi è uno schema di crittografia ibrido costituito sia da un'operazione di wrapping di chiavi asimmetrica sia da un'operazione di wrapping di chiavi simmetrica:

  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 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 delle chiavi di destinazione utilizzando l'avvolgimento di chiavi AES con spaziatura interna.

Il materiale della chiave con wrapping per l'importazione è un array di singolo byte 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 è uguale all'algoritmo di wrapping di chiavi PKCS #11 CKM_RSA_AES_KEY_WRAP. Puoi utilizzare direttamente l'HSM, se stai importando una chiave da un HSM, e questo algoritmo. In alternativa, i passaggi 1 e 2 precedenti possono essere eseguiti con i meccanismi PKCS #11 rispettivamente CKM_RSA_PKCS_OAEP e CKM_AES_KEY_WRAP_PAD.

Se l'HSM di origine (o un altro provider di chiavi se non utilizza HSM) non supporta il meccanismo di wrapping delle chiavi AES RSA, devi eseguire manualmente il wrapping del materiale della chiave utilizzando la chiave pubblica del 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

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