SPF 레코드란?
SPF(Sender Policy Framework)는 어떤 호스트가 도메인을 대신해 이메일을 보낼 수 있는지를 수신 메일 서버에 알려 줍니다. SPF 레코드가 중복되거나, DNS 조회 횟수가 너무 많거나, 'all' 메커니즘이 누락되어 잘못 구성되면 정상적인 메일이 스팸으로 분류됩니다. IPeek는 도메인의 SPF 레코드를 찾아 모든 메커니즘을 분석하고, 전달성을 떨어뜨리는 문제를 짚어 줍니다.
SPF 레코드의 작동 원리
SPF는 루트 도메인의 TXT 레코드로 게시되며 v=spf1로 시작합니다. 서버가 귀하의 도메인을 사칭한 메일을 수신하면 이 레코드를 조회해 발신 IP가 인증되었는지 확인합니다. v=spf1 include:_spf.google.com ip4:198.51.100.10 -all 같은 레코드는 "Google 호스트와 이 IP 하나는 허용하고 나머지는 모두 거부"한다는 의미입니다. 메커니즘은 왼쪽에서 오른쪽으로 평가되며, 가장 먼저 일치하는 항목이 적용됩니다. 마지막의 all 메커니즘은 명시적으로 나열되지 않은 호스트의 기본 처리 결과를 결정하는 포괄 규칙입니다.
하드페일, 소프트페일, 그리고 10회 조회 제한
all 메커니즘이 정책을 정합니다. -all은 하드페일(나열되지 않은 발신자 거부), ~all은 소프트페일(수신하되 의심스러운 것으로 표시), +all은 누구나 허용하므로 절대 사용해서는 안 됩니다. 또한 SPF는 DNS 조회를 일으키는 메커니즘(include, a, mx, ptr, exists, redirect)을 총 10회로 제한하며, 이를 초과하면 결과가 permerror가 되어 실패로 처리됩니다. 중첩된 include도 함께 계산되므로 여러 벤더를 추가하다 보면 조회 한도가 조용히 소진됩니다. IPeek는 모든 조회 횟수를 집계해 한도에 도달하기 전에 경고해 줍니다.
SPF와 DKIM, DMARC의 관계
SPF만으로는 충분하지 않습니다. SPF는 사용자에게 보이는 From 주소가 아니라 봉투 발신자(return-path)를 인증하므로, 사칭 발신자가 SPF를 통과하면서도 브랜드를 위조할 수 있습니다. DMARC는 SPF 도메인과 From 도메인 간의 정렬(alignment)을 요구하고, SPF와 DKIM을 결합해 둘 중 하나로 메시지를 인증하도록 함으로써 이 빈틈을 메웁니다. SPF는 세 가지 보호 계층 중 하나로 다뤄야 합니다. SPF는 호스트를 인증하고, DKIM은 콘텐츠에 서명하며, DMARC는 이를 From 도메인에 묶어 정책을 강제합니다.