02-07 18:36
반응형
250x250
Recent Posts
Recent Comments
Link
관리 메뉴

DevOps Tasks

메일 인증 프로토콜로 제로 스팸 메일 만들기 - SPF Part 본문

DevOps

메일 인증 프로토콜로 제로 스팸 메일 만들기 - SPF Part

데밥스 2024. 2. 4. 00:59
728x90
반응형

SPF ( Sender Policy Framework )

 

인터넷상에서 Mail 은 다양한 방법으로 위조될 수 있다.

SPF “발신자 정책 프레임워크” 는 DNS TXT 레코드 중 하나로 공격자가 Mail 주소를 “ 스푸핑 (Spoofing) ” 하거나 도용하여 수백만 개의 메일을 불법으로 보낼 수 있는 Mail 시스템의 허점을 방지하기 위해 만들어졌다.

관련해서 DKIM과 DMARC에 대해서 알면 이해하기 쉽다.

 

[DevOps] - 메일 인증 프로토콜로 제로 스팸 메일 만들기 - DKIM Part

 

메일 인증 프로토콜로 제로 스팸 메일 만들기 - DKIM Part

DKIM ( DomainKeys Identified Mail ) DKIM ( Domainkeys Identified Mail ) 은 Mail 발신자가 Mail에 디지털 서명을 하여 발신자의 진위 여부를 확인하고 전송 중에 메시지가 변조되지 않았는지 확인할 수 있는 이메일

rldnjsdlsi.tistory.com

 

[DevOps] - 메일 인증 프로토콜로 제로 스팸 메일 만들기 - DMARC Part

 

메일 인증 프로토콜로 제로 스팸 메일 만들기 - DMARC Part

DMARC ( Domain-based Message Authentication Reporting and Conformance ) DMARC ( Domain-based Message Authentication Reporting and Conformance / 도메인 기반 메시지 인증, 보고 및 적합성 ) 은 이메일 인증 프로토콜로 이메일 도메

rldnjsdlsi.tistory.com

 

즉, Mail 이 허가된 메일 서버에서 발송되었는 지를 확인하는 메커니즘이다.

 

초기 DNS TXT 레코드는 도메인에 대한 중요한 알림을 포함시키기 위해서 만들어진 것이지만, 이후에는 다른 목적에 이용할 수 있도록 진화되었다고 한다.

SPF를 사용하면 스푸핑 (Spoofing)으로부터 도메인을 보호하고 발신 메일이 수신 서버에 스팸으로 표시되지 않도록 할 수 있다.

메일 서버의 정보를 사전에 DNS에 공개 등록하여 수신자로 하여금 Mail에 표시된 발송자 정보가 실제 메일 서버의 정보와 일치하는지 확인할 수 있도록 하는 메일 검증 기술로 국제 표준인 RFC 7208 정의되어 있다.

 

IETF RFC 7208

 

 

RFC 7208: Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1

Email on the Internet can be forged in a number of ways. In particular, existing protocols place no restriction on what a sending host can use as the "MAIL FROM" of a message or the domain given on the SMTP HELO/EHLO commands. This document describes versi

datatracker.ietf.org

 


 

SPF 가 나오게 된 배경

 

기존 메일에 사용되는 표준 프로토콜인 SMTP ( Simple Mail Transfer Protocol )가 본질적으로 메일의 “발신” 주소를 인증하지 않기 때문에 만들어졌다.

따라서, SPF 및 다른 인증 레코드가 없다면 공격자가 쉽게 발신자로 위장해서 수신자를 속일 수 있다.

 

 

예시로 SPF 레코드는 어떤 파티의 가드가 관리하는 손님 목록 명부라고 생각할 수 있다.

명부에 없는 사람이 오면 가드는 입벤을 둔다.

마찬가지로 SPF 레코드에 발신자의 IP 주소나 도메인이 없다면 수신 서버 (가드)는 해당 Mail을 배달하지 않거나 스팸으로 표시한다.

SPF는 Mail 이 신뢰할 만한 곳에서 온 것인지 Mail 서버가 확인하기 위해 사용할 수 있는 DNS 기반 메커니즘 중 하나이다.


 

수신 메일 서버가 SPF 레코드를 검사하는 방식

 

 

Phase 1

수신한 메일의 상세정보

 

메일 수신 시 발신자는 header.from 로 보이지만 SPF 검사는 smtp.mailfrom로 진행된다.

수신 메일의 세부 정보를 확인해 보면 Sender’s Inbox ( 메세지를 받는 메인 발신 서버 )가 Mail을 보내고 해당 서버의 IP 주소는 76.223.177.52이다.

 

smtp.mailfrom 

Mail을 발송하는 서버의 발신자 주소

 

header.from 

수신자에게 보이는 발신자 주소

 

Phase 2

Email Server ( 메시지를 받는 메인 수신 서버 )는 Sender’s Inbox 도메인으로 SPF 레코드를 찾는다.

 

Phase 3

Email Server에서 Sender’s Inbox 측 IP와 대조하여 SPF 레코드 목록과 일치하면 SPF 검사에 합격하여 Mail 발송이 계속 진행된다.

일치하지 않으면 위조된 메일로 간주하여 스팸 또는 반송으로 처리한다.

 

Mail을 사용에 있어서 SPF 레코드 등록이 필수는 아니지만 수신 측 정책에 따라서 SPF 레코드 등록이 반드시 필요할 수 있다.

 

728x90

SPF 레코드를 구성하는 항목

 

v=spf1 ip4:192.0.2.0 ip4:192.0.2.1 include:sns.amazonaws.com -all

 

 

항목 입력값 및 설명 비고
v 반드시 가장 먼저 선언되어야 함
‘spf1’로 입력
필수
ip4 메일 발송 서버의 IP (IPv4형식)  
ip6 메일 발송 서버의 IP (IPv6형식)  
include 이미 선언된 SPF 레코드값을 가져옴 반드시 sns.amazonaws.com 를 사용해야 한다면 아래 값 사용

include:sns.amazonaws.com
all 반드시 가장 나중에 선언되어야 함

‘~all’ 또는 ‘-all’으로 입력
필수

~all : SPF 검증에 실패한 Mail 수신

-all : SPF 검증에 실패한 Mail 차단

 

 

SPF Record 등록

 


 

SPF Record 사용 이유

 

공격 방지

Mail을 인증하지 않으면 회사 및 이메일 수신자는 피싱 공격, 스팸 Mail, Mail Spoofing의 위험에 노출된다.

SPF 레코드가 있으면 공격자가 발신자의 도메인을 사칭하기 어려워져 공격의 가능성이 저하된다.

 

Mail 전달 가능성 개선

공개된 SPF 레코드가 없는 도메인은 Mail이 반송되거나 스팸으로 표시될 수 있다.

 

DMARC 준수

DMARC는 승인된 사용자만 Mail을 보낼 수 있음을 보장하는 이메일 확인 시스템이다.

DMARC 정책은 SPF 및 DKIM 검사를 통과하지 않은 이메일에 대해 서버가 어떻게 해야 하는지 지시한다.

728x90
반응형