¿Cómo se verifica la autenticidad de los mensajes de Amazon SNS que se envían a los puntos de conexión HTTP y HTTPS?

Actualización más reciente: 21/10/2022

Envío notificaciones a un punto de conexión HTTPS o HTTP mediante Amazon Simple Notification Service (Amazon SNS). Deseo evitar los ataques de suplantación de identidad, así que ¿cómo puedo verificar la autenticidad de los mensajes de Amazon SNS que recibe mi punto de enlace?

Resolución

Es una práctica recomendada utilizar la validación de la firma basada en certificados cuando se verifica la autenticidad de una notificación de Amazon SNS. Para obtener instrucciones, consulte Verificar las firmas de los mensajes de Amazon SNS en la Guía para desarrolladores de Amazon SNS.

Para ayudar a prevenir los ataques de suplantación, asegúrese de realizar las siguientes acciones al verificar las firmas de los mensajes de Amazon SNS:

  • Utilice siempre HTTPS para obtener el certificado de Amazon SNS.
  • Valide la autenticidad del certificado.
  • Verifique que el certificado se envió desde Amazon SNS.
  • Cuando sea posible, utilice uno de los SDK de AWS compatibles con Amazon SNS para validar y verificar los mensajes.

Ejemplo de cuerpo de mensaje

El siguiente es un ejemplo de cadena de carga de mensaje enviada desde 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"}
}
}

Para obtener más información sobre los formatos de mensajes que utiliza Amazon SNS, consulte Análisis de formatos de mensajes.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?