누구나 내 이름으로 이메일을 보낼 수 있습니다. 이유는 이렇습니다
낯선 사람이 내 도메인에서 온 것처럼 보이는 이메일을 보낼 수 있는 이유와, 이를 막는 세 가지 레코드입니다.
이메일은 가짜에 대한 걱정이 생기기 훨씬 전에 설계되었습니다. 메시지가 도착하면 "보낸 사람" 줄은 발신자가 입력한 텍스트일 뿐입니다. 원래 설계에서는 그것을 확인하지 않습니다.
그래서 누군가 내 고객에게 내가 보낸 것처럼 보이는 청구서를 보낼 수 있습니다.
이를 고치는 세 가지 레코드
내 도메인은 DNS에 짧은 메모 세 개를 게시할 수 있습니다. DNS는 도메인의 공개 주소록입니다. 메일 서버는 메시지를 신뢰하기 전에 이 메모를 읽습니다.
- SPF는 내 도메인을 대신해 이메일을 보낼 수 있는 서비스를 나열합니다. 예를 들어 이메일 제공자나 뉴스레터 도구 같은 것입니다.
- DKIM은 모든 메시지에 서명을 추가해서, 메일 서버가 실제로 나에게서 왔고 중간에 바뀌지 않았다는 것을 알 수 있게 합니다.
- DMARC는 이 검사를 통과하지 못한 메시지를 메일 서버가 어떻게 처리할지 알려 줍니다. 예를 들어 스팸으로 보내거나 거부하며, 보고서를 어디로 보낼지도 정합니다.
세 가지를 모두 설정하고 DMARC를 격리(quarantine) 또는 거부(reject)로 맞추면, 내 도메인에서 온 가짜 메시지는 스팸으로 가거나 반송됩니다.
왜 문제가 생기나요
대부분의 도메인에는 SPF는 있지만 DMARC가 없거나, DMARC가 "none"으로 되어 있습니다. "none"은 지켜보기만 하고 절대 막지 않습니다. 또 다른 도메인은 SPF에 서비스를 너무 많이 나열해서 조회 한도를 넘기고, 그 결과 레코드가 작동을 멈춥니다.
이메일을 전혀 보내지 않는 도메인도 기본적으로 안전하지 않습니다. 메일 서버는 사서함이 있는지가 아니라 "보낸 사람" 줄의 도메인을 기준으로 판단합니다. 따라서 규칙이 없는 조용한 도메인은 쉽게 위조할 수 있으며, 그 반송 메시지를 나는 전혀 보지 못합니다. 이를 막으려면 레코드 세 개가 필요합니다. 거부로 설정한 DMARC 규칙, 아무 발신자도 허용하지 않는 SPF 레코드(v=spf1 -all), 그리고 빈 메일 서버 레코드(0 .)입니다.
스캔은 메일 서버와 똑같이 이 레코드를 읽으므로, 어떤 레코드가 없거나 약한지 정확히 알려 줄 수 있습니다.
도움이 되었나요?
