Auf dieser Seite wird beschrieben, wie Sie digitale Signaturen mit MAC-Schlüsseln erstellen und prüfen.
Ein einzelner Schlüssel, der sowohl vom Ersteller als auch vom Verifizierer gemeinsam ist, wird zur Berechnung eines MAC-Tags aus den Eingabedaten verwendet. Das MAC-Tag dient als digitale Signatur. Wenn der Verifizierer die Nachricht und das zugehörige MAC-Tag empfängt, generiert er ein eigenes Tag aus dem Inhalt der Nachricht. Der Prüfer kann dann das empfangene Tag mit dem von ihm generierten Tag vergleichen, um festzustellen, ob sie übereinstimmen. Wenn die beiden Tags übereinstimmen, weiß der Prüfer, dass die empfangene Nachricht mit der vom Ersteller signierten Nachricht identisch ist.
Hinweise
Wenn Sie digitale MAC-Signaturen erstellen, müssen Sie einen Schlüssel mit dem Schlüsselzweck
MAC
verwenden. Verwenden Sie beim Erstellen des SchlüsselsMAC
.Die Datei, die Sie signieren möchten, darf das Dateigrößenlimit nicht überschreiten.Wenn Sie einen Cloud HSM-Schlüssel verwenden, beträgt die maximale Dateigröße, für die Sie eine MAC-Signatur erstellen können, 16 KiB. Bei allen anderen Schlüsseln beträgt die maximale Dateigröße 64 KiB.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für den Schlüssel zuzuweisen, um die Berechtigungen zum Erstellen und Verifizieren von Signaturen zu erhalten:
-
So erstellen Sie Signaturen:
Cloud KMS CryptoKey-Signer (
roles/cloudkms.signer
) -
So überprüfen Sie Signaturen:
Cloud KMS CryptoKey-Verifizierer (
roles/cloudkms.verifier
) -
So erstellen und überprüfen Sie Signaturen:
Cloud KMS CryptoKey-Signer/Prüffunktion (
roles/cloudkms.signerVerifier
)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
MAC-Signatur erstellen
gcloud
Wenn Sie Cloud KMS in der Befehlszeile verwenden möchten, müssen Sie zuerst die neueste Version der Google Cloud CLI installieren oder ein Upgrade ausführen.
gcloud kms mac-sign \ --version KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --input-file INPUT_FILE_PATH \ --signature-file SIGNED_FILE_PATH
Ersetzen Sie Folgendes:
KEY_VERSION
: die Versionsnummer des Schlüssels.KEY_NAME
: Der Name des Schlüssels.KEY_RING
: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION
: der Cloud KMS-Speicherort des Schlüsselbunds.INPUT_FILE_PATH
: Der lokale Pfad zur Datei, die Sie signieren möchten.SIGNED_FILE_PATH
: Der lokale Pfad, unter dem Sie die generierte Signatur speichern möchten.
Wenn Sie Informationen zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help
aus.
C#
Um diesen Code auszuführen, müssen Sie zuerst eine C#-Entwicklungsumgebung einrichten und das Cloud KMS C# SDK installieren.
Go
Um diesen Code auszuführen, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Cloud KMS Go SDK installieren.
Java
Um diesen Code auszuführen, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Cloud KMS Java SDK installieren.
Node.js
Um diesen Code auszuführen, richten Sie zuerst eine Node.js-Entwicklungsumgebung ein und installieren Sie das Cloud KMS Node.js SDK.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Cloud KMS Python SDK installieren.
Ruby
Um diesen Code auszuführen, müssen Sie zuerst eine Ruby-Entwicklungsumgebung einrichten und das Cloud KMS Ruby SDK installieren.
API
In diesen Beispielen wird curl als HTTP-Client verwendet, um die Verwendung der API zu demonstrieren. Weitere Informationen zur Zugriffssteuerung finden Sie unter Auf die Cloud KMS API zugreifen.
Verwenden Sie zum Signieren die Methode CryptoKeyVersions.macSign
. Die Antwort dieser Methode enthält die Base64-codierte Signatur.
MAC-Signatur prüfen
gcloud
Wenn Sie Cloud KMS in der Befehlszeile verwenden möchten, müssen Sie zuerst die neueste Version der Google Cloud CLI installieren oder ein Upgrade ausführen.
gcloud kms mac-verify \ --version KEY_VERSION \ --key KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --input-file INPUT_FILE_PATH \ --signature-file SIGNED_FILE_PATH
KEY_VERSION
: die Versionsnummer des Schlüssels.KEY_NAME
: Der Name des Schlüssels.KEY_RING
: der Name des Schlüsselbunds, der den Schlüssel enthältLOCATION
: der Cloud KMS-Speicherort des Schlüsselbunds.INPUT_FILE_PATH
: Der lokale Pfad zur signierten Datei.SIGNED_FILE_PATH
: Der lokale Pfad zur zu prüfenden Signaturdatei.
Wenn Sie Informationen zu allen Flags und möglichen Werten erhalten möchten, führen Sie den Befehl mit dem Flag --help
aus.
C#
Um diesen Code auszuführen, müssen Sie zuerst eine C#-Entwicklungsumgebung einrichten und das Cloud KMS C# SDK installieren.
Go
Um diesen Code auszuführen, müssen Sie zuerst eine Go-Entwicklungsumgebung einrichten und das Cloud KMS Go SDK installieren.
Java
Um diesen Code auszuführen, müssen Sie zuerst eine Java-Entwicklungsumgebung einrichten und das Cloud KMS Java SDK installieren.
Node.js
Um diesen Code auszuführen, richten Sie zuerst eine Node.js-Entwicklungsumgebung ein und installieren Sie das Cloud KMS Node.js SDK.
Python
Um diesen Code auszuführen, müssen Sie zuerst eine Python-Entwicklungsumgebung einrichten und das Cloud KMS Python SDK installieren.
Ruby
Um diesen Code auszuführen, müssen Sie zuerst eine Ruby-Entwicklungsumgebung einrichten und das Cloud KMS Ruby SDK installieren.
API
In diesen Beispielen wird curl als HTTP-Client verwendet, um die Verwendung der API zu demonstrieren. Weitere Informationen zur Zugriffssteuerung finden Sie unter Auf die Cloud KMS API zugreifen.
Verwenden Sie zur Überprüfung die Methode CryptoKeyVersions.macVerify
. Die zu überprüfende Signatur muss base64-codiert sein. Die Antwort dieser Methode enthält einen booleschen Wert, der angibt, ob die Signatur erfolgreich überprüft wurde.