Verwendung von Verify mit einem AWS-SDK oder CLI - AWS-SDK-Codebeispiele

Weitere AWS-SDK-Beispiele sind im GitHub-Repository Beispiele für AWS Doc SDKs verfügbar.

Verwendung von Verify mit einem AWS-SDK oder CLI

Die folgenden Code-Beispiele zeigen, wie Verify verwendet wird.

CLI
AWS CLI

So überprüfen Sie eine digitale Signatur

Mit dem folgenden Befehl für verify wird eine kryptografische Signatur für eine kurze, Base64-kodierte Nachricht überprüft. Die Schlüssel-ID, die Nachricht, der Nachrichtentyp und der Signaturalgorithmus müssen mit denen identisch sein, die zum Signieren der Nachricht verwendet wurden.

In AWS CLI v2 muss der Wert des Parameters message Base64-codiert sein. Oder Sie können die Nachricht in einer Datei speichern und das Präfix fileb:// verwenden, das die AWS CLI anweist, Binärdaten aus der Datei zu lesen.

Die von Ihnen angegebene Signatur kann nicht base64-codiert sein. Hilfe zum Entschlüsseln der Signatur, die der Befehl sign zurückgibt, finden Sie in den Beispielen für den Befehl sign.

Die Ausgabe des Befehls enthält ein boolesches SignatureValid-Feld, das angibt, dass die Signatur verifiziert wurde. Wenn die Signaturüberprüfung fehlschlägt, schlägt auch der verify Befehl fehl.

Bevor Sie diesen Befehl ausführen, ersetzen Sie die Beispielschlüssel-ID durch eine gültige Schlüssel-ID aus Ihrem AWS-Konto.

aws kms verify \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --message fileb://EncodedMessage \ --message-type RAW \ --signing-algorithm RSASSA_PKCS1_V1_5_SHA_256 \ --signature fileb://ExampleSignature

Ausgabe:

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "SignatureValid": true, "SigningAlgorithm": "RSASSA_PKCS1_V1_5_SHA_256" }

Weitere Informationen zum Verwenden von asymmetrischen KMS-Schlüsseln in AWS KMS finden Sie unter Verwenden asymmetrischer Schlüssel in Entwicklerhandbuch für AWS Key Management Service.

  • Weitere API-Informationen finden Sie unter Verify in der AWS CLI-Befehlsreferenz.

Python
SDK für Python (Boto3)
Anmerkung

Auf GitHub finden Sie noch mehr. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS-Code-Beispiel- einrichten und ausführen.

class KeyEncrypt: def __init__(self, kms_client): self.kms_client = kms_client @classmethod def from_client(cls) -> "KeyEncrypt": """ Creates a KeyEncrypt instance with a default KMS client. :return: An instance of KeyEncrypt initialized with the default KMS client. """ kms_client = boto3.client("kms") return cls(kms_client) def verify(self, key_id: str, message: str, signature: str) -> bool: """ Verifies a signature against a message. :param key_id: The ARN or ID of the key used to sign the message. :param message: The message to verify. :param signature: The signature to verify. :return: True when the signature matches the message, otherwise False. """ try: response = self.kms_client.verify( KeyId=key_id, Message=message.encode(), Signature=signature, SigningAlgorithm="RSASSA_PSS_SHA_256", ) valid = response["SignatureValid"] print(f"The signature is {'valid' if valid else 'invalid'}.") return valid except ClientError as err: if err.response["Error"]["Code"] == "SignatureDoesNotMatchException": print("The signature is not valid.") else: logger.error( "Couldn't verify your signature. Here's why: %s", err.response["Error"]["Message"], ) raise
  • Weitere API-Informationen finden Sie unter Verify in der API-Referenz zum AWS SDK für Python (Boto3).