Objectifs et algorithmes des clés

Chaque clé Cloud Key Management Service a un objectif, qui définit les capacités cryptographiques de la clé. L'objectif détermine également les algorithmes acceptés pour les versions de la clé. Chaque algorithme définit les paramètres à employer pour chaque opération de chiffrement. Toute clé est également dotée d'un niveau de protection qui indique si les opérations de chiffrement sont effectuées dans le logiciel ou dans un module matériel de sécurité (HSM, Hardware Security Module).

Objectifs des clés

Cloud KMS propose des objectifs de clés pour les scénarios suivants :

Scénario Objectif de clé (SDK) Objectif de clé (API) Méthodes acceptées
Chiffrement symétrique encryption ENCRYPT_DECRYPT cryptoKeys.encrypt, cryptoKeys.decrypt
Chiffrement symétrique brut raw-encryption RAW_ENCRYPT_DECRYPT cryptoKeys.rawEncrypt et cryptoKeys.rawDecrypt
Signature asymétrique asymmetric-signing ASYMMETRIC_SIGN cryptoKeyVersions.asymmetricSign, cryptoKeyVersions.getPublicKey
Chiffrement asymétrique asymmetric-encryption ASYMMETRIC_DECRYPT cryptoKeyVersions.asymmetricDecrypt, cryptoKeyVersions.getPublicKey
Signature MAC mac MAC cryptoKeyVersions.macSign, cryptoKeyVersions.macVerify

Lorsque vous créez une clé, vous définissez son objectif et son algorithme. Vous pouvez modifier l'algorithme lorsque vous créez des versions de la clé, en fonction du champ d'application de son objectif. Ce dernier ne peut pas être modifié.

Deux clés ayant le même objectif peuvent utiliser des algorithmes sous-jacents différents, mais elles doivent être compatibles avec le même ensemble d'opérations.

Algorithmes de chiffrement symétrique

L'objectif de clé ENCRYPT_DECRYPT permet le chiffrement symétrique. Toutes les clés ayant cet objectif emploient l'algorithme GOOGLE_SYMMETRIC_ENCRYPTION, lequel n'utilise aucun paramètre. Cet algorithme emploie des clés AES-256 (Advanced Encryption Standard, 256 bits) en mode GCM (Galois Counter Mode), complétées avec des métadonnées internes de Cloud KMS.

Algorithmes de signature asymétrique

L'objectif de clé ASYMMETRIC_SIGN permet la signature asymétrique. Les clés ayant cet objectif emploient des algorithmes différents selon qu'elles acceptent la signature à courbe elliptique ou la signature RSA.

Dans le cas d'une clé ayant l'objectif ASYMMETRIC_SIGN, vous pouvez basculer entre différentes tailles de clés et différents schémas de signature via l'algorithme.

Algorithmes de signature à courbe elliptique

Le format d'un algorithme de signature à courbe elliptique est le suivant :

EC_SIGN_[ELLIPTIC_CURVE]_[DIGEST_ALGORITHM]

Où :

  • [ELLIPTIC_CURVE] est la courbe elliptique ;
  • [DIGEST_ALGORITHM] est l'algorithme de condensé.

Le tableau suivant répertorie les algorithmes possibles pour les clés à courbe elliptique ayant l'objectif ASYMMETRIC_SIGN. Utilisez les noms d'algorithme en minuscules avec la commande gcloud et les noms en majuscules avec l'API Cloud Key Management Service.

Algorithme (SDK) Algorithme (API) Description
ec-sign-ed25519 EC_SIGN_ED25519 EdDSA sur la courbe Curve25519 dans PureEdDSA , qui accepte des données brutes en entrée au lieu de données hachées
ec-sign-p256-sha256 **(recommandé)** EC_SIGN_P256_SHA256 ECDSA sur la courbe P-256 avec un condensé SHA-256
ec-sign-p384-sha384 EC_SIGN_P384_SHA384 ECDSA sur la courbe P-384 avec un condensé SHA-384
ec-sign-secp256k1-sha256 EC_SIGN_SECP256K1_SHA256 ECDSA sur la courbe Secp256k1 avec un condensé SHA-256

Algorithmes de signature RSA

Le format d'un algorithme de signature RSA est le suivant :

RSA_SIGN_[PADDING_ALGORITHM]_[MODULUS_BIT_LENGTH]_[DIGEST_ALGORITHM]

Où :

  • [PADDING_ALGORITHM] est l'algorithme de remplissage ;
  • [MODULUS_BIT_LENGTH] est la longueur en bits de la clé ;
  • [DIGEST_ALGORITHM] est l'algorithme de condensé.

Notez que certains algorithmes sont formatés comme suit :

