Auf dieser Seite erfahren Sie, wie Sie digitale Signaturen erstellen und validieren. basierend auf MAC-Schlüsseln.
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 die empfangenen mit dem generierten Tag, 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
.Achten Sie darauf, dass die Datei, die Sie signieren möchten, die Dateigröße nicht überschreitet. Limit.Wenn Sie ein Cloud HSM-Schlüssel, die maximale Dateigröße, für die Sie eine Datei erstellen können eine MAC-Signatur 16 KiB ist. Bei allen anderen Schlüsseln ist die maximale Dateigröße beträgt 64 KiB.
Erforderliche Rollen
Um die Berechtigungen zu erhalten, die Sie zum Erstellen und Überprüfen von Signaturen benötigen, bitten Sie Ihren Administrator, Ihnen folgenden IAM-Rollen für den Schlüssel:
-
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 Schlüsselversionsnummer.KEY_NAME
: Der Name des Schlüssels.KEY_RING
: der Name des Schlüsselbunds, der den Schlüssel enthält.LOCATION
: der Cloud KMS-Standort 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 Datei speichern möchten. erzeugte Signatur.
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
Um Cloud KMS in der Befehlszeile zu verwenden, Installieren Sie die Google Cloud CLI oder führen Sie ein Upgrade auf die neueste Version durch.
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 Schlüsselversionsnummer.KEY_NAME
: Der Name des Schlüssels.KEY_RING
: der Name des Schlüsselbunds, der den Schlüssel enthält.LOCATION
: 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.