DKIM 레코드란?
DKIM은 발신 이메일에 암호화 서명을 추가하며, 수신 서버는 selector._domainkey.귀하의-도메인의 DNS에 게시된 공개 키로 이를 검증합니다. DNS에는 셀렉터를 나열하는 방법이 없으므로, IPeek는 Google, Microsoft, Amazon SES 등 주요 제공업체가 사용하는 셀렉터를 탐색합니다.
DKIM 서명과 검증의 작동 원리
메일을 보낼 때 제공업체는 개인 키로 선택된 헤더와 본문에 서명하고 메시지에 DKIM-Signature 헤더를 추가합니다. 수신 서버는 이 헤더에서 d=(도메인)와 s=(셀렉터) 태그를 읽어 selector._domainkey.d에서 일치하는 공개 키를 가져와 서명을 검증합니다. 검증되면 콘텐츠가 전송 중 변조되지 않았고 해당 도메인의 키 보유자가 실제로 보낸 것임이 확인됩니다. 개인 키는 발신 서버에만 남아 있고, 공개 키만 DNS에 존재합니다.
셀렉터와 DNS의 공개 키
셀렉터는 한 도메인이 여러 DKIM 키를 게시할 수 있게 해 주며, 키 교체나 서로 다른 발송 서비스에 유용합니다. 공개 키는 selector._domainkey.귀하의-도메인의 TXT 레코드로, 예를 들어 google._domainkey.example.com에 v=DKIM1; k=rsa; p=<base64 공개 키> 형태로 들어 있습니다. DNS에는 셀렉터 목록이 없으므로 도메인이 어떤 셀렉터를 쓰는지 단순히 물어볼 수 없습니다. 그래서 IPeek는 Google(google), Microsoft, Amazon SES 등 주요 제공업체가 사용하는 흔한 셀렉터를 탐색해 게시된 키를 찾아냅니다.
DKIM과 SPF, DMARC의 관계
DKIM은 세 가지 중 콘텐츠 인증 계층입니다. SPF가 IP로 발신 호스트를 인증하는 반면, DKIM은 메시지의 헤더와 본문이 변조되지 않았음을 암호학적으로 증명하고 이를 서명 도메인에 묶습니다. 이후 DMARC가 DKIM 서명 도메인이 사용자에게 보이는 From 주소와 정렬되는지 확인합니다. DKIM에는 SPF에 비해 핵심적인 장점이 있습니다. 서명이 메시지와 함께 이동하므로 SPF가 자주 깨지는 이메일 전달(forwarding) 상황에서도 살아남습니다. 강력한 전달성을 위해 DKIM을 게시하고 DMARC 아래에 정렬하세요.