Sender Policy Framework (SPF)
SPF(Sender Policy Framework)는 이메일 스푸핑과 스팸을 방지하기 위해 설계된 이메일 인증 방법이다. 이메일 도메인 소유자가 어떤 메일 서버가 해당 도메인에서 이메일을 보낼 수 있는 권한이 있는지 지정할 수 있게 해주는 중요한 보안 메커니즘이다.
SPF의 기본 개념
SPF는 DNS(Domain Name System) TXT 레코드를 통해 구현된다.
도메인 소유자는 DNS에 특별한 TXT 레코드를 추가하여 해당 도메인에서 이메일을 보낼 수 있는 권한이 있는 메일 서버의 IP 주소 목록을 지정한다.
이메일을 받는 서버는 발신자의 도메인에 대한 SPF 레코드를 확인하고, 이메일이 실제로 권한이 있는 서버에서 왔는지 검증한다. 이 과정을 통해 누군가가 여러분의 도메인을 사칭하여 이메일을 보내는 것을 방지할 수 있다.
SPF 작동 방식
- 도메인 소유자가 SPF 레코드 설정: 도메인 소유자는 DNS에 TXT 레코드 형태로 SPF 정책을 게시한다.
- 이메일 전송: 발신자가 이메일을 보낸다.
- 수신 서버의 확인 과정:
- 수신 서버는 이메일 헤더에서 “MAIL FROM” 도메인을 확인한다.
- 해당 도메인의 DNS 레코드에서 SPF 정보를 조회한다.
- 이메일을 보낸 서버의 IP 주소가 SPF 레코드에 나열된 허용된 IP 주소 중 하나인지 확인한다.
- 결과 처리: 검증 결과에 따라 수신 서버는 이메일을 배달하거나, 스팸으로 표시하거나, 거부할 수 있다.
SPF 레코드 구조
SPF 레코드는 일반적으로 다음과 같은 형식을 가진다:
|
|
- v=spf1: SPF 버전을 나타낸다 (현재 버전 1).
- 메커니즘: 도메인에서 메일을 보낼 수 있는 호스트를 지정한다 (예: ip4, ip6, a, mx, include 등).
- 제한자: 각 메커니즘 앞에 올 수 있으며, 결과를 지정한다:
+
: Pass (기본값)-
: Fail~
: SoftFail?
: Neutral
- all: 모든 다른 메커니즘이 일치하지 않을 때 사용되는 기본 정책이다.
SPF 레코드 예시
|
|
이 예시는 다음을 의미한다:
- 192.168.0.1/16 IP 범위에서 오는 이메일 허용
- 도메인의 MX 레코드에 나열된 메일 서버에서 오는 이메일 허용
- thirdparty.com의 SPF 레코드에 나열된 서버에서 오는 이메일 허용
- 위 조건에 맞지 않는 모든 다른 서버에서 오는 이메일 거부 (-all)
주요 SPF 메커니즘
ip4: IPv4 주소나 범위를 지정
1
ip4:192.0.2.0/24
ip6: IPv6 주소나 범위를 지정
1
ip6:2001:db8::/32
a: 도메인 또는 하위 도메인의 A 레코드를 지정
1
a:mail.example.com
mx: 도메인의 MX 레코드에 나열된 메일 서버를 지정
1
mx
include: 다른 도메인의 SPF 레코드를 포함
1
include:_spf.google.com
all: 모든 다른 주소에 적용되는 기본 정책
1
-all (권장), ~all, ?all, +all
SPF 구현의 중요성
- 피싱 방지: 해커가 여러분의 도메인을 사칭하여 피싱 이메일을 보내는 것을 방지한다.
- 스팸 감소: 제대로 구성된 SPF는 수신자의 스팸 필터가 합법적인 이메일과 스팸을 구분하는 데 도움을 준다.
- 이메일 전달률 향상: 많은 이메일 제공업체가 SPF를 확인하므로, 올바른 SPF 설정은 여러분의 이메일이 받는 사람의 받은 편지함에 도달할 가능성을 높인다.
- 평판 보호: 도메인 평판을 보호하여 마케팅 및 비즈니스 이메일의 효과를 유지한다.
SPF의 한계
- 전달된 이메일: 이메일이 전달될 때 SPF 검사가 실패할 수 있다.
- 10개의 DNS 조회 제한: SPF 표준은 10개 이상의 DNS 조회를 허용하지 않는다.
- 단독으로는 불완전함: 완전한 이메일 인증을 위해서는 DKIM 및 DMARC와 함께 사용하는 것이 권장된다.
SPF와 함께 사용할 수 있는 다른 이메일 인증 방법
- DKIM(DomainKeys Identified Mail): 디지털 서명을 사용하여 이메일 내용이 전송 중에 변경되지 않았는지 확인한다.
- DMARC(Domain-based Message Authentication, Reporting, and Conformance): SPF와 DKIM을 기반으로 이메일 인증 정책을 설정하고, 실패한 인증에 대한 보고서를 제공한다.
SPF 레코드 테스트 및 확인
SPF 레코드를 구현한 후에는 다음 도구를 사용하여 확인할 수 있다:
명령줄 도구:
1
dig TXT example.com
온라인 SPF 확인 도구: MXToolbox, DMARCIAN, Google Admin Toolbox 등의 다양한 온라인 도구가 있다.
성공적인 SPF 구현을 위한 모범 사례
- 가능한 한 구체적으로 지정: 필요한 서버만 허용하고
-all
로 끝내는 것이 좋다. - 정기적으로 업데이트: 메일 서버 인프라가 변경될 때마다 SPF 레코드를 업데이트한다.
- 너무 복잡하게 만들지 않기: 10개 이상의 DNS 조회를 유발하지 않도록 주의한다.
- DKIM 및 DMARC와 함께 사용: 최상의 보호를 위해 이러한 기술을 함께 구현한다.
- 테스트 후 배포: 프로덕션 환경에 적용하기 전에 SPF 변경 사항을 테스트한다.
용어 정리
용어 | 설명 |
---|---|
이메일 스푸핑(Email Spoofing) | 공격자가 이메일 발신자를 위조하여, 마치 신뢰할 수 있는 발신자로부터 온 것처럼 속이는 공격 기법으로, 주로 피싱(Phishing), 사기(Scam), 악성 코드(Malware) 유포 등에 활용된다. |
스팸(Spam) | 수신자의 동의 없이 대량으로 전송되는 원치 않는 이메일을 의미한다. 주로 광고, 사기, 악성 코드 유포 등의 목적으로 사용된다. |
TXT 레코드 | DNS 영역 파일에 존재하는 텍스트 형식의 레코드로, 도메인에 대한 다양한 정보를 저장한다. 따옴표로 묶인 하나 이상의 문자열 형태로 저장되며, 최대 255자까지 가능하다. 이메일 스팸 방지(SPF, DKIM, DMARC 등의 정책 설정), 도메인 소유권 확인, 도메인 관련 일반 정보 제공 등의 용도로 사용된다. |