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
.