RSA_SIGN_RAW_[PADDING_ALGORITHM]_[MODULUS_BIT_LENGTH]

et omettent l'algorithme de condensé. Ces algorithmes sont une variante de la signature PKCS #1 qui omet l'encodage dans un condensé DigestInfo. Dans la variante:

  • Un condensé est calculé sur le message qui sera signé.
  • Le remplissage PKCS #1 est appliqué directement au condensé.
  • Une signature du condensé complété est calculée à l'aide de la clé privée RSA.

Le tableau suivant répertorie les algorithmes possibles pour les clés RSA ayant l'objectif ASYMMETRIC_SIGN. Utilisez les noms d'algorithme en minuscules avec la commande gcloud et les noms en majuscules avec l'API Cloud Key Management Service.

Algorithme (SDK) Algorithme (API) Description
rsa-sign-pss-2048-sha256 RSA_SIGN_PSS_2048_SHA256 RSASSA-PSS avec une clé de 2 048 bits et un condensé SHA-256
rsa-sign-pss-3072-sha256 (recommandé) RSA_SIGN_PSS_3072_SHA256 RSASSA-PSS avec une clé de 3 072 bits et un condensé SHA-256
rsa-sign-pss-4096-sha256 RSA_SIGN_PSS_4096_SHA256 RSASSA-PSS avec une clé de 4 096 bits et un condensé SHA-256
rsa-sign-pss-4096-sha512 RSA_SIGN_PSS_4096_SHA512 RSASSA-PSS avec une clé de 4 096 bits et un condensé SHA-512
rsa-sign-pkcs1-2048-sha256 RSA_SIGN_PKCS1_2048_SHA256 RSASSA-PKCS1 v1_5 avec une clé de 2 048 bits et un condensé SHA-256
rsa-sign-pkcs1-3072-sha256 RSA_SIGN_PKCS1_3072_SHA256 RSASSA-PKCS1 v1_5 avec une clé de 3 072 bits et un condensé SHA-256
rsa-sign-pkcs1-4096-sha256 RSA_SIGN_PKCS1_4096_SHA256 RSASSA-PKCS1 v1_5 avec une clé de 4 096 bits et un condensé SHA-256
rsa-sign-pkcs1-4096-sha512 RSA_SIGN_PKCS1_4096_SHA512 RSASSA-PKCS1 v1_5 avec une clé de 4 096 bits et un condensé SHA-512
rsa-sign-raw-pkcs1-2048 RSA_SIGN_RAW_PKCS1_2048 RSASSA-PKCS1-v1_5 signature sans encodage, avec une clé de 2 048 bits
rsa-sign-raw-pkcs1-3072 RSA_SIGN_RAW_PKCS1_3072 RSASSA-PKCS1-v1_5 signature sans encodage, avec une clé de 3 072 bits
rsa-sign-raw-pkcs1-4096 RSA_SIGN_RAW_PKCS1_4096 RSASSA-PKCS1-v1_5 signature sans encodage, avec une clé de 4 096 bits

Pour le schéma de signature probabiliste (PSS, Probabilistic Signature Scheme), la longueur de salage utilisée est égale à la longueur de l'algorithme de condensé. Par exemple, RSA_SIGN_PSS_2048_SHA256 utilise PSS avec une longueur de salage de 256 bits. De plus, pour PSS, l'algorithme de condensé spécifié dans le nom de l'algorithme est également employé pour la fonction de génération de masque (MGF1). Par exemple, si vous utilisez RSA_SIGN_PSS_2048_SHA256, vous devez soumettre un hachage SHA-256 des données à signer, et Cloud KMS emploie SHA-256 en interne comme algorithme de hachage pour MGF1 lors du calcul de la signature.

Algorithmes de chiffrement asymétrique

L'objectif de clé ASYMMETRIC_DECRYPT permet le chiffrement RSA. Le format d'un algorithme ASYMMETRIC_DECRYPT est le suivant :

RSA_DECRYPT_[PADDING_ALGORITHM]_[MODULUS_BIT_LENGTH]_[DIGEST_ALGORITHM]

Où :

  • [PADDING_ALGORITHM] est l'algorithme de remplissage ;
  • [MODULUS_BIT_LENGTH] est la longueur en bits de la clé ;
  • [DIGEST_ALGORITHM] est l'algorithme de condensé.

Le tableau suivant répertorie les algorithmes possibles pour les clés RSA ayant l'objectif ASYMMETRIC_DECRYPT. Utilisez les noms d'algorithme en minuscules avec la commande gcloud et les noms en majuscules avec l'API Cloud Key Management Service.

