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

Une autorité de certification (CA) dans Certificate Authority Service (CA Service) 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 explique comment la configurer. Vous pouvez choisir une clé Google-owned and managed key 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é.

Utilisez un Google-owned and managed key

Lorsque vous utilisez un 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 les anciens systèmes. Cloud KMS propose des 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 le plus récent et le plus sécurisé. Il est recommandé pour la plupart des nouvelles implémentations. RSA_SIGN_PKCS1 est fourni pour assurer la compatibilité avec les systèmes plus anciens qui ne sont pas encore compatibles avec PSS.

ECDSA

Les clés à courbe elliptique offrent un niveau de sécurité semblable à celui des clés RSA, mais avec une taille plus petite. Cloud KMS est compatible avec EC_SIGN_P256 et EC_SIGN_P384. ECDSA est souvent privilégié pour les performances et l'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 éviter tout problème potentiel, nous vous recommandons d'utiliser des chaînes distinctes pour RSA et ECDSA.

Examiner les tailles de clés acceptées

Même si les clés de plus grande taille au sein d'une même famille offrent une sécurité renforcée, elles entraînent également le stockage et la transmission d'une plus grande quantité 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 clés plus grandes, bien que la différence puisse être imperceptible.

Pour les clés plus durables, telles que celles associées aux CA racines ou subordonnées à longue durée de vie, vous pouvez utiliser des tailles de clé offrant une sécurité plus élevée 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 avec des durées de vie plus courtes.

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 s'enchaîne à 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 travailler avec des systèmes anciens 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 d'anciennes bibliothèques ou d'anciens frameworks 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 CA racine ou une CA subordonnée dont la durée de vie est censée être de l'ordre de plusieurs années, nous vous recommandons d'utiliser la plus grande taille de clé disponible pour cette famille d'algorithmes.

    • Pour RSA, la taille de clé maximale acceptée est de 4 096 bits.
    • Pour ECDSA, la taille de clé maximale acceptée 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és 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 CA pour qu'il utilise une clé de signature asymétrique nouvelle ou existante gérée dans votre propre projet Cloud KMS. Cette option permet de contrôler directement 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 CA, 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 plusieurs clés Cloud KMS pour le chiffrement des données au repos. La principale différence entre ces deux types de clés réside dans leur CryptoKeyPurpose configuré dans Cloud KMS :

  • Clés de signature de l'autorité de certification : une clé avec CryptoKeyPurpose de ASYMMETRIC_SIGN est requise. Ces clés effectuent des opérations de signature numérique pour émettre des certificats.
  • Clés de chiffrement des données au repos : elles nécessitent une clé avec 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 à la fois 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é.

CA Service 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 ayant la finalité ENCRYPT_DECRYPT. Pour en savoir plus, consultez Créer un pool d'autorités de certification.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • La clé doit se trouver dans votre projet Cloud KMS. Consultez 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é 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 clés cryptographiques 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 de la CryptoKeyVersion Cloud KMS spécifique. Copiez cette chaîne pour l'utiliser lors de la création de l'autorité de certification.

Le format requis pour l'ID de ressource 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 Obtenir un ID de ressource Cloud KMS. Utilisez cet ID lorsque vous créerez une autorité de certification.

Étapes suivantes