Saltar al contenido

¿Cómo puedo comprobar que los mensajes de SNS enviados a los puntos de enlace HTTP y HTTPS son auténticos?

2 minutos de lectura
0

Utilizo Amazon Simple Notification Service (Amazon SNS) para enviar notificaciones a un punto de enlace HTTPS o HTTP. Quiero comprobar que los mensajes de Amazon SNS enviados a los puntos de enlace son auténticos para evitar ataques de suplantación de identidad.

Resolución

Se recomienda utilizar la validación de firmas basada en certificados al verificar la autenticidad de una notificación de Amazon SNS. Para obtener más información, consulta Verificación de la firmas de mensajes de Amazon SNS.

Para ayudar a prevenir los ataques de suplantación de identidad al verificar las firmas de los mensajes de Amazon SNS, lleva a cabo las siguientes acciones:

  • Utiliza siempre HTTPS para obtener el certificado de Amazon SNS.
  • Valida la autenticidad del certificado.
  • Comprueba que Amazon SNS haya enviado el certificado.
  • Utiliza uno de los AWS SDK compatibles para Amazon SNS para validar y verificar los mensajes cuando sea posible.

Ejemplo de cuerpo de mensaje

A continuación se muestra un ejemplo de cadena de carga útil de mensajes 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, consulta Análisis de los formatos de mensajes de Amazon SNS.

Información relacionada

Distribución ramificada de notificaciones de Amazon SNS a puntos de enlace HTTPS

¿Cuál es el rango de direcciones IP de Amazon SNS?

OFICIAL DE AWSActualizada hace 7 meses