Come posso verificare l'autenticità dei messaggi Amazon SNS inviati ad endpoint HTTP e HTTPS?

2 minuti di lettura
0

Invio notifiche a un endpoint HTTPS o HTTP utilizzando il Servizio di notifica semplice Amazon (Amazon SNS). Come posso verificare l'autenticità dei messaggi Amazon SNS ricevuti dal mio endpoint per prevenire gli attacchi di spoofing?

Risoluzione

Una best practice consiste nell'utilizzare la convalida della firma basata su certificato per verificare l'autenticità di una notifica Amazon SNS. Per istruzioni, consulta Verifica delle firme dei messaggi Amazon SNS nella Guida per sviluppatori di Amazon SNS.

Per evitare attacchi di spoofing, assicurati di effettuare le seguenti operazioni durante la verifica delle firme dei messaggi di Amazon SNS:

  • Usa sempre HTTPS per ottenere il certificato da Amazon SNS.
  • Conferma l'autenticità del certificato.
  • Verifica che il certificato sia stato inviato da Amazon SNS.
  • (Quando possibile) Utilizza uno degli SDK AWS supportati per Amazon SNS per convalidare e verificare i messaggi.

Esempio di corpo del messaggio

Di seguito è riportato un esempio di stringa di payload del messaggio inviata da 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"}
}
}

Per ulteriori informazioni sui formati dei messaggi utilizzati da Amazon SNS, consulta la pagina Analisi dei formati di messaggi.


Informazioni correlate

Fanout agli endpoint HTTP/S

Utilizzo di AWS Lambda con Amazon SNS

Qual è l'intervallo di indirizzi IP di Amazon SNS?

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa