Ogni chiave di 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 i parametri da utilizzare per ogni operazione crittografica. Ogni chiave ha anche un livello di protezione che indica se le operazioni di crittografia vengono eseguite nel software o in un modulo di sicurezza hardware (HSM).
Scopi principali
Cloud KMS fornisce scopi della chiave per gli scenari seguenti:
| 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 |
| Meccanismi di incapsulamento chiave | key-encapsulation |
KEY_ENCAPSULATION |
cryptoKeyVersions.decapsulate, cryptoKeyVersions.getPublicKey |
| Firma MAC | mac |
MAC |
cryptoKeyVersions.macSign, cryptoKeyVersions.macVerify |
Quando crei una chiave, ne definisci lo scopo e l'algoritmo. Puoi modificare l'algoritmo quando crei nuove versioni della chiave, 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 crittografiche.
Algoritmi di crittografia simmetrica
Lo scopo della chiave ENCRYPT_DECRYPT consente la crittografia simmetrica. Tutte le chiavi con scopo
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 Galois Counter Mode (GCM), con padding di metadati interni di Cloud KMS.
Gli algoritmi di crittografia simmetrica come AES-256 sono generalmente considerati sicuri per il quantum computing. Puoi continuare a utilizzare la crittografia simmetrica.
Algoritmi di firma asimmetrica
Lo scopo della chiave ASYMMETRIC_SIGN consente la firma asimmetrica. Le chiavi con scopo
ASYMMETRIC_SIGN utilizzano algoritmi diversi, a seconda che la chiave
supporti la firma con curva ellittica o la
firma RSA.
Per una chiave con scopo ASYMMETRIC_SIGN, puoi passare da chiavi di dimensioni diverse a schemi di firma diversi modificando l'algoritmo.
Gli algoritmi di firma asimmetrica che utilizzano curve ellittiche e RSA sono suscettibili agli attacchi dei futuri computer quantistici. Per il non ripudio a lungo termine delle tue firme, scegli un algoritmo di firma asimmetrica post-quantistica.
Algoritmi di firma basati su curva ellittica
Il formato di un algoritmo di firma a curva ellittica è
EC_SIGN_ELLIPTIC_CURVE_DIGEST_ALGORITHM
dove
ELLIPTIC_CURVEè la curva ellitticaDIGEST_ALGORITHMè l'algoritmo di riepilogo
La tabella seguente elenca i possibili algoritmi per le chiavi della 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 sulla curva Curve25519 in modalità PureEdDSA, che accetta dati non elaborati come input anziché dati sottoposti 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 paddingMODULUS_BIT_LENGTHè la lunghezza in bit della chiaveDIGEST_ALGORITHMè l'algoritmo di riepilogo
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 riempimento 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 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 probabilistica (PSS), la lunghezza del sale utilizzato è uguale alla
lunghezza dell'algoritmo di digest. Ad esempio, RSA_SIGN_PSS_2048_SHA256 utilizzerà
PSS con una lunghezza del sale di 256 bit. Inoltre, per PSS, la funzione di generazione della maschera (MGF1)
utilizza anche l'algoritmo digest specificato nel nome dell'algoritmo. 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 di hashing per MGF1 durante il calcolo della
firma.
Algoritmi di firma PQC
Gli algoritmi di firma della crittografia post-quantistica (PQC) iniziano con il prefisso
PQ_SIGN_. La seguente tabella elenca gli algoritmi PQC che Cloud KMS
può utilizzare per le chiavi con scopo ASYMMETRIC_SIGN. Gli algoritmi puri prendono come input dati
non elaborati, mentre gli algoritmi di pre-hashing accettano un hash dei dati.
| Algoritmo (SDK) | Algoritmo (API) | Variante | Descrizione |
|---|---|---|---|
pq-sign-ml-dsa-65 |
PQ_SIGN_ML_DSA_65 |
Pure | Algoritmo di firma digitale basato su reticolo modulare. |
pq-sign-slh-dsa-sha2-128s |
PQ_SIGN_SLH_DSA_SHA2_128S |
Pure | Algoritmo di firma digitale basato su hash e senza stato. |
pq-sign-hash-slh-dsa-sha2-128s-sha256 |
PQ_SIGN_HASH_SLH_DSA_SHA2_128S_SHA256 |
Pre-hash | Algoritmo di firma digitale basato su hash e senza stato. |
Algoritmi di crittografia asimmetrica
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 paddingMODULUS_BIT_LENGTHè la lunghezza in bit della chiaveDIGEST_ALGORITHMè l'algoritmo di riepilogo
La crittografia asimmetrica che utilizza algoritmi RSA è suscettibile al calcolo quantistico, inclusi gli attacchi "harvest now, decrypt later" (HNDL). In un attacco HNDL, un malintenzionato intercetta un testo cifrato che non può decriptare e lo memorizza nella speranza di poterlo decriptare in futuro utilizzando il quantum computing. Se trasmetti dati che devono rimanere riservati a lungo termine nonostante i progressi nel quantum computing, scegli invece un algoritmo di incapsulamento delle chiavi.
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 Optimal Asymmetric Encryption Padding (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 durante
la crittografia dei dati.
Algoritmi di incapsulamento chiave
Lo scopo della chiave KEY_ENCAPSULATION viene utilizzato per stabilire segreti condivisi
utilizzando meccanismi di incapsulamento delle chiavi.
La tabella seguente elenca i possibili algoritmi per le chiavi con scopo
KEY_ENCAPSULATION. Tutti questi algoritmi sono progettati per essere sicuri
per la tecnologia post-quantistica. 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 |
ml-kem-768 |
ML_KEM_768 |
Meccanismo di incapsulamento delle chiavi basato su reticoli di moduli con set di parametri ML-KEM-768 (FIPS 203) |
ml-kem-1024 |
ML_KEM_1024 |
Meccanismo di incapsulamento delle chiavi basato su reticoli di moduli con set di parametri ML-KEM-1024 (FIPS 203) |
kem-xwing |
KEM_XWING |
KEM ibrido X-Wing che combina ML-KEM-768 con X25519 |
Algoritmi di firma MAC
Lo scopo della chiave MAC consente la firma MAC simmetrica. Le chiavi con scopo MAC 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 maggior parte degli algoritmi simmetrici è generalmente considerata sicura per il quantum computing. Tuttavia, l'algoritmo
HMAC-SHA1 non è sicuro per il quantum computing. Se vuoi che le tue firme simmetriche
rimangano affidabili a lungo termine nonostante gli sviluppi nel campo del quantum computing, scegli una chiave HMAC
con una dimensione del digest maggiore.
La tabella seguente elenca gli algoritmi HMAC 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 |
Suggerimenti degli algoritmi
Per la firma digitale, ti consigliamo di utilizzare algoritmi di firma con curva ellittica. EC_SIGN_P256_SHA256 è l'algoritmo a curva ellittica consigliato.
Se utilizzi 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, HMAC_SHA256 è l'algoritmo consigliato.
Per l'incapsulamento delle chiavi, ti consigliamo di utilizzare KEM_XWING, un algoritmo ibrido
che può fornire una difesa a più livelli contro avversari classici e
potenziali quantistici.
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 nel software. |
HSM |
Le operazioni di crittografia vengono eseguite in un HSM. |
HSM_SINGLE_TENANT |
Le operazioni di crittografia vengono eseguite in un |
: cluster of HSM partitions, exclusively created for a
: single-tenant Cloud HSM instance.
EXTERNAL | Le operazioni di crittografia vengono eseguite utilizzando una chiave archiviata
: in un gestore di chiavi esterno connesso a
: Google Cloud tramite internet. Limitato a simmetrico
: crittografia e 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 della chiave sono supportati per le chiavi con livello di protezione
SOFTWARE o HSM.