Dieses Thema enthält Informationen zum Erstellen und Prüfen digitaler Signaturen mit MAC-Schlüsseln.
Ein einzelner Schlüssel, der sowohl vom Ersteller als auch vom Prüfer gemeinsam genutzt wird, wird zum Berechnen eines MAC-Tags aus den Eingabedaten verwendet. Das MAC-Tag dient als digitale Signatur. Wenn der Prüfer die Nachricht und das zugehörige MAC-Tag empfängt, generiert er ein eigenes Tag aus dem Nachrichteninhalt. Der Prüfer kann dann das empfangene Tag mit dem 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 übereinstimmt.
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 zu signierende Datei die maximal zulässige Dateigröße nicht überschreitet. Wenn Sie einen Cloud HSM-Schlüssel zum Erstellen oder Überprüfen von MAC-Signaturen verwenden, beträgt die maximale Dateigröße 16 KiB. Für alle anderen Schlüssel beträgt die maximale Dateigröße 64 KiB.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für den Schlüssel zu gewähren, damit Sie die Berechtigungen erhalten, die Sie zum Erstellen und Überprüfen von Signaturen benötigen:
-
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 verwalten.
Möglicherweise können Sie 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 auf die neueste Version durchfü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 des Schlüssels.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 zu der 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 auf die neueste Version durchfü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 Schlüsselversionsnummer des Schlüssels.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 Signaturdatei, die überprüft werden soll.
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.