Ogni chiave di Cloud Key Management Service ha uno scopo che definisce le capacità crittografiche della chiave. Lo scopo determina inoltre 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 crittografiche vengono eseguite nel software o in un modulo di sicurezza hardware (HSM).
Scopi principali
Cloud KMS fornisce le finalità principali per i seguenti scenari:
Scenario | Scopo principale (SDK) | Scopo chiave (API) | Metodi supportati |
---|---|---|---|
Crittografia simmetrica | crittografia | ENCRYPT_DECRYPT | cryptoKeys.encrypt, cryptoKeys.decrypt |
Firma asimmetrica | firma asimmetrica | SEGNO_ASIMMETRICO | cryptoKeyVersions.asymmetricSign, cryptoKeyVersions.getPublicKey |
Crittografia asimmetrica | crittografia asimmetrica | ASIMMETRIC_DECRYPT | cryptoKeyVersions.asymmetricDecrypt, cryptoKeyVersions.getPublicKey |
Firma MAC | firma mac | MAC | cryptoKeyVersions.macSign, cryptoKeyVersions.macVerify |
Quando crei una chiave, definisci lo scopo e l'algoritmo della chiave. Puoi modificare l'algoritmo quando crei nuove versioni delle chiavi, in base all'ambito del suo scopo. Lo scopo non può essere modificato.
Due chiavi con lo stesso scopo possono utilizzare algoritmi sottostanti diversi, ma devono supportare lo stesso insieme di operazioni di crittografia.
Algoritmi di crittografia simmetrica
Lo scopo della chiave ENCRYPT_DECRYPT consente la crittografia simmetrica. Tutte le chiavi con scopo chiave ENCRYPT_DECRYPT utilizzano l'algoritmo GOOGLE_SYMMETRIC_ENCRYPTION. Nessun parametro viene utilizzato con questo algoritmo. Questo algoritmo utilizza chiavi Advanced Encryption Standard (AES-256) a 256 bit in modalità contatore Galois (GCM), i cui dati vengono aggiunti ai metadati interni di Cloud KMS.
Algoritmi di firma asimmetrici
Lo scopo della chiave ASYMMETRIC_SIGN consente la firma asimmetrica. Le chiavi con scopo chiave ASYMMETRIC_SIGN utilizzano algoritmi diversi, a seconda che la chiave supporti la firma della curva ellittica o la firma RSA.
Per una chiave con scopo ASYMMETRIC_SIGN, puoi passare da chiavi di dimensioni diverse a schemi di firme diversi tramite l'algoritmo.
Algoritmi di firma a 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 seguente tabella elenca i possibili algoritmi per le chiavi a curva ellittica con scopo ASYMMETRIC_SIGN. Utilizza i nomi degli algoritmi in lettere minuscole con il comando gcloud
e quelli in maiuscolo con l'API Cloud Key Management Service.
Algoritmo (SDK) | Algoritmo (API) | Descrizione |
---|---|---|
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 spaziatura interna[MODULUS_BIT_LENGTH]
è la lunghezza in bit della chiave[DIGEST_ALGORITHM]
è l'algoritmo digest
Tieni presente che alcuni algoritmi hanno il formato
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 elaborato un digest sul messaggio che verrà firmato
- La spaziatura interna di PKCS #1 viene applicata direttamente al digest
- Viene calcolata una firma del digest imbottito mediante la chiave privata RSA.
Nella tabella seguente sono elencati i possibili algoritmi per le chiavi RSA con scopo ASYMMETRIC_SIGN. Utilizza i nomi degli algoritmi in lettere minuscole 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 |
RSASSA-PSS Chiave a 2048 bit con un digest SHA-256 |
rsa-sign-pss-3072-sha256 (consigliato) |
RSA_SIGN_PSS_3072_SHA256 |
RSASSA-PSS Chiave a 3072 bit con un digest SHA-256 |
rsa-sign-pss-4096-sha256 |
RSA_SIGN_PSS_4096_SHA256 |
RSASSA-PSS Chiave a 4096 bit con un digest SHA-256 |
rsa-sign-pss-4096-sha512 |
RSA_SIGN_PSS_4096_SHA512 |
RSASSA-PSS Chiave 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 a 2048 bit e un digest SHA-256 |
rsa-sign-pkcs1-3072-sha256 |
RSA_SIGN_PKCS1_3072_SHA256 |
RSASSA-PKCS1 v1_5 con una chiave a 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 a 2048 bit |
rsa-sign-raw-pkcs1-3072 |
RSA_SIGN_RAW_PKCS1_3072 |
Firma RSASSA-PKCS1-v1_5 senza codifica, con una chiave a 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 Probabilistic (PSS), la lunghezza del sale utilizzata è uguale alla lunghezza dell'algoritmo digest. Ad esempio, RSA_SIGN_PSS_2048_SHA256 utilizzerà PSS con una lunghezza del sale di 256 bit. Inoltre, per la PSS, viene utilizzato anche l'algoritmo digest specificato nel nome dell'algoritmo per la funzione di generazione della maschera (MGF1). Ad esempio, se utilizzi RSA_SIGN_PSS_2048_SHA256, invierai un hash SHA-256 dei dati da firmare e Cloud KMS utilizzerà internamente SHA-256 come algoritmo hash per MGF1 durante il calcolo della firma.
Algoritmi di crittografia asimmetrici
Lo scopo della chiave ASYMMETRIC_DECRYPT consente 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 spaziatura interna[MODULUS_BIT_LENGTH]
è la lunghezza in bit della chiave[DIGEST_ALGORITHM]
è l'algoritmo digest
La seguente tabella elenca i possibili algoritmi per le chiavi RSA con scopo ASYMMETRIC_DECRYPT. Utilizza i nomi degli algoritmi in lettere minuscole 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 |
RSAES-OAEP Chiave a 2048 bit con un digest SHA-1 |
rsa-decrypt-oaep-2048-sha256 |
RSA_DECRYPT_OAEP_2048_SHA256 |
RSAES-OAEP Chiave a 2048 bit con un digest SHA-256 |
rsa-decrypt-oaep-3072-sha1 |
RSA_DECRYPT_OAEP_3072_SHA1 |
RSAES-OAEP Chiave a 3072 bit con un digest SHA-1 |
rsa-decrypt-oaep-3072-sha256 (consigliato) |
RSA_DECRYPT_OAEP_3072_SHA256 |
RSAES-OAEP Chiave a 3072 bit con un digest SHA-256 |
rsa-decrypt-oaep-4096-sha1 |
RSA_DECRYPT_OAEP_4096_SHA1 |
RSAES-OAEP Chiave a 4096 bit con un digest SHA-1 |
rsa-decrypt-oaep-4096-sha256 |
RSA_DECRYPT_OAEP_4096_SHA256 |
RSAES-OAEP Chiave a 4096 bit con un digest SHA-256 |
rsa-decrypt-oaep-4096-sha512 |
RSA_DECRYPT_OAEP_4096_SHA512 |
RSAES-OAEP Chiave a 4096 bit con un digest SHA-512 |
Tutti questi algoritmi utilizzano il Padding di crittografia asimmetrico (OAEP) ottimale con la funzione di generazione della maschera MGF1. MGF1 richiede un algoritmo digest. In Cloud KMS, la funzione digest da utilizzare con MGF1 viene specificata come parte del nome dell'algoritmo della chiave. Ad esempio, se utilizzi l'algoritmo RSA_DECRYPT_OAEP_3072_SHA256, dovresti utilizzare SHA-256 con MGF1 durante la crittografia dei dati.
Algoritmi di firma MAC
Lo scopo della chiave MAC consente la firma MAC simmetrica. Attualmente le chiavi con MAC per scopi chiave 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 hash
La seguente tabella elenca gli algoritmi HMAC attualmente disponibili per le chiavi con MAC di scopo. Utilizza i nomi degli algoritmi con lettere minuscole con il comando gcloud
e quelli con lettere maiuscole 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 sull'algoritmo
Per la firma digitale, consigliamo di utilizzare gli algoritmi di firma a curva ellittica. EC_SIGN_P256_SHA256 è l'algoritmo consigliato della curva ellittica. Se utilizzi gli algoritmi di firma RSA, l'algoritmo di firma RSA consigliato è RSA_SIGN_PSS_3072_SHA256.
Per la crittografia asimmetrica, l'algoritmo consigliato è RSA_DECRYPT_OAEP_3072_SHA256.
Per la firma MAC, HMAC_SHA256 è l'algoritmo consigliato.
Per l'elenco dei valori degli algoritmi supportati da utilizzare con l'interfaccia a riga di comando gcloud, consulta --default-algorithm.
Livelli di protezione
Il livello di protezione indica come 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 nel software. |
HSM | Le operazioni di crittografia vengono eseguite in un HSM. |
PER USO ESTERNO | Le operazioni di crittografia vengono eseguite utilizzando una chiave archiviata in un gestore di chiavi esterno connesso a Google Cloud tramite Internet. Limitato a crittografia simmetrica e firma asimmetrica. |
VPC esterno | Le operazioni di crittografia vengono eseguite utilizzando una chiave archiviata in un gestore di chiavi esterno collegato a Google Cloud tramite Virtual Private Cloud (VPC). Limitato a crittografia simmetrica e firma asimmetrica. |
Tutti gli scopo della chiave sono supportati per le chiavi con livello di protezione SOFTWARE
o HSM
.