사용자 지정 도메인을 위한 안티 스푸핑(SPF, DKIM, DMARC)
- 읽기
- 1분
- 카테고리
- 도메인 설정
이메일의 개방적이고 분산된 특성에는 큰 장점도 있지만, 이러한 자유로 인해 이메일이 악용되기도 쉽습니다. 예를 들어, 인터넷에 연결된 모든 서버는 귀하가 보낸 것처럼 가장하여 귀하의 친구에게 이메일을 보낼 수 있으며, 이러한 공격을 이메일 스푸핑이라고 합니다.
Proton Mail에서 사용자 지정 도메인을 사용하는 모든 사용자가 이메일이 정상적으로 수신되도록 SPF, DKIM 및 DMARC를 설정할 것을 강력히 권장합니다.
이러한 공격으로부터 귀하의 사용자 지정 도메인을 보호하는 방법을 알아보려면 계속 읽어보시기 바랍니다.
SPF
SPF(Sender Policy Framework) 레코드는 기본적으로 귀하의 도메인을 대신해 이메일을 보낼 수 있도록 허용된 호스트 또는 IP를 외부에 알리는 역할을 합니다. 메일 서버가 귀하의 도메인에서 보낸 것이라고 주장하는 이메일을 수신하면, SPF 레코드를 조회하여 발송 서버가 해당 레코드에 포함되어 있는지 확인할 수 있습니다.
필수 사항은 아니지만, Proton Mail을 포함하는 SPF 레코드를 설정할 것을 강력히 권장합니다.
이를 통해 이메일의 신뢰성을 높여 스팸 폴더로 분류될 가능성을 줄일 수 있을 뿐만 아니라, 귀하인 것처럼 위장한 위조 헤더가 포함된 이메일을 발송하는 공격자로부터 귀하의 도메인을 보호하는 데도 도움이 됩니다.
브라우저에서 Proton Mail 계정에 로그인하고 설정 → 전체 설정 → 도메인 이름으로 이동한 후, SPF 레코드를 추가하려는 도메인 옆의 검토 버튼을 클릭합니다.

SPF 탭을 선택합니다. 여기에 도메인 등록인의 도메인 관리 포털에 추가할 권장 SPF 레코드가 표시됩니다. 항목 왼쪽의 작은 아이콘을 클릭하여 시스템 클립보드에 복사할 수 있습니다.

