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 überprüfen, die vom Key Management System (KMS) verwaltet werden.

Diese Seite richtet sich an Zielgruppen in 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 überprüfen 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-Administrator der Organisation, Ihnen die folgende Rolle im Namespace Ihres Projekts zuzuweisen:

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

Umgebung vorbereiten

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

  2. Authentifizieren Sie sich mit der gdcloud CLI bei GDC. Für diesen Vorgang ist das Zertifikat der Zertifizierungsstelle (Certification 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 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. Melden Sie sich mit dem heruntergeladenen CA-Zertifikat an:

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

Prüfen, ob ein Signaturschlüssel vorhanden ist

Zum Signieren und Überprüfen 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 mit einem Signaturschlüssel eine digitale Signatur einer Eingabedatei 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 Ausführung des Befehls wird eine Ausgabedatei erstellt, 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 wurde, 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 Ausführung des Befehls wird bei Erfolg die Ausgabe Verification OK angezeigt. Andernfalls wird die Fehlerausgabe Verification Failure angezeigt.