기술 · 출처 기반 답변
이메일 인증이란? SPF, DKIM, DMARC 설명
이메일 인증은 이메일 메시지 발신자의 신원을 검증하는 데 사용하는 DNS 기반 프로토콜 모음입니다. 수신 메일 서버가 발신 서버가 From 헤더에 표시된 도메인을 대신해 메일을 보낼 권한이 있는지 확인할 수 있게 하여 도메인 스푸핑과 피싱을 방지합니다.
SPF(Sender Policy Framework)
SPF는 특정 도메인을 대신해 이메일을 보낼 수 있도록 허가된 모든 IP 주소와 도메인을 나열하는 DNS 레코드입니다. 서버는 메시지를 받으면 Return-Path 주소에 있는 도메인의 SPF 레코드를 확인합니다. 발신 서버 IP가 SPF 레코드에 없으면 레코드의 qualifier에 따라 메시지가 스팸으로 표시되거나 거부될 수 있습니다.
DKIM(DomainKeys Identified Mail)
DKIM은 이메일에 암호화 서명을 제공합니다. 발신자는 개인 키로 메시지 헤더와 본문에 서명하고, 수신자는 도메인 DNS 레코드에 게시된 공개 키로 서명을 검증합니다. 이를 통해 이메일 내용이 전송 중에 변조되지 않았음을 보장하고 도메인이 메시지의 소유자임을 확인합니다.
DMARC(도메인 기반 메시지 인증, 리포팅 및 준수)
DMARC는 인증에 실패한 메시지를 어떻게 처리할지 수신 서버에 지침을 제공해 SPF와 DKIM을 하나로 묶습니다. 눈에 보이는 From 주소와 SPF 또는 DKIM 도메인 사이의 정렬을 요구합니다. DMARC 정책은 none(모니터링), quarantine(스팸으로 분류), reject(완전 차단)로 설정할 수 있습니다.
구현과 검증
인증을 구현하려면 DNS 제공업체에 TXT 레코드를 추가해야 합니다. 개발자는 모든 서드파티 발송 서비스가 SPF 레코드에 포함되어 있고 DKIM 키가 주기적으로 교체되는지 확인해야 합니다. SendHQ 무료 도구(https://sendhq.cc/tools)로 DNS 레코드의 형식이 올바르고 활성 상태인지 확인할 수 있습니다.
팀에서 자주 묻는 질문
SPF가 DKIM을 대체하나요?
아니요. SPF는 발신 서버 IP를 검증하고, DKIM은 암호화로 메시지 내용과 출처를 검증합니다. 완전한 인증에는 둘 다 필요합니다.
DMARC를 설정하지 않으면 어떻게 되나요?
DMARC가 없어도 수신 서버가 SPF와 DKIM을 사용할 수는 있지만, 실패한 메시지를 거부할지 격리할지에 대한 명시적인 지침이 없습니다.
한 도메인에 SPF 레코드가 여러 개 있을 수 있나요?
아니요. 도메인에는 SPF 레코드가 하나만 있어야 합니다. 허가된 발신자가 여러 곳이면 include 메커니즘으로 하나의 TXT 레코드에 합쳐야 합니다.
1차 출처
- RFC 7208: 발신자 정책 프레임워크(SPF) — RFC Editor
- RFC 6376: DKIM(DomainKeys Identified Mail) 서명 — RFC Editor
- RFC 7489: 도메인 기반 메시지 인증, 보고 및 준수(DMARC) — RFC Editor