Daten signieren und überprüfen

Digitale Signaturen werden verwendet, um die Datenintegrität und Authentizität zu gewährleisten. In diesem Dokument wird erläutert, wie Sie mit der gdcloud CLI Daten signieren und Signaturen mit asymmetrischen Schlüsseln prüfen, die vom Key Management System (KMS) verwaltet werden.

Diese Seite richtet sich an Zielgruppen innerhalb der Gruppe der Anwendungsoperatoren, z. B. DevOps-Teams, die Schlüsselverwaltungsvorgänge in Google Distributed Cloud (GDC) mit Air Gap ausführen. Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.

Hinweis

Wenn Sie Daten mit Schlüsseln signieren und verifizieren möchten, fordern Sie die erforderlichen Berechtigungen an, bereiten Sie Ihre Umgebung vor und erstellen Sie einen Signaturschlüssel, falls Sie noch keinen haben.

IAM-Rollen anfordern

Bitten Sie Ihren IAM-Admin der Organisation, Ihnen die folgende Rolle in Ihrem Projekt-Namespace zuzuweisen:

  • KMS-Entwickler (kms-developer): Schlüssel ansehen und kryptografische Vorgänge wie das Verschlüsseln, Entschlüsseln, Signieren und Prüfen von Daten in einem Projekt ausführen.

Umgebung vorbereiten

  1. Installieren und initialisieren Sie die gdcloud CLI, falls noch nicht geschehen.

  2. Authentifizieren Sie sich mit der gdcloud CLI bei GDC. Für diesen Vorgang ist das Zertifikat der Zertifizierungsstelle (Certificate Authority, CA) für die Konsole Ihrer Organisation erforderlich:

    1. Laden Sie das CA-Zertifikat herunter:

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

      Ersetzen Sie Folgendes:

      • CONSOLE_URL: die Console-URL Ihrer Organisation (z. B. console.org-1.zone1.google.gdch.test)
      • CA_CERT_PATH: der vollständige Pfad, unter dem Sie die CA-Zertifikatsdatei speichern möchten (z. B. /tmp/my-org-ca.crt)
    2. Melden Sie sich mit dem heruntergeladenen CA-Zertifikat an:

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

Signaturschlüssel muss vorhanden sein

Zum Signieren und Prüfen von Daten müssen Sie einen Signaturschlüssel verwenden. Für die Erstellung und Überprüfung von Schlüsseln sind separate IAM-Berechtigungen erforderlich, wie auf den verlinkten Seiten beschrieben.

Daten signieren

Verwenden Sie den Befehl gdcloud kms keys asymmetric-sign, um Daten zu signieren. Mit diesem Befehl wird eine digitale Signatur einer Eingabedatei mit einem Signaturschlüssel erstellt und die base64-codierte Signatur gespeichert:

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

Ersetzen Sie Folgendes:

  • NAMESPACE: der Projekt-Namespace, z. B. kms-test1
  • KEY_NAME: der Name des Schlüssels, der zum Signieren verwendet wird, z. B. key-1
  • INPUT_PATH: der Pfad der Eingabedatei, die Sie signieren möchten
  • SIGNATURE_FILE: der Pfad der Ausgabedatei, in der die base64-codierte Signatur gespeichert werden soll

Nach der Ausführung des Befehls wird eine Ausgabedatei angezeigt, die Sie im Flag --signature-file angegeben haben und die die base64-codierte Signatur enthält.

Daten prüfen

Nachdem Sie Ihre Daten signiert haben, prüfen Sie die digitale Base64-Signatur mit dem Befehl gdcloud kms keys asymmetric-verify. Mit diesem Befehl wird geprüft, ob die Base64-codierte digitale Signatur, die Sie nach dem Ausführen des Befehls gdcloud kms keys asymmetric-sign erhalten, gültig ist:

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

Ersetzen Sie Folgendes:

  • NAMESPACE: der Projekt-Namespace, z. B. kms-test1
  • KEY_NAME: der Name des Schlüssels, der zum Signieren verwendet wird, z. B. key-1
  • INPUT_PATH: der Pfad der ursprünglichen Eingabedatei, die signiert wurde
  • SIGNATURE_FILE: der Pfad der Datei, die die zu prüfende base64-codierte Signatur enthält

Nach der Ausführung des Befehls wird bei Erfolg die Ausgabe Verification OK angezeigt. Wenn der Vorgang nicht erfolgreich ist, wird die Fehlerausgabe Verification Failure angezeigt.