Algorithme (SDK) Algorithme (API) Description
rsa-decrypt-oaep-2048-sha1 RSA_DECRYPT_OAEP_2048_SHA1 RSAES-OAEP avec une clé de 2 048 bits et un condensé SHA-1.
rsa-decrypt-oaep-2048-sha256 RSA_DECRYPT_OAEP_2048_SHA256 RSAES-OAEP avec une clé de 2 048 bits et un condensé SHA-256
rsa-decrypt-oaep-3072-sha1 RSA_DECRYPT_OAEP_3072_SHA1 RSAES-OAEP avec une clé de 3 072 bits et un condensé SHA-1.
rsa-decrypt-oaep-3072-sha256 (recommandé) RSA_DECRYPT_OAEP_3072_SHA256 RSAES-OAEP avec une clé de 3 072 bits et un condensé SHA-256
rsa-decrypt-oaep-4096-sha1 RSA_DECRYPT_OAEP_4096_SHA1 RSAES-OAEP avec une clé de 4 096 bits et un condensé SHA-1.
rsa-decrypt-oaep-4096-sha256 RSA_DECRYPT_OAEP_4096_SHA256 RSAES-OAEP avec une clé de 4 096 bits et un condensé SHA-256
rsa-decrypt-oaep-4096-sha512 RSA_DECRYPT_OAEP_4096_SHA512 RSAES-OAEP avec une clé de 4 096 bits et un condensé SHA-512

Tous ces algorithmes utilisent le remplissage OAEP (Optimal Asymmetric Encryption Padding) avec la fonction de génération de masque MGF1. MGF1 nécessite un algorithme de condensé. Dans Cloud KMS, la fonction de condensé à utiliser avec MGF1 est spécifiée dans le nom de l'algorithme de la clé. Par exemple, avec l'algorithme RSA_DECRYPT_OAEP_3072_SHA256, vous devez utiliser SHA-256 avec MGF1 lors du chiffrement des données.

Algorithmes de signature MAC

L'objectif de clé MAC permet la signature MAC symétrique. Les clés avec un objectif de clé MAC ne sont actuellement compatibles qu'avec la signature HMAC.

Algorithmes de signature HMAC

Le format d'un algorithme de signature HMAC est le suivant :

HMAC_[HASH_ALGORITHM]

Où :

  • [HASH_ALGORITHM] est l'algorithme de hachage.

Le tableau suivant répertorie les algorithmes HMAC actuellement disponibles pour les clés avec un objectif MAC. Utilisez les noms d'algorithme en minuscules avec la commande gcloud et les noms en majuscules avec l'API Cloud Key Management Service.

Algorithme (SDK) Algorithme (API) Description
hmac-sha1 HMAC_SHA1 HMAC avec un condensé SHA-1
hmac-sha224 HMAC_SHA224 HMAC avec un condensé SHA-224
hmac-sha256 (recommandé) HMAC_SHA256 HMAC avec un condensé SHA-256
hmac-sha384 HMAC_SHA384 HMAC avec condensé SHA-384
hmac-sha512 HMAC_SHA512 HMAC avec un condensé SHA-512

Recommandations relatives aux algorithmes

Pour la signature numérique, il est recommandé d'utiliser des algorithmes de signature à courbe elliptique. EC_SIGN_P256_SHA256 est l'algorithme à courbe elliptique recommandé. Si vous envisagez d'utiliser des algorithmes de signature RSA, RSA_SIGN_PSS_3072_SHA256 est recommandé.

Pour le chiffrement asymétrique, RSA_DECRYPT_OAEP_3072_SHA256 est l'algorithme recommandé.

Pour la signature MAC, HMAC_SHA256 est l'algorithme recommandé.

Pour obtenir la liste des valeurs d'algorithme compatibles avec la gcloud CLI, voir --default-algorithm.

Niveaux de protection

Le niveau de protection indique comment sont effectuées les opérations de chiffrement. Une fois que vous avez créé une clé, vous ne pouvez pas modifier le niveau de protection.

Niveau de protection Description
SOFTWARE Les opérations de chiffrement sont effectuées dans le logiciel.
HSM Les opérations de chiffrement sont effectuées dans un module HSM.
EXTERNAL Les opérations de chiffrement sont effectuées à l'aide d'une clé stockée dans un gestionnaire de clés externe connecté à Google Cloud via Internet. Limité au chiffrement symétrique et à la signature asymétrique.
EXTERNAL_VPC Les opérations de chiffrement sont effectuées à l'aide d'une clé stockée dans un gestionnaire de clés externe connecté à Google Cloud via un cloud privé virtuel (VPC). Limité au chiffrement symétrique et à la signature asymétrique.

Tous les objectifs de clé sont compatibles avec les clés dotées du niveau de protection SOFTWARE ou HSM.