gbmin's Tech Notes

서버 구축 및 유지보수, 클라우드 컴퓨팅, 네트워크 보안, IT 분야 기술 노트. :)

Tech Notes/Mail Server

DKIM (Domain Key Identified Mail)

gbmin 2023. 4. 22. 20:34

- 목차

1. 도메인키 인증메일(DKIM)

2. DKIM 작동방식

3. DKIM-Signature Tag

4. DKIM의 장단점

5. 결론

 

 

1. 도메인키 인증 메일(DKIM)

DKIM은 SPF(Sender Policy Framework)와 유사하게 메일 발신자가 발송 정보를 위장할 수 없도록 하는 기술 표준이다.

SPF는 메일의 발신자가 정상적으로 등록된 서버인지 확인해 주는 반면, DKIM은 메일이 실제 도메인으로부터 발송되었는지 확인하여 이메일 위변조 여부를 판별한다.
DKIM은 메일을 보내는 메일 서버에서 메일이 발송된 시점부터 메일 내용이 변경되지 않았음을 보증하는 방식으로 작동한다.

스팸 필터링 기술을 적용하고 있는 업체들은 메일 처리 프로세스에 DKIM 인증을 사용하여 스팸, 피싱, 이메일 스푸핑 등을 방지하고 있다.

 

2. DKIM의 작동 방식

DKIM은 메일 서버가 메일을 발송할 때, 해당 메일의 해시값을 생성하고, 이를 서명하여 메일의 헤더에 포함시킨다.

이 서명값은 수신자 측에서 해당 도메인의 공개키를 이용하여 검증이 가능하다.

따라서, 메일이 도착한 수신자 측에서는 DKIM 서명값을 검증하여 해당 메일이 해당 도메인으로부터 발송된 것인지 여부를 판단하게 된다.

 

 

 

3. DKIM-Signature Tag

DKIM-Signature 태그는 DKIM에서 사용되는 헤더 필드로, 메일 서버가 메일을 보낼 때

메일에 대한 DKIM 서명을 생성하여 해당 헤더 필드에 포함시킨다.

이를 통해 메일의 발신자 도메인이 DKIM으로 인증되었는지를 검증할 수 있다.

DKIM-Signature 필드는 다음과 같은 구성 요소로 이루어져 있다.

필드 설명
v DKIM 버전을 나타낸다. 현재는 "DKIM1"로 고정되어 있다.
a 서명 알고리즘을 나타낸다. 대부분의 경우 "rsa-sha256"이나 "rsa-sha1"을 사용한다.
d 서명 대상이 되는 도메인을 나타낸다.
s 서명에 사용된 도메인의 선택적 서브도메인을 나타낸다.
c 서명된 내용의 유형을 지정한다. 일반적으로 "simple"을 사용한다.
q 서명 데이터를 생성하기 위해 사용된 쿼리 메소드를 지정한다. 일반적으로 "dns/txt"를 사용한다.
l 서명된 내용의 길이를 지정한다.
t 서명을 생성한 시간을 나타낸다.
h 서명에 포함된 필드의 목록을 나타낸다.
bh 서명이 생성된 본문의 해시값을 나타낸다.
b 서명값을 나타낸다.

 

- DKIM-Signature 필드의 예시

DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=mail; c=simple; q=dns/txt; l=500; t=1620376456; h=From:To:Subject:MIME-Version:Content-Type; bh=/wttEzO1pYzeKlGTPZplf5S5p5a5/+cLi5V24Gn4Py4=; b=KpxiFzPSZ/YFHtC3qV7X/dtLQ2V7akDlKdSkR7zexYfBJXMp7zUD/yOuN/bV2H+QQc/3gX9jYFZ7LG0Jbs16R+7zIvo0TFfwG5/RyEH5xrtxSfXExmJZAg1VZmzOGOfk4Qm21Hb6a+U6DvU6rQ2CV9zy/hAReAFO6kbGLMunJ8=

DKIM-Signature 필드에서는 버전(v), 서명 알고리즘(a), 도메인(d), 서브도메인(s), 내용 유형(c), 쿼리 메소드(q), 내용 길이(l), 서명 생성 시간(t), 서명 필드(h), 본문 해시값(bh), 서명값(b)이 모두 포함되어 있다.

각각의 필드는 세미콜론(;)으로 구분되며, 필드 이름과 필드 값은 등호(=)로 구분된다.

DKIM-Signature 필드는 메일 헤더의 일부로 포함되어 있으며, 메일을 수신하는 측에서는 이 필드를 검증하여 해당 메일이 DKIM으로 인증되었는지 여부를 판단할 수 있다.
따라서 DKIM-Signature 필드는 메일의 안전한 전달을 보장하는 데 있어서 매우 중요한 역할을 수행한다.

DKIM-Signature 필드를 사용하면 메일의 발신자 도메인이 인증되어 있지 않은 메일을 걸러내고,

인증된 메일만 수신함으로써 스팸 및 악성코드와 같은 메일을 방지할 수 있다.

 

 

4. DKIM의 장단점

DKIM은 메일 발송자의 도메인을 인증함으로써 스팸 필터링 및 이메일 위변조 방지에 큰 도움을 준다.

또한, SPF와 마찬가지로 무료로 사용 가능하며, 대부분의 메일 서비스 업체에서 지원하고 있다.

하지만, DKIM 인증이 적용되지 않은 메일도 여전히 많기 때문에, 100% 신뢰성을 보장하지는 않는다.

 

 

5. 결론

DKIM은 메일 서비스 업체에서 많이 사용되고 있는 보안 메일 기술 중 하나이다.

이메일 위변조 및 스팸 필터링 등에 큰 도움을 주지만, 완전한 보안을 보장하지는 않는다는 점을 유의해야 한다.

따라서, DKIM 인증 뿐만 아니라 SPF 및 DMARC 등의 다른 메일 보안 기술들과 함께 사용하여

최대한 안전한 메일 송수신을 보장하는 것이 좋다.

참고사이트 :
https://dkim.org/specs/rfc4871-dkimbase.html
https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail
 

DomainKeys Identified Mail (DKIM) Signatures

[RFC4033]Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, DNS Security Introduction and Requirements, RFC 4033, March 2005.

dkim.org