Finalità e algoritmi delle chiavi

Ogni chiave di Cloud Key Management Service ha uno scopo, che definisce e le funzionalità crittografiche della chiave. Lo scopo determina anche algoritmi sono supportati per le versioni della chiave. Ogni algoritmo definisce cosa da utilizzare per ogni operazione crittografica. Ogni chiave ha inoltre livello di protezione che indica se le operazioni crittografiche sono eseguite nel software o in un modulo di sicurezza hardware (HSM).

Scopi principali

Cloud KMS fornisce gli scopi chiave per i seguenti scenari:

Scenario Scopo chiave (SDK) Scopo chiave (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 lo scopo e l'algoritmo. Tu possono modificare l'algoritmo quando crei nuove versioni della chiave, in conformità alle nell'ambito del suo scopo. Lo scopo non può essere modificato.

Due chiavi con lo stesso scopo possono usare algoritmi di base diversi, ma devono supportare lo stesso set di operazioni crittografiche.

Algoritmi di crittografia simmetrica

Lo scopo della chiave ENCRYPT_DECRYPT consente la crittografia simmetrica. Tutti i tasti con chiave lo scopo ENCRYPT_DECRYPT utilizza l'algoritmo GOOGLE_SYMMETRIC_ENCRYPTION. No parametri sono usati con questo algoritmo. L'algoritmo utilizza la tecnologia avanzata a 256 bit Chiavi di crittografia Standard (AES-256) in Galois Counter Mode (GCM), riempite con Metadati interni a Cloud KMS.

Algoritmi di firma asimmetrici

Lo scopo della chiave ASYMMETRIC_SIGN consente la firma asimmetrica. Chiavi con chiave lo scopo ASYMMETRIC_SIGN utilizzano algoritmi diversi, a seconda che la chiave supporta la firma su curva ellittica o Firma RSA.

Per una chiave con scopo ASYMMETRIC_SIGN, puoi passare da una all'altra chiavi di dimensione e diversi schemi di firma tramite l'algoritmo.

Algoritmi di firma della curva ellittica

Il formato di un algoritmo di firma della curva ellittica è

EC_SIGN_[ELLIPTIC_CURVE]_[DIGEST_ALGORITHM]

dove

  • [ELLIPTIC_CURVE] è la curva ellittica
  • [DIGEST_ALGORITHM] è l'algoritmo digest

Nella tabella seguente sono elencati i possibili algoritmi per le chiavi a curva ellittica con lo scopo ASYMMETRIC_SIGN. Utilizza i nomi degli algoritmi in minuscolo con gcloud e le maiuscole con l'API Cloud Key Management Service.

Algoritmo (SDK) Algoritmo (API) Descrizione
ec-sign-ed25519 EC_SIGN_ED25519 EdDSA on the Curve25519 in PureEdDSA , che prende i dati non elaborati come input anziché quelli 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 spaziatura interna
  • [MODULUS_BIT_LENGTH] è la lunghezza in bit della chiave
  • [DIGEST_ALGORITHM] è l'algoritmo digest

Tieni presente che alcuni algoritmi sono formattati

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 elemento DigestInfo. Nella variante:

  • viene calcolato un digest sul messaggio che verrà firmato
  • La spaziatura interna PKCS #1 viene applicata direttamente al digest
  • viene calcolata una firma del digest riempito utilizzando la chiave privata RSA

Nella tabella seguente sono elencati i possibili algoritmi per le chiavi RSA con uno scopo ASYMMETRIC_SIGN. Utilizza i nomi degli algoritmi in minuscolo con gcloud e le maiuscole con l'API Cloud Key Management Service.

Algoritmo (SDK) Algoritmo (API) Descrizione
rsa-sign-pss-2048-sha256 RSA_SIGN_PSS_2048_SHA256 Chiave a 2048 bit RSASSA-PSS con digest SHA-256
rsa-sign-pss-3072-sha256 (consigliato) RSA_SIGN_PSS_3072_SHA256 Chiave a 3072 bit RSASSA-PSS con digest SHA-256
rsa-sign-pss-4096-sha256 RSA_SIGN_PSS_4096_SHA256 Chiave a 4096 bit RSASSA-PSS con digest SHA-256
rsa-sign-pss-4096-sha512 RSA_SIGN_PSS_4096_SHA512 Chiave a 4096 bit RSASSA-PSS con 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 chiave a 2048 bit
rsa-sign-raw-pkcs1-3072 RSA_SIGN_RAW_PKCS1_3072 Firma RSASSA-PKCS1-v1_5 senza codifica, con chiave a 3072 bit
rsa-sign-raw-pkcs1-4096 RSA_SIGN_RAW_PKCS1_4096 Firma RSASSA-PKCS1-v1_5 senza codifica, con chiave a 4096 bit

Per lo schema di firma probabilistica (PSS), la lunghezza del sale utilizzata è uguale al lunghezza dell'algoritmo digest. Ad esempio, RSA_SIGN_PSS_2048_SHA256 utilizzerà un file PSS con una lunghezza del sale di 256 bit. Inoltre, per PSS l'algoritmo digest specificato nel nome dell'algoritmo è utilizzato per la funzione di generazione della maschera (MGF1) . Ad esempio, se utilizzi RSA_SIGN_PSS_2048_SHA256, dovrai specificare un hash SHA-256 dei dati da firmare e Cloud KMS usano internamente l'algoritmo SHA-256 come algoritmo hash per MGF1 quando si calcola il firma.

Algoritmi di crittografia asimmetrici

Lo scopo della chiave ASYMMETRIC_DECRYPT consente la crittografia RSA. Il formato di un L'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

Nella tabella seguente sono elencati i possibili algoritmi per le chiavi RSA con uno scopo ASYMMETRIC_DECRYPT. Utilizza i nomi degli algoritmi in minuscolo con gcloud e le maiuscole 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 digest. Nel Cloud KMS, la funzione digest da utilizzare con MGF1 è specificata come parte del nome dell'algoritmo chiave. Ad esempio, se utilizzi RSA_DECRYPT_OAEP_3072_SHA256, dovresti usare SHA-256 con MGF1 quando la crittografia dei dati.

Algoritmi di firma MAC

Lo scopo della chiave MAC consente la firma MAC simmetrica. Chiavi con MAC con scopo chiave al momento 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

Nella tabella seguente sono elencati gli algoritmi HMAC attualmente disponibili per le chiavi con con un MAC specifico. Utilizza i nomi degli algoritmi in minuscolo con il comando gcloud e quelle 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

Suggerimenti sugli algoritmi

Per la firma digitale, si consiglia di utilizzare la firma su curva ellittica degli algoritmi. EC_SIGN_P256_SHA256 è l'algoritmo della curva ellittica consigliato. Se utilizzerai algoritmi di firma RSA, il tipo di firma RSA consigliato è RSA_SIGN_PSS_3072_SHA256.

Per la crittografia asimmetrica, è consigliato RSA_DECRYPT_OAEP_3072_SHA256 dell'algoritmo.

Per la firma MAC, l'algoritmo consigliato è HMAC_SHA256.

Per l'elenco dei valori degli algoritmi supportati da utilizzare con gcloud CLI, vedi --default-algorithm.

Livelli di protezione

Il livello di protezione indica il modo in cui vengono eseguite le operazioni crittografiche. Dopo il giorno crei una chiave, non puoi modificare il livello di protezione.

Livello di protezione Descrizione
SOFTWARE Le operazioni di crittografia vengono eseguite all'interno di un 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 chiave sono supportati per le chiavi con livello di protezione SOFTWARE o HSM.