Configurer une clé de signature d'autorité de certification

Une autorité de certification (CA) dans Certificate Authority Service (service d'autorité de certification) nécessite une clé cryptographique pour signer les certificats qu'elle émet. Cette clé de signature établit la confiance pour votre infrastructure à clé publique (PKI).

Ce document décrit les stratégies de gestion des clés que vous pouvez choisir pour votre clé de signature d'autorité de certification, et comment la configurer. Vous pouvez choisir une clé gérée par Google pour une gestion simplifiée avec une configuration minimale, ou une clé gérée par le client pour un contrôle plus direct sur le cycle de vie et les propriétés de la clé. Google-owned and managed key

Utiliser une clé gérée par Google Google-owned and managed key

Lorsque vous utilisez une clé gérée par Google Google-owned and managed key, vous choisissez l'algorithme cryptographique et la taille de la clé. Le service d'autorité de certification crée et gère le cycle de vie d'une clé Cloud Key Management Service dédiée dans un projet géré par Google.

Examiner les algorithmes de clé de signature compatibles

Cloud KMS accepte deux familles d'algorithmes pour les opérations de signature asymétrique adaptées aux autorités de certification : RSA et ECDSA.

RSA

Les schémas de signature basés sur RSA offrent une large compatibilité. Utilisez RSA si vous devez prendre en charge des systèmes existants. Cloud KMS propose les variantes RSA_SIGN_PSS et RSA_SIGN_PKCS1. Pour en savoir plus, consultez la norme RFC 8017.

RSA-PSS est le schéma de signature plus récent et plus sécurisé, et il est recommandé pour la plupart des nouvelles implémentations. RSA_SIGN_PKCS1 est fourni pour assurer la compatibilité avec les systèmes antérieurs qui ne sont pas encore compatibles avec PSS.

ECDSA

Les clés à courbe elliptique offrent une sécurité similaire à RSA avec des tailles de clé plus petites. Cloud KMS est compatible avec EC_SIGN_P256 et EC_SIGN_P384. ECDSA est souvent privilégié pour ses performances et son efficacité sur les systèmes modernes.

Chaînes mixtes

L'utilisation de différentes familles d'algorithmes dans la même chaîne de certificats peut entraîner des problèmes pour certains systèmes. Pour atténuer les problèmes potentiels, nous vous recommandons d'avoir des chaînes distinctes pour RSA et ECDSA.

Examiner les tailles de clé compatibles

Même si les tailles de clé plus importantes au sein de la même famille offrent une plus grande sécurité, ces clés entraînent également le stockage et la transmission de plus de données sur le réseau. De plus, les opérations de chiffrement et de signature peuvent parfois prendre plus de temps avec des tailles de clé plus importantes, bien que la différence puisse être imperceptible.

Pour les clés plus durables, telles que celles associées à des autorités de certification racines ou subordonnées à longue durée de vie, vous pouvez utiliser des tailles de clé offrant une plus grande sécurité que les autres clés. Par exemple, vous pouvez utiliser une clé RSA de 4 096 bits pour une autorité de certification racine et des clés RSA de 2 048 bits pour les autorités de certification subordonnées dont la durée de vie est plus courte.

Choisir un algorithme de signature pour votre clé d'autorité de certification

Tenez compte des étapes suivantes lorsque vous choisissez un algorithme de signature pour votre clé d'autorité de certification :

  1. Choisissez une famille d'algorithmes.

    Si vous créez une autorité de certification subordonnée qui est liée à une autorité de certification racine existante, utilisez la même famille que la racine.

    Si vous créez une autorité de certification racine, mais que vous devez utiliser des systèmes existants qui ne sont pas compatibles avec ECDSA, utilisez l'un des algorithmes de signature RSA.

    Sinon, si aucune de ces conditions ne s'applique à vous, nous vous recommandons d'utiliser l'un des algorithmes de signature à courbe elliptique.

  2. RSA uniquement : choisissez un algorithme de signature.

    Si vous prévoyez d'utiliser des bibliothèques ou des frameworks existants qui ne sont pas compatibles avec PSS, utilisez l'un des algorithmes RSA_SIGN_PKCS1.

    Sinon, utilisez l'un des algorithmes RSA_SIGN_PSS.

  3. Choisissez une taille de clé.

    Pour une nouvelle autorité de certification racine ou une autorité de certification subordonnée dont la durée de vie devrait être de plusieurs années, nous vous recommandons d'utiliser la plus grande taille de clé disponible pour cette famille d'algorithmes.

    • Pour RSA, la plus grande taille de clé compatible est de 4 096 bits.
    • Pour ECDSA, la plus grande taille de clé compatible est de 384 bits.

    Pour les autorités de certification subordonnées dont la durée de vie est plus courte, vous pouvez utiliser des tailles de clé plus petites, telles que 2 048 bits pour RSA ou 256 bits pour ECDSA.

Utiliser une clé gérée par le client

Vous pouvez configurer votre autorité de certification pour qu'elle utilise une clé de signature asymétrique nouvelle ou existante gérée dans votre propre projet Cloud KMS. Cette option offre un contrôle direct sur le cycle de vie, les autorisations et les propriétés de la clé. Cloud KMS définit l'algorithme et la taille de la clé. Lorsque vous configurez et créez votre autorité de certification, vous sélectionnez la version de clé existante, plutôt que les paramètres de l'algorithme.

Différencier les clés de signature d'une clé de chiffrement

L'utilisation d'une clé Cloud Key Management Service comme clé de signature d'autorité de certification est différente de l'utilisation d'une ou de plusieurs clés Cloud KMS pour le chiffrement des données au repos. La principale distinction entre ces deux types de clés est leur CryptoKeyPurpose configuré dans Cloud KMS :

  • Clés de signature d'autorité de certification : nécessitent une clé avec le CryptoKeyPurpose de ASYMMETRIC_SIGN. Ces clés effectuent des opérations de signature numérique pour émettre des certificats.
  • Clés de chiffrement des données au repos : nécessitent une clé avec le CryptoKeyPurpose de ENCRYPT_DECRYPT. Ces clés chiffrent et déchiffrent les données. Les clés de chiffrement des données au repos sont également appelées clés de chiffrement gérées par le client (CMEK).

Vous ne pouvez pas utiliser une seule clé Cloud KMS pour la signature et le chiffrement des données au repos. Ces objectifs sont mutuellement exclusifs et vous les définissez lors de la création de la clé.

Le service d'autorité de certification est également compatible avec le chiffrement des données au repos pour les ressources telles que les pools d'autorités de certification, que vous configurez séparément à l'aide de clés avec l'objectif ENCRYPT_DECRYPT. Pour en savoir plus, consultez la section Créer un pool d'autorités de certification.

Avant de commencer

Assurez-vous que les exigences suivantes sont remplies :

  • La clé doit se trouver dans votre projet Cloud KMS. Consultez la section Créer des clés.
  • L'objectif de la clé doit être ASYMMETRIC_SIGN.

  • L'algorithme de la clé doit être un algorithme de signature asymétrique compatible.

  • La clé doit se trouver au même emplacement que votre pool d'autorités de certification. Par exemple, si votre pool d'autorités de certification se trouve dans us-central1, la clé Cloud KMS doit également se trouver dans us-central1. Pour en savoir plus sur les emplacements Cloud KMS, consultez la page Emplacements Cloud KMS.

  • La version de clé que vous prévoyez d'utiliser doit être activée.

Rôles requis

Pour vous assurer que le compte de service dispose des autorisations nécessaires pour utiliser la clé gérée par le client pour les opérations de signature, demandez à votre administrateur d'accorder au compte de service le rôle IAM Signataire/Validateur de CryptoKeys Cloud Key Management Service (roles/cloudkms.signerVerifier) sur la clé Cloud Key Management Service.

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Votre administrateur peut également attribuer au compte de service les autorisations requises à l'aide de rôles personnalisés ou d'autres rôles prédéfinis.

Obtenir l'ID de ressource de la version de clé

Lorsque vous créez l'autorité de certification, vous devez fournir l'ID de ressource complet du CryptoKeyVersion Cloud KMS spécifique. Copiez cette chaîne pour l'utiliser lors du processus de création de l'autorité de certification.

Le format d'ID de ressource requis est le suivant :

projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KMS_KEY/cryptoKeyVersions/VERSION

Remplacez les éléments suivants :

  • KMS_PROJECT_ID : ID du projet contenant votre clé KMS.
  • LOCATION : emplacement de la clé KMS. Il doit s'agir du même emplacement que votre pool d'autorités de certification.
  • KEY_RING : nom du trousseau de clés KMS.
  • KMS_KEY : nom de la clé KMS.
  • VERSION : version de la clé KMS.

Pour en savoir plus, consultez la page Obtenir un ID de ressource Cloud KMS. Utilisez cet ID lorsque vous créez une autorité de certification.

Étape suivante