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, cryptoKeys.rawDecrypt
Signature asymétrique asymmetric-signing ASYMMETRIC_SIGN cryptoKeyVersions.asymmetricSign, cryptoKeyVersions.getPublicKey
Chiffrement asymétrique asymmetric-encryption ASYMMETRIC_DECRYPT cryptoKeyVersions.asymmetricDecrypt, cryptoKeyVersions.getPublicKey
Mécanismes d'encapsulation de clé key-encapsulation KEY_ENCAPSULATION cryptoKeyVersions.decapsulate, 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 pour objectif ENCRYPT_DECRYPT utilisent 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.

Les algorithmes de chiffrement symétrique tels qu'AES-256 sont généralement considérés comme sûrs face à l'informatique quantique. Vous pouvez continuer à utiliser le chiffrement symétrique.

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.ASYMMETRIC_SIGN

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 en modifiant l'algorithme.

Les algorithmes de signature asymétrique qui utilisent des courbes elliptiques et RSA sont vulnérables aux attaques des futurs ordinateurs quantiques. Pour la non-répudiation à long terme de vos signatures, choisissez plutôt un algorithme de signature asymétrique post-quantique.

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 Curve25519 en mode PureEdDSA, qui prend 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