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 Verifizierer gemeinsam ist, wird zur Berechnung eines MAC-Tags (der Signatur) über die Eingabedaten verwendet. Wenn der Verifizierer die Nachricht und das zugehörige MAC-Tag empfängt, generiert er ein eigenes Tag für seinen Inhalt und vergleicht die Tags, um zu sehen, ob sie übereinstimmen.
Hinweis
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
.Erteilen Sie dem Nutzer oder Dienst, von dem der Signiervorgang durchgeführt wird, die Berechtigung
cloudkms.cryptoKeyVersions.useToSign
für den MAC-Schlüssel. Informationen zu Berechtigungen in Cloud Key Management Service finden Sie unter Berechtigungen und Rollen.Beim Prüfen einer Signatur sollten Sie dem Nutzer oder Dienst, von dem die Verifizierung durchgeführt wird, die Berechtigung
cloudkms.cryptoKeyVersions.useToVerify
für den MAC-Schlüssel erteilen.
MAC-Signatur erstellen
gcloud
Wenn Sie Cloud KMS über die Befehlszeile verwenden möchten, installieren Sie die neueste Version von Google Cloud CLI oder führen Sie ein Upgrade darauf durch.
gcloud kms mac-sign \ --version key-version \ --key key \ --keyring key-ring \ --location location \ --input-file input-file \ --signature-file signature-file
Ersetzen Sie key-version durch die Version des Schlüssels, der für die Signatur verwendet werden soll. Ersetzen Sie key durch den Schlüsselnamen. Ersetzen Sie key-ring durch den Namen des Schlüsselbunds, in dem sich der Schlüssel befindet. Ersetzen Sie location durch den Cloud KMS-Speicherort für den Schlüsselbund. Ersetzen Sie input-file und signature-file durch die lokalen Pfade für die Datei, die signiert werden soll, und durch die 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 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 über die Befehlszeile verwenden möchten, installieren Sie die neueste Version von Google Cloud CLI oder führen Sie ein Upgrade darauf durch.
gcloud kms mac-verify \ --version key-version \ --key key \ --keyring key-ring \ --location location \ --input-file input-file \ --signature-file signature-file
Ersetzen Sie key-version durch die Version des Schlüssels, der für die Überprüfung verwendet werden soll. Ersetzen Sie key durch den Schlüsselnamen. Ersetzen Sie key-ring durch den Namen des Schlüsselbunds, in dem sich der Schlüssel befindet. Ersetzen Sie location durch den Cloud KMS-Speicherort für den Schlüsselbund. Ersetzen Sie input-file und signature-file durch die lokalen Pfade für die Eingabedaten und die zu überprüfende 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.