Signer et valider des données

Les signatures numériques sont utilisées pour garantir l'intégrité et l'authenticité des données. Ce document explique comment utiliser la CLI gdcloud pour signer des données et vérifier 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'application, telles que les équipes DevOps, qui 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 de l'organisation IAM pour qu'il vous accorde 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 cryptographiques telles que le chiffrement, le déchiffrement, la signature et la validation des données dans un projet.

Préparer votre environnement

  1. Installez et initialisez la CLI gdcloud, si ce n'est 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
      

Assurez-vous 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, puis 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 signer (par exemple, key-1)
  • INPUT_PATH : chemin d'accès du 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 verrez un fichier de sortie que vous avez spécifié dans l'option --signature-file, qui contient la signature encodée en base64.

Vérifier les données

Après avoir signé vos données, vérifiez la signature numérique en 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 l'exécution de 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 signer (par exemple, key-1)
  • INPUT_PATH : chemin d'accès du 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 si l'opération réussit. En cas d'échec, le résultat de l'échec Verification Failure s'affiche.