텍스트 문자열의 “include:_spf.protonmail.ch” 부분은 Proton Mail 서버가 귀하의 도메인을 대신해 이메일을 발송하는 것을 허용함을 의미합니다. 기존 SPF 레코드를 유지하려면 기존 레코드의 “v=spf1” 오른쪽 뒤에 “include:_spf.protonmail.ch” 텍스트 문자열을 추가하면 됩니다. “mx”에는 귀하의 도메인 MX 레코드도 포함됩니다.
“~all” 부분은 텍스트 문자열에 포함되지 않은 다른 서버에서 이메일이 발송되는 경우 SoftFail로 처리됨을 의미합니다. 즉, 수신 메일 서버가 이메일을 수락하되 SPF 실패(failed)로 표시합니다. 대안으로는 “-all”(HardFail) 매개변수를 사용하는 방법이 있습니다.
이 경우 이메일이 수신 거부되어 정상적인 이메일의 수신 문제가 발생할 수 있습니다. 예를 들어, 이메일 주소 A로 발송된 이메일이 주소 B로 자동 전달되는 이메일 전달 과정에서 SPF 검사가 실패하는 경우가 많습니다. 귀하의 도메인 SPF 레코드에 Proton Mail이 포함되어 있음이 감지되면 SPF 탭에 녹색 체크 표시 아이콘이 나타납니다.
DKIM
DKIM(DomainKeys Identified Mail)은 이메일이 신뢰할 수 있는 서버에서 발송되었는지, 그리고 도중에 조작되지 않았는지를 암호화 방식으로 확인하는 이메일 인증 방법입니다.
기본적으로, 서버가 귀하의 도메인을 사용하여 이메일을 발송할 때 비밀 키(신뢰할 수 있는 서버만 알고 있음)를 사용해 이메일 내용의 암호화된 해시를 계산하고, 이를 이메일 헤더에 DKIM 서명으로 추가합니다.
수신 서버는 귀하의 도메인 DNS 기록에서 해당하는 공개 키를 조회하고, 암호화된 해시를 복호화한 후, 수신한 이메일 내용을 바탕으로 새로운 해시를 계산하여 이메일 내용을 검증합니다. 그런 다음 복호화된 해시와 새 해시를 비교합니다. 일치하는 경우 이메일이 도중에 조작되지 않은 것이므로 DKIM 검사를 통과합니다. 그렇지 않으면 DKIM 검사가 실패하고 해당 이메일은 의심스러운 이메일로 처리됩니다.
우리는 보안 우수 사례로 인정받는 자동 DKIM 키 순환을 관리하기 위해 CNAME 레코드를 사용합니다. 세 개의 CNAME 레코드를 추가하고 유지해주셔야 합니다. 이를 통해 다른 키들이 정기적으로 자동 폐기되고 재생성되어 보안이 강화되는 동안, 항상 활성화된 키가 중단 없는 서비스를 제공하는 데 사용되도록 보장합니다.
복잡해 보일 수 있지만, Proton Mail에서 도메인에 DKIM을 설정하는 방법은 매우 간단합니다. Proton Mail과 함께 사용하기 위해 처음에 도메인의 DNS 기록을 변경한 후 사용자 지정 도메인이 인증되는 데 몇 시간 정도 소요됩니다. 사용자 지정 도메인이 인증되면, Proton Mail은 귀하의 도메인 DNS 포털에 등록해야 하는 호스트 이름과 값을 생성합니다. 그런 다음 자동 DKIM 키 순환에 필요한 CNAME 레코드를 생성합니다.
사용자 지정 도메인, 호스트 이름 및 값이 준비되면 이메일 알림을 보내드리겠습니다.
신규 사용자
브라우저에서 Proton Mail 계정에 로그인하고 설정 → 전체 설정 → 조직 → 도메인 이름 → 동작 열에서 DKIM 레코드를 추가하려는 도메인 옆의 검토 버튼을 클릭합니다.
DKIM 탭을 선택합니다. 여기에서 도메인의 DNS 설정에 추가해야 하는 세 개의 호스트 이름과 값을 확인할 수 있습니다.

이러한 레코드를 추가하고 나면 Proton Mail이 나머지를 자동으로 처리합니다. 최신 보안 우수 사례에 따라 당사는 6개월마다 새로운 2048비트 키를 생성하여 귀하의 이메일에 서명하는 데 사용합니다.
도메인의 DNS 설정에 추가하는 CNAME 레코드는 설정 마법사에 표시된 것과 정확히 일치해야 합니다. DNS에서 이러한 레코드가 감지되면 DKIM 탭에 녹색 체크 표시 아이콘이 나타납니다. 그런 다음 다른 Proton Mail 주소와 마찬가지로, 알림을 보내드린 후 귀하의 사용자 지정 도메인에서 발송되는 이메일에 DKIM 서명을 시작합니다.
중요: 일부 등록인은 끝에 마침표가 포함된 CNAME 값을 수락하지 않습니다(반면 다른 등록인은 마침표를 요구함). 등록인이 CNAME 레코드를 수락하지 않는 경우, 각 CNAME 값 끝에 있는 마침표를 삭제하고 다시 시도해 보십시오.
현재 수동 DKIM 키 순환을 사용 중인 사용자
현재 수동 DKIM 키 순환을 사용하고 계신 모든 사용자분들께 새로운 자동 키 순환 시스템으로 업그레이드할 것을 강력히 권장합니다. 이렇게 하면 키를 수동으로 순환할 필요가 없어질 뿐만 아니라, 키 보안 강도가 자동으로 업그레이드됩니다(기존에 1024비트 키를 사용하고 계셨던 경우).
이전에 TXT 레코드를 사용하여 도메인에 수동 DKIM 키 순환을 구성한 경우, CNAME 레코드를 입력하기 전에 DNS 설정에서 이 레코드를 삭제해야 합니다.
현재 사용 중인 TXT 레코드로는 자동 키 순환을 지원하지 않으므로, 자동 키 순환 설정을 지원하는 CNAME 레코드로 DNS 설정을 재구성해야 합니다.
이 TXT 레코드를 삭제한 후 신규 사용자 안내를 따르시면 됩니다. TXT 레코드를 삭제하면 이메일에 대한 DKIM 서명이 중지됩니다. DKIM 보호 상태를 유지하려면 CNAME 호스트 이름과 값을 DNS 설정에 즉시 입력해야 합니다.
DMARC
앞에서 SPF와 DKIM에 대해 알아보면서 수신 서버가 이러한 검사에 실패한 이메일을 어떻게 처리하는지 궁금하셨을 것입니다. 바로 이 시점에 DMARC(Domain-based Message Authentication, Reporting, and Conformance)가 필요합니다.
DMARC를 사용하면 도메인 소유자가 검사에 실패한 이메일을 어떻게 처리할지 지정하고 수신 시 피드백을 받을 수 있습니다. 기본적으로 SPF와 DKIM 검사가 모두 실패할 경우 수신 서버가 취할 수 있는 조치에는 세 가지가 있습니다: none, quarantine, 및 reject.
브라우저에서 Proton Mail 계정에 로그인하고 설정 → 설정으로 이동하기→ 조직 → 도메인 이름 → 동작 열에서 DMARC 레코드를 추가하려는 도메인 옆의 검토 버튼을 클릭합니다.

