Signer et vérifier les données

Les signatures numériques permettent de garantir l'intégrité et l'authenticité des données. Ce document explique comment utiliser la CLI gdcloud pour signer des données et valider des signatures à l'aide de clés asymétriques gérées par le système de gestion des clés (KMS).

Cette page s'adresse aux audiences du groupe d'opérateurs d'applications, telles que les équipes DevOps, lorsqu'elles effectuent des opérations de gestion des clés dans Google Distributed Cloud (GDC) sous air gap. Pour en savoir plus, consultez la documentation sur les audiences pour GDC sous air gap.

Avant de commencer

Pour signer et valider des données à l'aide de clés, demandez les autorisations nécessaires, préparez votre environnement et créez une clé de signature si vous n'en avez pas déjà une.

Demander des rôles IAM

Contactez l'administrateur IAM de votre organisation pour qu'il vous attribue le rôle suivant dans l'espace de noms de votre projet :

  • Développeur KMS (kms-developer) : permet d'afficher les clés et d'effectuer des opérations de chiffrement, de déchiffrement, de signature et de validation des données dans un projet.

Préparer votre environnement

  1. Installez et initialisez la CLI gdcloud, si vous ne l'avez pas déjà fait.

  2. Authentifiez-vous auprès de GDC à l'aide de la CLI gdcloud. Ce processus nécessite le certificat de l'autorité de certification (CA) pour la console de votre organisation :

    1. Téléchargez le certificat CA :

      echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATH
      

      Remplacez les éléments suivants :

      • CONSOLE_URL: URL de la console de votre organisation (par exemple, console.org-1.zone1.google.gdch.test)
      • CA_CERT_PATH: chemin d'accès complet où vous souhaitez enregistrer le fichier de certificat CA (par exemple, /tmp/my-org-ca.crt)
    2. Connectez-vous à l'aide du certificat CA téléchargé :

      gdcloud auth login --login-config-cert=CA_CERT_PATH
      

Vérifier qu'une clé de signature existe

Pour signer et valider des données, vous devez utiliser une clé de signature. La création et la validation de clés nécessitent des autorisations IAM distinctes, comme indiqué sur les pages associées.

Signer des données

Pour signer des données, utilisez la commande gdcloud kms keys asymmetric-sign. Cette commande crée une signature numérique d'un fichier d'entrée à l'aide d'une clé de signature et enregistre la signature encodée en base64 :

  gdcloud kms keys asymmetric-sign \
  namespaces/NAMESPACE/signingKeys/KEY_NAME \
  --input-file=INPUT_PATH \
  --signature-file=SIGNATURE_FILE

Remplacez les éléments suivants :

  • NAMESPACE : espace de noms du projet (par exemple, kms-test1)
  • KEY_NAME : nom de la clé utilisée pour la signature (par exemple, key-1)
  • INPUT_PATH : chemin d'accès au fichier d'entrée que vous souhaitez signer
  • SIGNATURE_FILE : chemin d'accès au fichier de sortie pour enregistrer la signature encodée en base64

Après avoir exécuté la commande, vous voyez un fichier de sortie que vous avez spécifié dans l'indicateur --signature-file et qui contient la signature encodée en base64.

Valider des données

Après avoir signé vos données, validez la signature numérique base64 à l'aide de la commande gdcloud kms keys asymmetric-verify. Cette commande vérifie si la signature numérique encodée en base64 que vous recevez après avoir exécuté la commande gdcloud kms keys asymmetric-sign est valide ou non :

gdcloud kms keys asymmetric-verify \
namespaces/NAMESPACE/signingKeys/KEY_NAME \
  --input-file=INPUT_PATH \
  --signature-file=SIGNATURE_FILE

Remplacez les éléments suivants :

  • NAMESPACE : espace de noms du projet (par exemple, kms-test1)
  • KEY_NAME : nom de la clé utilisée pour la signature (par exemple, key-1)
  • INPUT_PATH : chemin d'accès au fichier d'entrée d'origine qui a été signé
  • SIGNATURE_FILE : chemin d'accès au fichier contenant la signature encodée en base64 à valider

Une fois la commande exécutée, le résultat Verification OK s'affiche en cas de réussite. En cas d'échec, le résultat Verification Failure s'affiche.