Signer et vérifier les données

L'AO effectue des opérations de signature et de validation via Google Distributed Cloud (GDC) air-gapped vers le KMS via un client gRPC.

Avant de commencer

Pour obtenir les autorisations requises pour signer des données, demandez à l'administrateur IAM de votre organisation de vous accorder le rôle Développeur KMS (kms-developer) dans l'espace de noms de votre projet.

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 de la clé Signing et enregistre la signature encodée en base64.

  • Pour signer vos données, transmettez le nom de la clé et les éléments suivants :

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

    Remplacez les variables suivantes :

    • 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 dans lequel enregistrer la signature encodée en base64.

    Une fois la commande exécutée, vous verrez un fichier de sortie que vous avez spécifié dans l'indicateur --signature-file et 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 base64 à l'aide de la commande gdcloud kms keys asymmetric-verify. Cette commande permet de vérifier 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.

  • Pour valider la signature, transmettez le fichier de signature et les éléments suivants :

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

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