DMARC TXT 호스트 이름 및 값 문자열을 복사하여 등록인의 도메인 관리 콘솔에 있는 도메인에 추가합니다.

“p=” 값은 DMARC 검사에 실패한 이메일에 취할 조치를 지정합니다. 사용 가능한 조치는 다음과 같습니다:
- p=quarantine: 수신 플랫폼에 승인되지 않은 이메일을 스팸으로 표시하거나 격리하도록 요청합니다.
- p=reject: 수신 플랫폼에 승인되지 않은 이메일을 수신 거부하도록 요청합니다.
- p=none: 승인되지 않은 이메일을 격리하거나 수신 거부하지 않습니다. 일반적으로 이 정책은 문제 해결이나 테스트 목적으로만 사용됩니다.
기본 설정은 none입니다. 하지만 보안을 더욱 향상시키려면 이 값을 p=quarantine으로 설정할 것을 권장합니다.
정상적인 이메일이 DMARC를 통과하고 있다고 확신되면, 설정을 한층 더 엄격하게 p=reject로 변경해 보시기 바랍니다. 저희는 그렇게 하실 것을 귀하가 이메일 스푸핑의 표적이 될 가능성이 높다고 생각되신다면 권장합니다. 예를 들어 Yahoo, PayPal, eBay는 p=reject를 사용하여 스패머들이 자사를 사칭하는 것을 방지하고 있습니다.
또 다른 매개변수는 rua=로, 다른 이메일 서비스가 종합 리포트를 보낼 이메일 주소를 지정하여 얼마나 많은 이메일이 DMARC 검사에 실패하고 있는지 확인할 수 있도록 합니다.

그러나 더 엄격한 DMARC 조치를 선택하는 데는 위험이 따른다는 점을 유념해야 합니다. 예를 들어, 메일링 리스트로 이메일을 보내고 이 리스트가 개별 수신인에게 이메일을 전달하는 과정에서 SPF 검사가 실패하게 됩니다. 안타깝게도 일부 메일링 리스트는 이메일 내용까지 변경하여 DKIM 검사를 실패하게 만들고, 결과적으로 DMARC 실패를 유발하여 DMARC가 quarantine 또는 reject로 설정된 경우 수신 문제가 발생할 수 있습니다. 이것이 바로 DMARC가 기본적으로 none으로 설정되어 있는 이유입니다.
테스트 이메일
사용자 지정 도메인 설정이 완료되면, Mail Tester(새 창)를 사용해 이메일을 발송하여 테스트해 볼 수 있습니다.
귀하의 사용자 지정 도메인 주소를 사용하여 Mail Tester 웹페이지에 표시된 고유한 주소로 이메일을 보내기만 하면 됩니다. 그런 다음 스팸 위험 지수를 확인해 보십시오.

귀하께서 SPF와 DKIM을 모두 올바르게 설정하셨다면 10/10점을 받으실 수 있습니다!