Wie überprüfe ich die Authentizität von Amazon-SNS-Nachrichten, die an HTTP- und HTTPS-Endpunkte gesendet werden?

Lesedauer: 2 Minute
0

Ich sende Benachrichtigungen über den Amazon Simple Notification Service (Amazon SNS) an einen HTTPS- oder HTTP-Endpunkt. Ich möchte Spoofing-Angriffe verhindern. Wie überprüfe ich also die Authentizität der Amazon-SNS-Nachrichten, die mein Endpunkt erhält?

Auflösung

Es ist eine bewährte Methode, bei der Überprüfung der Authentizität einer Amazon-SNS-Benachrichtigung eine zertifikatbasierte Signaturvalidierung zu verwenden. Anweisungen finden Sie unter Verifizierung der Signaturen von Amazon-SNS-Nachrichten im Amazon-SNS-Entwicklerhandbuch.

Um Spoofing-Angriffe zu verhindern, sollten Sie bei der Überprüfung von Amazon-SNS-Nachrichtensignaturen Folgendes tun:

  • Verwenden Sie immer HTTPS, um das Zertifikat von Amazon SNS zu erhalten.
  • Validieren Sie die Authentizität des Zertifikats.
  • Stellen Sie sicher, dass das Zertifikat von Amazon SNS gesendet wurde.
  • (Wenn möglich) Verwenden Sie eines der unterstützten AWS-SDKs für Amazon SNS, um Nachrichten zu validieren und zu überprüfen.

Beispielnachrichtentext

Im Folgenden finden Sie eine Beispiel-Nachrichtennutzlastzeichenfolge, die von Amazon SNS gesendet wurde:

{
"Type" : "Notification",
"MessageId" : "e1f2a232-e8ce-5f0a-b5d3-fbebXXXXXXXX",
"TopicArn" : "arn:aws:sns:us-east-1:XXXXXXXX:SNSHTTPSTEST",
"Subject" : "Test",
"Message" : "TestHTTPS",
"Timestamp" : "2021-10-07T18:55:19.793Z",
"SignatureVersion" : "1",
"Signature" : "VetoDxbYMh0Ii/87swLEGZt6FB0ZzGRjlW5BiVmKK1OLiV8B8NaVlADa6ThbWd1s89A4WX1WQwJMayucR8oYzEcWEH6//VxXCMQxWD80rG/NrxLeoyas4IHXhneiqBglLXh/R9nDZcMAmjPETOW61N8AnLh7nQ27O8Z+HCwY1wjxiShwElH5/+2cZvwCoD+oka3Gweu2tQyZAA9ergdJmXA9ukVnfieEEinhb8wuaemihvKLwGOTVoW/9IRMnixrDsOYOzFt+PXYuKQ6KGXpzV8U/fuJDsWiFa/lPHWw9pqfeA8lqUJwrgdbBS9vjOJIL+u2c49kzlei8zCelK3n7w==",
"SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-7ff5318490ec183fbaddaa2aXXXXXXXX.pem",
"UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:XXXXXXXX:SNSHTTPSTEST:b5ab2db8-7775-4852-bd1a-2520XXXXXXXX",
"MessageAttributes" : {
"surname" : {"Type":"String","Value":"SNSHTTPSTest"}
}
}

Weitere Informationen zu Nachrichtenformaten, die Amazon SNS verwendet, finden Sie unter Analysieren von Nachrichtenformaten.


Ähnliche Informationen

Fanout auf HTTP/S-Endpunkte

Nutzung von AWS Lambda mit Amazon SNS

Was ist der Amazon-SNS-IP-Adressbereich?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr