DKIM을 사용한 발송 메일 서명하기 |
DKIM(Domain Keys Identified Mail)은 디지털 서명을 메일 헤더에 포함시켜 발신자 및 메일 내용 등이 위변조가 되지 않았는지 수신자 측에서 검증할 수 있는 기술입니다. 예를 들면 gmail.com에서 발송된 메일이 DKIM 검증을 통과했다면 실제 gmail.com에서 왔다고 볼 수 있습니다. DKIM 검증을 통과하지 못했다면 gmail.com을 가장한 스팸 또는 피싱 메일일 가능성이 매우 높습니다.
메일캐리어는 사용자가 외부로 발송하는 메일에 대해 DKIM 서명을 추가해 안전한 메일 전달을 할 수 있는 환경을 제공합니다.
Note |
---|
DKIM 설정은 DNS 서버 설정을 포함하고 있으며 이 문서는 윈도우 서버에 포함되어 있는 DNS 서버를 사용한다는 가정 아래에 작성되었습니다. 다른 DNS 서버를 사용하는 경우 해당 DNS 서버 관리자에게 문의해 유사한 방식으로 설정할 수 있습니다. 이 기능은 메일캐리어 7.4.0 버전부터 지원됩니다. |
메일캐리어 관리 도구를 사용해 DKIM 관련 설정을 해야 메일이 서명되어 발송됩니다.
DKIM 설정은 웹매니저에서는 진행할 수 없으므로 윈도우 서버에 있는 메일캐리어 MMC 관리 도구를 사용하도록 합니다.
메일캐리어 관리 도구를 실행합니다.
DKIM은 DNS 도메인에 의존하는 기술이므로 메일캐리어 관리 도구에서 적용할 도메인으로 이동합니다.
도메인 속성창을 연 후 DKIM 탭으로 이동합니다.
[외부로 발송되는 메일에 대해 DKIM으로 서명합니다] 체크 박스를 활성화 합니다.
도메인에 메일 도메인 명칭을 입력합니다.
Selector에 임의의 이름을 입력합니다. 예제에서는 날짜를 입력하였습니다.
[키 생성] 버튼을 클릭하면 1024비트의 공개키와 개인키가 생성됩니다.
아래 그림은 위 과정을 마쳤을 때 나타난 모양입니다.
[DNS 게시] 버튼을 클릭하면 아래 그림과 같은 대화상자가 출력됩니다.
대화상자 내용에 보면 20171026._domainkey.tabslab.com에 공개 키를 게시하라고 되어 있습니다.
DNS 서버에 DNS 도메인 _domainkey.tabslab.com을 만들고 20171026이라는 TXT 레코드를 생성해서 클립보드에 저장되어 있는 공개 키를 지정합니다.
다음은 이 과정에 대한 상세한 설명입니다.
DKIM 공개 키는 메일을 수신한 서버가 DKIM 서명이 올바른지 검증하기 위해 필요한 키로 DNS 조회를 통해 확인합니다.
공개 키를 DNS에 게시하는 위치는 아래 그림과 같이 _domainkey로 정해져 있습니다.
정방향 조회 영역 아래에서 도메인 이름(예:tabslab.com)을 선택한 후 동작 메뉴에서 [새 도메인...]을 선택합니다.
새 DNS 도메인 대화상자에서 도메인 이름에 _domainkey를 입력한 뒤 확인 버튼을 누릅니다.
_domainkey가 생성되었으면 해당 항목으로 이동합니다.
동작 메뉴에서 [다른 새 레코드...]를 선택합니다.
[리소스 레코드 종류] 대화상자에서 [TXT(텍스트)]를 선택한 후 [레코드 만들기...] 버튼을 클릭합니다.
[레코드 이름]에 위에서 Selector에 지정한 이름을 입력합니다. 이 예제에서는 20171026 입니다.
[텍스트] 란에 클립보드에 복사된 공개 키를 지정한 후 [확인] 버튼을 클릭해 완료합니다.
위 단계를 마쳤으면 DKIM 공개 키가 DNS 서버에 게시되었으므로 메일을 서명해서 보낼 수 있고 상대방은 검증할 수 있습니다.
이제 메일을 발송하면 아래와 같이 DKIM-Signature 헤더가 만들어져 전송됩니다. 이 헤더는 개인 키와 원본 메시지를 사용해 만든 암호화된 값을 가지고 있으며, 이 메일을 수신한 상대방 서버는 이 헤더와 메시지 그리고 DNS에 있는 공개 키를 가지고 검증합니다.
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tabslab.com; s=20171026; h=Content-Type:MIME-Version:Message-ID:Reply-To:To:Subject:From:Date; bh=+EH/6NE/u1bOUcXFHhB4FfDXYFOlcRPTyYWiA8ZwMaI=; b=mNqLRTLNyzMHHM6YOIfV6dEXIX7BtWowibyL7PjVeNq0NiKAMzKXHLluEfUYY1Z7LCmW uPAn1dzIkkn4c955vjxqWkv1dErwNA7NHtMnzajGESXrjNRTTYuYXTohgYzSjY2xNLV6 3sEn5jWU1q+XjaQv2BhhO8doR3IIwfgdVnQ=; Date: Wed, 27 Dec 2017 09:40:32 +0900 From: "=?utf-8?B?6rmA6rK97ZiE?=" <khkim@tabslab.com> Subject: =?utf-8?B?Rlc6IO2bhOybkOyekOuLmCDrjZXrtoTsl5Ag7ZaJ67O17ZWc?= =?utf-8?B?IDHrhYQg7J207JeI7Ja07JqU4pmh?=
gmail.com으로 메일을 보내 올바르게 수신되고 메일 보기에서 아래와 같은 경고 메시지가 나오지 않는다면 올바르게 설정된 것입니다.
또는 help@tabslab.com으로 테스트 메일을 보내 DKIM 서명이 올바르게 되었는지 검증을 요청할 수 있습니다.