Daten signieren und überprüfen

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

Diese Seite richtet sich an Nutzer in der Gruppe der Anwendungsoperatoren, z. B. DevOps-Teams, die Schlüsselverwaltungsoperationen 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 überprüfen möchten, müssen Sie die erforderlichen Berechtigungen anfordern, Ihre Umgebung vorbereiten und einen Signaturschlüssel erstellen, falls Sie noch keinen haben.

IAM-Rollen anfordern

Wenden Sie sich an Ihren IAM-Administrator der Organisation, um die folgende Rolle in Ihrem Projekt-Namespace zu erhalten:

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

Umgebung vorbereiten

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

  2. Authentifizieren Sie sich mit der gdcloud CLI bei GDC. Für diesen Vorgang ist das Zertifizierungsstellenzertifikat 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 Konsolen-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. Mit dem heruntergeladenen CA-Zertifikat anmelden:

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

Prüfen, ob ein Signierschlüssel vorhanden ist

Zum Signieren und Verifizieren von Daten müssen Sie einen Signaturschlüssel verwenden. Für das Erstellen und Überprüfen 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 Signierschlü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 signiert werden soll
  • 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 überprüfen

Nachdem Sie Ihre Daten signiert haben, überprüfen Sie die base64-digitale Signatur mit dem Befehl gdcloud kms keys asymmetric-verify. Mit diesem Befehl wird geprüft, ob die base64-codierte digitale Signatur, die Sie nach Ausführung 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 mit der base64-codierten Signatur, die überprüft werden soll.

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