Ogni chiave Cloud Key Management Service ha uno scopo, che definisce le funzionalità di crittografia della chiave. Lo scopo determina anche quali algoritmi sono supportati per le versioni della chiave. Ogni algoritmo definisce quali parametri devono essere utilizzati per ogni operazione crittografica. Ogni chiave ha anche un livello di protezione che indica se le operazioni di crittografia vengono eseguite in software o in un modulo di sicurezza hardware (HSM).
Scopi principali
Cloud KMS fornisce chiavi per i seguenti scenari:
Scenario | Scopo principale (SDK) | Scopo principale (API) | Metodi supportati |
---|---|---|---|
Crittografia simmetrica | encryption |
ENCRYPT_DECRYPT |
cryptoKeys.encrypt, cryptoKeys.decrypt |
Crittografia simmetrica non elaborata | raw-encryption |
RAW_ENCRYPT_DECRYPT |
cryptoKeys.rawEncrypt, cryptoKeys.rawDecrypt |
Firma asimmetrica | asymmetric-signing |
ASYMMETRIC_SIGN |
cryptoKeyVersions.asymmetricSign, cryptoKeyVersions.getPublicKey |
Crittografia asimmetrica | asymmetric-encryption |
ASYMMETRIC_DECRYPT |
cryptoKeyVersions.asymmetricDecrypt, cryptoKeyVersions.getPublicKey |
Firma MAC | mac |
MAC |
cryptoKeyVersions.macSign, cryptoKeyVersions.macVerify |
Quando crei una chiave, ne definisci la finalità e l'algoritmo. Puoi cambiare l'algoritmo quando crei nuove versioni della chiave, in base allo scopo. Lo scopo non può essere modificato.
Due chiavi con lo stesso scopo possono utilizzare algoritmi di base diversi, ma devono supportare lo stesso insieme di operazioni crittografiche.
Algoritmi di crittografia simmetrica
Lo scopo della chiave ENCRYPT_DECRYPT abilita la crittografia simmetrica. Tutte le chiavi con scopo della chiave ENCRYPT_DECRYPT utilizzano l'algoritmo GOOGLE_SYMMETRIC_ENCRYPTION. Con questo algoritmo non vengono utilizzati parametri. Questo algoritmo utilizza chiavi Advanced Encryption Standard (AES-256) a 256 bit in modalità Galois Counter (GCM), con spaziatura aggiuntiva per i metadati interni di Cloud KMS.
Algoritmi di firma asimmetrica
Lo scopo della chiave ASYMMETRIC_SIGN abilita la firma asimmetrica. Le chiavi con scopo ASYMMETRIC_SIGN utilizzano algoritmi diversi, a seconda che la chiave supporti la firma a curva ellittica o la firma RSA.
Per una chiave con scopo ASYMMETRIC_SIGN, puoi passare da chiavi di dimensioni diverse e da diversi schemi di firma tramite l'algoritmo.
Algoritmi di firma con curva ellittica
Il formato di un algoritmo di firma a curva ellittica è
EC_SIGN_[ELLIPTIC_CURVE]_[DIGEST_ALGORITHM]
dove
[ELLIPTIC_CURVE]
è la curva ellittica[DIGEST_ALGORITHM]
è l'algoritmo digest
La tabella seguente elenca i possibili algoritmi per le chiavi con curva ellittica con scopo ASYMMETRIC_SIGN. Utilizza i nomi degli algoritmi in minuscolo con il comando gcloud
e quelli in maiuscolo con l'API Cloud Key Management Service.
Algoritmo (SDK) | Algoritmo (API) | Descrizione |
---|---|---|
ec-sign-ed25519 |
EC_SIGN_ED25519 |
EdDSA su Curve25519 in modalità PureEdDSA, che prende come input i dati non elaborati anziché quelli sottomessi ad hashing |
ec-sign-p256-sha256 **(consigliato)** |
EC_SIGN_P256_SHA256 |
ECDSA sulla curva P-256 con un digest SHA-256 |
ec-sign-p384-sha384 |
EC_SIGN_P384_SHA384 |
ECDSA sulla curva P-384 con un digest SHA-384 |
ec-sign-secp256k1-sha256 |
EC_SIGN_SECP256K1_SHA256 |
ECDSA sulla curva Secp256k1 con un digest SHA-256 |
Algoritmi di firma RSA
Il formato di un algoritmo di firma RSA è
RSA_SIGN_[PADDING_ALGORITHM]_[MODULUS_BIT_LENGTH]_[DIGEST_ALGORITHM]
dove
[PADDING_ALGORITHM]
è l'algoritmo di riempimento[MODULUS_BIT_LENGTH]
è la lunghezza in bit della chiave[DIGEST_ALGORITHM]
è l'algoritmo digest
Tieni presente che alcuni algoritmi sono formattati come
RSA_SIGN_RAW_[PADDING_ALGORITHM]_[MODULUS_BIT_LENGTH]
e ometti l'algoritmo digest. Questi algoritmi sono una variante della firma PKCS #1 che omette la codifica in un DigestInfo. Nella variante:
- viene calcolato un digest sul messaggio che verrà firmato
- Il padding PKCS #1 viene applicato direttamente al digest
- viene calcolata una firma del digest con padding utilizzando la chiave privata RSA
La tabella seguente elenca i possibili algoritmi per le chiavi RSA con scopo ASYMMETRIC_SIGN. Utilizza i nomi degli algoritmi in minuscolo con il comando gcloud
e quelli in maiuscolo con l'API Cloud Key Management Service.
Algoritmo (SDK) | Algoritmo (API) | Descrizione |
---|---|---|
rsa-sign-pss-2048-sha256 |
RSA_SIGN_PSS_2048_SHA256 |
Chiave RSASSA-PSS a 2048 bit con un digest SHA-256 |
rsa-sign-pss-3072-sha256 (consigliato) |
RSA_SIGN_PSS_3072_SHA256 |
Chiave RSASSA-PSS a 3072 bit con un digest SHA-256 |
rsa-sign-pss-4096-sha256 |
RSA_SIGN_PSS_4096_SHA256 |
Chiave RSASSA-PSS a 4096 bit con un digest SHA-256 |
rsa-sign-pss-4096-sha512 |
RSA_SIGN_PSS_4096_SHA512 |
Chiave RSASSA-PSS a 4096 bit con un digest SHA-512 |
rsa-sign-pkcs1-2048-sha256 |
RSA_SIGN_PKCS1_2048_SHA256 |
RSASSA-PKCS1 v1_5 con una chiave di 2048 bit e un digest SHA-256 |
rsa-sign-pkcs1-3072-sha256 |
RSA_SIGN_PKCS1_3072_SHA256 |
RSASSA-PKCS1 v1_5 con una chiave di 3072 bit e un digest SHA-256 |
rsa-sign-pkcs1-4096-sha256 |
RSA_SIGN_PKCS1_4096_SHA256 |
RSASSA-PKCS1 v1_5 con una chiave a 4096 bit e un digest SHA-256 |
rsa-sign-pkcs1-4096-sha512 |
RSA_SIGN_PKCS1_4096_SHA512 |
RSASSA-PKCS1 v1_5 con una chiave a 4096 bit e un digest SHA-512 |
rsa-sign-raw-pkcs1-2048 |
RSA_SIGN_RAW_PKCS1_2048 |
Firma RSASSA-PKCS1-v1_5 senza codifica, con una chiave di 2048 bit |
rsa-sign-raw-pkcs1-3072 |
RSA_SIGN_RAW_PKCS1_3072 |
Firma RSASSA-PKCS1-v1_5 senza codifica, con una chiave di 3072 bit |
rsa-sign-raw-pkcs1-4096 |
RSA_SIGN_RAW_PKCS1_4096 |
Firma RSASSA-PKCS1-v1_5 senza codifica, con una chiave a 4096 bit |
Per lo schema di firma probabilistica (PSS), la lunghezza del sale utilizzata è uguale alla lunghezza dell'algoritmo di hashing. Ad esempio, RSA_SIGN_PSS_2048_SHA256 utilizzerà PSS con una lunghezza del sale di 256 bit. Inoltre, per PSS l'algoritmo digest specificato nel nome dell'algoritmo viene utilizzato anche per la funzione di generazione della maschera (MGF1). Ad esempio, se utilizzi RSA_SIGN_PSS_2048_SHA256, invierai un hashing SHA-256 dei dati da firmare e Cloud KMS utilizzerà internamente SHA-256 come algoritmo di hashing per MGF1 durante il calcolo della firma.
Algoritmi di crittografia asimmetrica
Lo scopo della chiave ASYMMETRIC_DECRYPT abilita la crittografia RSA. Il formato di un algoritmo ASYMMETRIC_DECRYPT è
RSA_DECRYPT_[PADDING_ALGORITHM]_[MODULUS_BIT_LENGTH]_[DIGEST_ALGORITHM]
dove
[PADDING_ALGORITHM]
è l'algoritmo di riempimento[MODULUS_BIT_LENGTH]
è la lunghezza in bit della chiave[DIGEST_ALGORITHM]
è l'algoritmo digest
La tabella seguente elenca i possibili algoritmi per le chiavi RSA con scopo ASYMMETRIC_DECRYPT. Utilizza i nomi degli algoritmi in minuscolo con il comando gcloud
e quelli in maiuscolo con l'API Cloud Key Management Service.
Algoritmo (SDK) | Algoritmo (API) | Descrizione |
---|---|---|
rsa-decrypt-oaep-2048-sha1 |
RSA_DECRYPT_OAEP_2048_SHA1 |
Chiave RSAES-OAEP a 2048 bit con un digest SHA-1 |
rsa-decrypt-oaep-2048-sha256 |
RSA_DECRYPT_OAEP_2048_SHA256 |
Chiave RSAES-OAEP a 2048 bit con un digest SHA-256 |
rsa-decrypt-oaep-3072-sha1 |
RSA_DECRYPT_OAEP_3072_SHA1 |
Chiave RSAES-OAEP a 3072 bit con un digest SHA-1 |
rsa-decrypt-oaep-3072-sha256 (consigliato) |
RSA_DECRYPT_OAEP_3072_SHA256 |
Chiave RSAES-OAEP a 3072 bit con un digest SHA-256 |
rsa-decrypt-oaep-4096-sha1 |
RSA_DECRYPT_OAEP_4096_SHA1 |
Chiave RSAES-OAEP a 4096 bit con un digest SHA-1 |
rsa-decrypt-oaep-4096-sha256 |
RSA_DECRYPT_OAEP_4096_SHA256 |
Chiave RSAES-OAEP a 4096 bit con un digest SHA-256 |
rsa-decrypt-oaep-4096-sha512 |
RSA_DECRYPT_OAEP_4096_SHA512 |
Chiave RSAES-OAEP a 4096 bit con un digest SHA-512 |
Tutti questi algoritmi utilizzano l'ottimizzazione del padding per l'utilizzo di crittografia asimmetrica (OAEP) con la funzione di generazione della maschera MGF1. MGF1 richiede un algoritmo di digest. In Cloud KMS, la funzione di digest da utilizzare con MGF1 è specificata come parte del nome dell'algoritmo della chiave. Ad esempio, se utilizzi l'algoritmo RSA_DECRYPT_OAEP_3072_SHA256, devi utilizzare SHA-256 con MGF1 per la crittografia dei dati.
Algoritmi di firma MAC
Lo scopo della chiave MAC abilita la firma MAC simmetrica. Le chiavi con scopo MAC attualmente supportano solo la firma HMAC.
Algoritmi di firma HMAC
Il formato di un algoritmo di firma HMAC è
HMAC_[HASH_ALGORITHM]
dove
[HASH_ALGORITHM]
è l'algoritmo di hashing
La tabella seguente elenca gli algoritmi HMAC attualmente disponibili per le chiavi con scopo MAC. Utilizza i nomi degli algoritmi in minuscolo con il comando gcloud
e quelli in maiuscolo con l'API Cloud Key Management Service.
Algoritmo (SDK) | Algoritmo (API) | Descrizione |
---|---|---|
hmac-sha1 |
HMAC_SHA1 |
HMAC con un digest SHA-1 |
hmac-sha224 |
HMAC_SHA224 |
HMAC con un digest SHA-224 |
hmac-sha256 (consigliato) |
HMAC_SHA256 |
HMAC con un digest SHA-256 |
hmac-sha384 |
HMAC_SHA384 |
HMAC con un digest SHA-384 |
hmac-sha512 |
HMAC_SHA512 |
HMAC con un digest SHA-512 |
Consigli dell'algoritmo
Per la firma digitale, è consigliabile utilizzare algoritmi di firma con curve ellittiche. EC_SIGN_P256_SHA256 è l'algoritmo di curva ellittica consigliato. Se hai intenzione di utilizzare algoritmi di firma RSA, l'algoritmo di firma RSA consigliato è RSA_SIGN_PSS_3072_SHA256.
Per la crittografia asimmetrica, RSA_DECRYPT_OAEP_3072_SHA256 è l'algoritmo consigliato.
Per la firma MAC, l'algoritmo consigliato è HMAC_SHA256.
Per l'elenco dei valori dell'algoritmo supportati da utilizzare con gcloud CLI, consulta --default-algorithm.
Livelli di protezione
Il livello di protezione indica il modo in cui vengono eseguite le operazioni crittografiche. Dopo aver creato una chiave, non puoi modificare il livello di protezione.
Livello di protezione | Descrizione |
---|---|
SOFTWARE | Le operazioni di crittografia vengono eseguite in software. |
HSM | Le operazioni di crittografia vengono eseguite in un HSM. |
EXTERNAL | Le operazioni di crittografia vengono eseguite utilizzando una chiave archiviata in un gestore di chiavi esterno connesso a Google Cloud tramite internet. Limitato alla crittografia simmetrica e alla firma asimmetrica. |
EXTERNAL_VPC | Le operazioni di crittografia vengono eseguite utilizzando una chiave archiviata in un gestore di chiavi esterno connesso a Google Cloud tramite Virtual Private Cloud (VPC). Limitato alla crittografia simmetrica e alla firma asimmetrica. |
Tutti gli scopi delle chiavi sono supportati per le chiavi con livello di protezione SOFTWARE
o
HSM
.