🎭
1. 이메일 발신자 위조(스푸핑) 문제
이메일을 주고받는 기본 프로토콜인 SMTP는 원래 발신자 주소를 검증하는 절차가 없습니다. 그래서 누구나 보낸사람 칸에 은행이나 회사 주소를 그대로 적어 보낼 수 있었고, 이것이 피싱 메일의 오래된 기반이 되었습니다.
📋
2. SPF: 발신 서버 화이트리스트
SPF(Sender Policy Framework)는 도메인 소유자가 DNS TXT 레코드에 "이 도메인 이름으로 메일을 보낼 수 있는 서버 목록"을 등록해두는 방식입니다. 수신 서버는 실제로 메일을 보낸 서버의 IP가 이 목록에 있는지 확인해 위조 여부를 가늠합니다.
✍️
3. DKIM: 전자서명으로 변조 확인
DKIM(DomainKeys Identified Mail)은 메일을 보낼 때 본문과 주요 헤더 일부를 발신 도메인의 개인키로 서명해 메일 헤더에 붙입니다. 수신 서버는 DNS에 공개된 공개키로 이 서명을 검증해, 발송 이후 내용이 바뀌지 않았는지 확인합니다.
📐
4. DMARC: 결과를 종합해 정책 지정
DMARC(Domain-based Message Authentication, Reporting & Conformance)는 SPF와 DKIM 검사 결과에 더해, 실제 보낸사람 주소와 인증에 쓰인 도메인이 일치하는지(정렬)까지 확인합니다. 인증에 실패한 메일을 그대로 둘지(none), 스팸함으로 보낼지(quarantine), 아예 거부할지(reject) 도메인 소유자가 직접 정책으로 지정할 수 있고, 실패 현황을 요약한 리포트도 받아볼 수 있습니다.
🧱
5. 세 기술의 관계
SPF와 DKIM은 각각 독립적으로 동작하는 개별 인증 수단이고, DMARC은 이 두 결과를 종합해 "인증에 실패하면 어떻게 처리할지"를 지시하는 상위 정책 계층입니다. 셋을 함께 갖춰야 스푸핑 방어 효과가 제대로 발휘됩니다.
🔎
6. 받은 메일에서 확인하는 방법
이메일 원본 헤더를 열어보면 "Authentication-Results"라는 필드에 spf=pass, dkim=pass, dmarc=pass처럼 각 검사 결과가 표시됩니다. 이 값이 fail이나 none으로 나온다면 발신자가 실제로 보낸 것이 맞는지 다시 한 번 의심해볼 필요가 있습니다.