내용으로 건너뛰기

HTTP 및 HTTPS 엔드포인트로 전송된 SNS 메시지가 진짜인지 확인하려면 어떻게 해야 합니까?

1분 분량
0

저는 Amazon Simple Notification Service(Amazon SNS)를 사용하여 HTTPS 또는 HTTP 엔드포인트로 알림을 보냅니다. 스푸핑 공격을 방지하기 위해 엔드포인트로 전송된 Amazon SNS 메시지가 진짜인지 확인하고 싶습니다.

해결 방법

Amazon SNS 알림의 진위 여부를 확인할 때는 인증서 기반 서명 검증을 사용하는 것이 가장 좋습니다. 자세한 내용은 Amazon SNS 메시지의 서명 확인을 참조하십시오.

Amazon SNS 메시지 서명을 확인할 때 스푸핑 공격을 방지하려면 다음 작업을 완료하십시오.

  • Amazon SNS에서 인증서를 가져올 때는 항상 HTTPS를 사용합니다.
  • 인증서의 진위 여부를 확인합니다.
  • Amazon SNS에서 인증서를 전송했는지 확인합니다.
  • 지원되는 Amazon SNS용 AWS SDK 중 하나를 사용하여 가능한 경우 메시지를 검증하고 확인합니다.

메시지 본문 예시

다음은 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"}
}
}

자세한 내용은 Amazon SNS 메시지 형식 구문 분석을 참조하십시오.

관련 정보

Amazon SNS 알림을 HTTPS 엔드포인트로 팬아웃

Amazon SNS IP 주소 범위는 어떻게 되나요?

AWS 공식업데이트됨 7달 전
댓글 없음