GN⁺: SPF, DKIM, DMARC 이해하기: 간단한 가이드
(github.com/nicanorflavier)이 가이드는 무엇을 위한 것인가?
- 이메일을 보내는 애플리케이션을 개발, 지원, 유지하는 사람들에게 필수적인 가이드임.
- 이메일이 스팸 폴더가 아닌 수신자의 받은 편지함에 도착하도록 보장함.
- 사이버 범죄자와 스팸 발송자로부터 도메인을 보호하는 방법을 설명함.
왜 이 가이드를 선택해야 하는가?
- 간단하고 명확한 설명과 예시로 SPF, DKIM, DMARC를 이해하기 쉽게 설명함.
- GitHub에 호스팅되어 개발 환경과 통합하여 빠르게 정보에 접근할 수 있음.
- 커뮤니티가 지속적으로 업데이트하고 유지할 수 있는 문서임.
이 가이드는 무엇을 위한 것이 아닌가?
- 이메일 서버 설정이나 암호화, 보안 이메일 게이트웨이와 같은 고급 주제를 다루지 않음.
SPF, DKIM, DMARC 간단히 설명하기
SPF (Sender Policy Framework)
- SPF: 이메일을 보낼 수 있는 친구 목록과 같음.
- SPF 레코드: 이 친구 목록을 DNS TXT 레코드에 저장함.
- 예시:
v=spf1 ip4:123.123.123.123 ~all
DKIM (DomainKeys Identified Mail)
- DKIM: 이메일 내부에 비밀 노트를 넣는 것과 같음.
- DKIM 레코드: 공개 키를 DNS TXT 레코드에 저장하여 수신자가 이메일의 진위를 확인할 수 있게 함.
- 예시:
v=DKIM1; k=rsa; p=NICfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBolTXCqbxwoRBffyg2efs+Dtlc+CjxKz9grZGBaISRvN7EOZNoGDTyjbDIG8CnEK479niIL4rPAVriT54MhUZfC5UU4OFXTvOW8FWzk6++a0JzYu+FAwYnOQE9R8npKNOl2iDK/kheneVcD4IKCK7IhuWf8w4lnR6QEW3hpTsawIDAQ0B
DMARC (Domain-based Message Authentication, Reporting & Conformance)
- DMARC: SPF와 DKIM의 규칙을 종합하여 큰 규칙 책을 만드는 것과 같음.
- DMARC 레코드: 이 규칙 책을 DNS TXT 레코드에 저장하여 수신자가 이메일을 처리하는 방법을 결정함.
- 예시:
v=DMARC1; p=none; rua=mailto:postmaster@example.com
SPF, DKIM, DMARC의 실제 사용 예시
- 모바일 앱: 피트니스 앱이나 은행 앱이 이메일을 보낼 때 SPF, DKIM, DMARC를 사용하여 이메일이 스팸 폴더가 아닌 받은 편지함에 도착하도록 보장함.
- 이메일 서비스 제공자: Gmail, Yahoo, Outlook 등은 SPF, DKIM, DMARC를 사용하여 수신 이메일을 인증함.
- 소셜 미디어 플랫폼: LinkedIn, Facebook, Twitter 등은 알림 이메일을 보낼 때 SPF, DKIM, DMARC를 사용함.
- 기업: 프로모션 이메일을 보낼 때 SPF, DKIM, DMARC를 사용하여 이메일이 스팸으로 표시되지 않도록 하고 도메인이 이메일 스푸핑에 사용되지 않도록 함.
- 정부 기관: 시민에게 알림을 보낼 때 SPF, DKIM, DMARC를 사용하여 피싱 공격을 방지함.
이제 무엇을 해야 할까?
- 이메일 주소와 도메인 식별: 앱에서 사용하는 이메일 주소와 도메인을 파악함.
- 현재 상태 확인: 이미 SPF, DKIM, DMARC 레코드가 있는지 확인하고 올바르게 설정되었는지 확인함.
- 도메인 접근 권한: DNS 레코드를 변경할 수 있는 권한이 있는지 확인함.
- DMARC 모니터링: DMARC 보고서를 모니터링하여 문제가 없는지 확인하고, 필요한 경우 수정함.
SPF, DKIM, DMARC 상태 확인
-
MXToolbox:
- https://mxtoolbox.com/ 방문
- 'SPF Record Lookup', 'DKIM Record Lookup', 'DMARC Record Lookup' 도구 사용
-
DMARCTester:
- https://www.dmarctester.com/ 방문
- 이메일 보내기 또는 이메일 헤더 붙여넣기 방법 사용
FAQ's with SPF, DKIM and DMARC
- DMARC 보고용 이메일 주소: 여러 사람이 확인할 수 있는 공유 메일박스를 사용하는 것이 좋음.
-
SPF 레코드의 ~all, -all, ?all, +all 차이:
- ~all (SoftFail): 목록에 없는 서버에서 온 이메일도 허용하지만 의심스러울 수 있음.
- -all (Fail): 목록에 없는 서버에서 온 이메일은 거부함.
- ?all (Neutral): 특별한 지침 없이 이메일을 처리함.
- +all (Pass): 모든 서버에서 온 이메일을 허용함.
- SPF 없이 DMARC 설정 가능 여부: 가능하지만 비효율적임. SPF와 DKIM을 함께 사용하는 것이 좋음.
- 이메일 헤더에서 여러 SPF 실패와 일부 SPF 통과가 보일 때: 자신의 도메인과 관련된 SPF 체크를 신뢰해야 함.
마무리
- SPF, DKIM, DMARC는 이메일 보안의 숨은 영웅임.
- 이 세 가지가 이메일의 신뢰성을 유지하는 데 중요한 역할을 함.
GN⁺의 의견
- 이메일 보안의 중요성: 이메일은 중요한 커뮤니케이션 수단으로, 보안이 매우 중요함.
- SPF, DKIM, DMARC의 필요성: 이 세 가지 기술은 이메일 스푸핑과 피싱 공격을 방지하는 데 필수적임.
- 도입 시 고려사항: 설정과 모니터링이 필요하며, 잘못된 설정은 이메일 전달에 문제를 일으킬 수 있음.
- 관련 도구: MXToolbox와 DMARCTester와 같은 도구를 사용하면 설정 상태를 쉽게 확인할 수 있음.
- 업계 표준: 이메일 보안을 강화하기 위해 SPF, DKIM, DMARC는 업계 표준으로 자리 잡고 있음.
Google Workspace나 SES 등을 사용하게 되면 MX 레코드 외에도 SPF, DKIM 등 설정하는게 하나씩 늘어나고 있는데, 막상 찾아볼 생각은 안하고 어디선가 뭔가 잘 되고 있겠지 정도만 생각했었는데 감사합니다! :D
Hacker News 의견
-
IT 관리자의 경험: 중소기업에서 IT를 관리하며, 잘못된 SPF 레코드로 인해 격리된 이메일을 자주 풀어달라는 요청을 받음. 화이트리스트 대신 SPF 레코드를 수정하도록 도움을 제공함. 이를 자동화하기 위해 Racket 언어로 스크립트를 작성함.
-
책 추천: Michael W. Lucas가 "Run Your Own Mail Server"라는 책을 준비 중이며, SPF/DKIM/DMARC 설정에 대한 자세한 내용을 다룸. BSDCan에서 그의 튜토리얼과 강연을 들었으며, 책을 추천함.
-
SPF/DKIM/DMARC 가이드 필요성: 이메일을 다른 도메인으로 보내는 앱 개발자를 위한 SPF/DKIM/DMARC 가이드가 필요함. 많은 티켓 시스템과 마케팅 플랫폼이 이 개념을 이해하지 못함.
-
자동화의 중요성: SPF/DKIM/DMARC 설정을 자동화하는 스타트업을 운영 중이며, 가이드의 품질을 높게 평가함. 하지만 사용자가 문제를 한 번만 겪기 때문에 장기적인 이해가 어려움. 자동화가 중요함.
-
디버깅 도구 추천: DMARC 문제를 디버깅하기 위한 좋은 도구 링크를 공유함.
-
테스트 도구 추천: mail-tester.com과 eu.dmarcian.com의 무료 버전을 테스트 도구로 추천함. 또한 DKIM을 이해하기 위한 블로그 링크를 공유함.
-
스팸 문제: 이메일 설정을 완벽하게 해도 Gmail에서 스팸으로 분류되는 경우가 있음. 수백 시간을 투자했지만 해결되지 않아 iCloud 같은 3자 호스팅 서비스를 사용하게 됨.
-
이메일 다양성 필요성: Apple, Google, Microsoft 같은 대기업의 이메일 서비스에 의존하지 말고, 가능한 한 자체 이메일 서버를 사용해야 함.
-
무료 DMARC 모니터링 서비스: Postmark라는 서비스에서 무료 DMARC 모니터링 서비스를 제공함.
-
SPF/DKIM/DMARC 설정 결과: 예시 도메인에서 SPF, DKIM, DMARC 설정이 모두 통과된 결과를 공유함.