J'utilise Amazon Simple Notification Service (Amazon SNS) pour envoyer des notifications à un point de terminaison HTTPS ou HTTP. Je souhaite vérifier que les messages Amazon SNS envoyés aux points de terminaison sont authentiques afin d'empêcher les attaques par usurpation d'identité.
Résolution
Il est recommandé d'utiliser la validation de signature basée sur des certificats lorsque vous vérifiez l'authenticité d'une notification Amazon SNS. Pour plus d'informations, consultez la section Vérification des signatures des messages Amazon SNS.
Pour empêcher les attaques par usurpation d'identité lorsque vous vérifiez les signatures des messages Amazon SNS, effectuez les actions suivantes :
- Utilisez toujours le protocole HTTPS pour obtenir le certificat auprès d'Amazon SNS.
- Validez l'authenticité du certificat.
- Vérifiez qu'Amazon SNS a envoyé le certificat.
- Utilisez l'un des kits SDK AWS pris en charge pour Amazon SNS afin de valider et de vérifier les messages lorsque cela est possible.
Exemple de corps de message
Voici un exemple de chaîne de données utiles de message envoyée depuis Amazon SNS :
{"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"}
}
}
Pour plus d'informations, consultez la section Analyse des formats de message Amazon SNS.
Informations connexes
Notifications Amazon SNS de diffusion en éventail aux points de terminaison HTTPS
Quelle est la plage d’adresses IP d’Amazon SNS ?