본문 바로가기
설치 및 기술 자료/Security

[Security] SPF, DKIM, DMARC 구조와 동작 원리

by 주식회사 서버몬 2026. 7. 28.

 

안녕하세요. 주식회사 서버몬 입니다.

 

이메일은 기업 환경에서 가장 중요한 업무 커뮤니케이션 수단 중 하나 입니다.

SMTP는 초기 설계 단계에서 발신자 인증 기능을 고려하지 않았기 때문에

이메일 주소 위조가 가능했습니다.

 

실제 발신자는 공격자이지만 수신자는 정상적인 임직원이 보낸 메일로 오인할 수 있습니다.

 

이러한 취약점을 이용한 대표적인 공격 방식은 다음과 같습니다.

- Email Spoofing (이메일 위조)

- Business Email Compromise(BEC, 기업 이메일 사기)
- Phishing (피싱)
- Malware Distribution (악성코드 유포)
- Spam Mail

 

이메일 위변조 공격을 방지하기 위해 등장한 기술이 SPF, DKIM, DMRARC 입니다.

 

이메일 인증 기술이 필요한 이유

SMTP의 구조적 한계

 

SMTP는 기본적으로 발신 서버의 신뢰성을 검증하지 않는 구조이며,

이로 인해 발신자 위조와 메시지 변조에 취약한 구조적 한계를 가진다.

 

기본적으로 다음 과정으로 동작합니다.

 

메일 클라이언트
        |
        |
SMTP 서버
        |
        |
수신 SMTP 서버
        |
        |
메일 저장소

 

SMTP 자체에는 아래와 같은 검증 기능이 없습니다.

- 발신 서버가 정상적인 서버인지

- 메일 내용이 변경되지 않았는지

- 발신 도메인이 실제 소유자인지

 

따라서 공격자는 다음과 같은 형태로 위조 메일을 발송할 수 있습니다.

예)

From: admin@company.com
Return-Path: attacker@evil.com

 

수신자는 From 주소만 보고 정상 메일로 판단할 가능성이 있습니다.

이를 해결하기 위해 DNS 기반 인증 기술인 SPF, DKIM, DMARC가 사용됩니다.

 

 

이메일 인증 구조

이메일 인증은 다음과 같은 검증 과정을 수행합니다.

 

사용자
  
  
메일 서버(SMTP)
  
  
수신 메일 서버
  
   ├── SPF 검사
   ├── DKIM 검증
   └── DMARC 정책 적용
  
  
메일함 또는 스팸함

 

각 기술의 역할

기술 검증 목적
SPF 메일을 보낸 서버가 허용된 서버인지 확인
DKIM 메일 내용이 변조되지 않았는지 확인
DMARC SPF/DKIM 결과 기반 처리 정책 적용

 

즉,

보내는 서버가 신뢰 가능한지 (SPF)

메일 내용이 변조되지 않았는지(DKIM)

둘 중 하나라도 실패하면 어떻게 처리할지(DMARC)

 

 

 

SPF(Sender Policy Framework)

SPF란?

 

SPF는 메일을 발송할 권한이 있는 서버인지 확인하는 이메일 인증 기술입니다.

SMTP는 기본적으로 발신자를 검증하지 않기 때문에, 

공격자가 다른 도메인을 사칭하여 메일을 보내는 것이 가능합니다. 

SPF는 이러한 문제를 해결하기 위해 도메인이 허용한 발신 서버 목록을 DNS에 등록하고, 

수신 서버가 이를 확인하는 방식으로 동작합니다..

 

즉, "우리 도메인의 메일은 이 서버에서만 발송됩니다." 라고 DNS에 등록 합니다.

 

SPF 검증 과정

예를 들어 다음과 같은 메일이 도착했다고 가정합니다.

From: user@company.com
#수신 메일 서버는 먼저 실제 메일을 전달한 발신 SMTP 서버의 IP 주소를 확인합니다.

발신 SMTP 서버 IP
203.0.113.10
#이후 발신 도메인의 DNS에서 SPF 레코드를 조회합니다.

company.com TXT
v=spf1 ip4:203.0.113.10 -all
#SPF 레코드에는 해당 도메인이 허용한 메일 발송 서버 정보가 포함되어 있습니다.

 

 

SPF 동작 원리

수신 서버는 발신 서버의 IP와 SPF 레코드를 비교합니다.

발신 SMTP IP
203.0.113.10
        |
        ▼
SPF 레코드 확인
        |
        ▼
IP 주소 일치
        |
        ▼
PASS(등록되지 않은 서버라면 FAIL 처리)

 

SPF 레코드 구조

옵션 설명
v=spf1 SPF 버전을 나타내며, SPF 레코드의 시작을 의미
ip4 메일 발송을 허용할 IPv4 주소 지정
ip6 메일 발송을 허용할 IPv6 주소 지정
a 도메인의 A 레코드(IP 주소)와 일치하면 허용
mx 도메인의 MX(Mail Exchange) 서버에서 발송하면 허용
include 다른 도메인의 SPF 정책을 포함하여 적용
exists 특정 DNS 레코드의 존재 여부를 확인하여 허용 여부 결정
all 위 조건과 일치하지 않는 경우의 기본 처리 정책 지정 (-all, ~all, ?all, +all)

 

 

예시 : v=spf1 ip4:203.0.113.10 include:_spf.google.com -all

구성 요소 의미
v=spf1 SPF 버전 사용
ip4:203.0.113.10 203.0.113.10 서버의 메일 발송 허용
include:_spf.google.com Google의 SPF 정책도 함께 허용
-all 위 조건을 만족하지 않는 서버는 모두 거부(Fail)

 

SPF는 메일 내용을 검증하지 않습니다.

메일 전달(Forwarding) 과정에서는 SPF가 실패할 수 있습니다.

 

 

 

DKIM(DOmainKeys Identified Mail)

DKIM이란?

 

DKIM(DomainKeys Identified Mail)은 공개키 암호화(Public Key Cryptography)를 이용하여 

이메일이 전송 중 변경되지 않았는지(무결성)와 정상적인 도메인에서 발송되었는지를 검증하는 이메일 인증 기술입니다.

 

즉, 수신자가 메일이 변조되지 않았는지 정상 도메인이 보냈는지 확인할 수 있습니다.

 

주요 기능

  • 메일 변조 방지
  • 발신 도메인 인증
  • 메시지 무결성 검증

 

DKIM 동작 과정

1. 키 생성

메일 서버에서 개인키(Private Key)공개키(Public Key)를 생성합니다.

  • Private Key : 메일 서버에 안전하게 보관
  • Public Key : DNS에 등록
Private Key
    |
    |
메일 서버 저장

Public Key
    |
    |
DNS 등록

 

 

2. DNS 공개키 등록

공개키(Public Key)를 DNS의 TXT 레코드에 등록합니다.

 

예시)

selector._domainkey.company.com

TXT
v=DKIM1; k=rsa; p=MIIBIjANBgkqh...

 

항목 설명
selector 사용할 DKIM 키를 구분하는 이름
_domainkey DKIM 공개키가 저장되는 DNS 영역
company.com 메일을 보내는 도메인
p= 공개키(Public Key)

 

 

3. 메일 발송 및 전자서명

메일 서버는 Private Key를 이용하여 메일에 전자서명을 생성하고, DKIM-Signature 헤더를 추가한 후 메일을 발송합니다.

메일 작성
      │
      ▼
Private Key로 전자서명 생성
      │
      ▼
DKIM-Signature 헤더 추가
      │
      ▼
메일 전송

 

DKIM 헤더 예시)

DKIM-Signature:
v=1;
a=rsa-sha256;
d=company.com;
s=selector;
bh=...;
b=...

 

항목 설명
v DKIM 버전
a 전자서명 알고리즘
d 서명한 도메인
s DNS에서 조회할 Selector
bh 메일 본문의 해시(Hash) 값
b 개인키로 생성한 전자서명

 

 

 

4. 수신 서버의 공개키 조회

수신 메일 서버는 DKIM-Signature 헤더의 d= 와 s= 값을 이용하여 DNS에서 공개키를 조회합니다.

DKIM-Signature
d=company.com
s=selector
        │
        ▼
DNS 조회
selector._domainkey.company.com
        │
        ▼
Public Key 획득

 

5. 전자서명 검증

수신 서버는 DNS에서 조회한 공개키(Public Key)를 이용하여 전자서명을 검증합니다.

Public Key
        │
        ▼
전자서명 검증
        │
   ┌────┴────┐
   ▼         ▼
서명 일치   서명 불일치
   │         │
 PASS      FAIL

 

검증 결과

 

  • PASS
    • 메일이 해당 도메인의 개인키로 서명되었음이 확인됨
    • 전송 중 메일 내용이 변경되지 않았음을 확인
  • FAIL
    • 서명이 올바르지 않거나
    • 메일 내용이 전송 중 변경되었거나
    • DNS의 공개키와 서명이 일치하지 않음

 

 

DKIM 전체 동작 흐름

① 키 생성
Private Key ───────────────┐
(메일 서버 보관)            │
                           │
Public Key                 │
     │                     │
     ▼                     │
DNS(TXT) 등록              │
                           │
② 메일 작성                │
     │                     │
     ▼                     │
Private Key로 전자서명 ◀───┘
     │
     ▼
DKIM-Signature 추가
     │
     ▼
메일 전송
     │
     ▼
수신 서버
     │
     ▼
DNS에서 Public Key 조회
     │
     ▼
전자서명 검증
     │
 ┌───┴────┐
 ▼        ▼
PASS    FAIL

 

 

 

DMARC

(Domain-based Message Authentication, Reporting & Conformance)

DMARC란?

 

DMARC는 SPF와 DKIM의 인증 결과를 기반으로 수신 메일 서버가 이메일을 어떻게 처리할지 정의하는 정책입니다.

또한 인증 결과를 보고서(Report) 형태로 발신 도메인 관리자에게 전달하여

도메인 오남용 및 이메일 위조 여부를 모니터링할 수 있도록 합니다.

 

DMARC 구성 요소

SPF
   +
DKIM
   +
정책(Policy)
   +
보고서(Report)
   =
DMARC

 

주요 기능

 

  • SPF와 DKIM 인증 결과 확인
  • 발신 도메인(From) 검증(Alignment)
  • 메일 처리 정책 적용
  • 인증 결과 보고서 제공

 

 

DMARC 동작 과정

메일 수신
     │
     ▼
SPF 인증
     │
     ▼
DKIM 인증
     │
     ▼
Alignment 검사
     │
     ▼
DMARC 정책 적용
     │
 ┌───┼───────────┐
 ▼   ▼           ▼
허용  격리      거부

처리 과정

  1. 메일 수신
  2. SPF 인증 수행
  3. DKIM 인증 수행
  4. From 도메인과 인증 도메인의 Alignment 확인
  5. DMARC 정책(p=)에 따라 메일 처리

Alignment란?
DMARC는 SPF 또는 DKIM이 PASS인지뿐만 아니라, 

인증에 사용된 도메인과 사용자가 보는 From 도메인이 일치하는지도 확인합니다.

 

DMARC 정책

DMARC는 p= 태그를 통해 메일 처리 방식을 지정합니다.

정책 설명
p=none 메일은 정상 전달하고 보고서만 수집
p=quarantine 인증 실패 메일을 스팸함(격리)으로 이동
p=reject 인증 실패 메일을 수신 거부

 

DMARC 레코드 예시

v=DMARC1;
p=reject;
rua=mailto:dmarc@company.com;
ruf=mailto:forensic@company.com;
adkim=s;
aspf=s;
pct=100;
fo=1

 

 

주요 태그 설명

태그 설명
v DMARC 버전
p 정책 (none, quarantine, reject)
rua 집계(Aggregate) 보고서 수신 주소
ruf 포렌식(Failure) 보고서 수신 주소
adkim DKIM Alignment 설정 (r 또는 s)
aspf SPF Alignment 설정 (r 또는 s)
pct 정책을 적용할 메일의 비율(%)
fo 실패 보고서 생성 조건

 

DMARC 전체 동작 흐름

                 메일 수신
                     │
                     ▼
              SPF 인증(PASS/FAIL)
                     │
                     ▼
             DKIM 인증(PASS/FAIL)
                     │
                     ▼
          From 도메인 Alignment 검사
                     │
                     ▼
            DMARC 정책(p=) 확인
                     │
         ┌───────────┼───────────┐
         ▼           ▼           ▼
      p=none    p=quarantine   p=reject
         │           │            │
     정상 전달    스팸함 이동    메일 거부
         │
         ▼
   관리자에게 보고서 전송

 

 

 

SPF, DKIM, DMARC 비교 및 관계

SPF, DKIM, DMARC 비교

항목 SPF DKIM DMARC
목적 발신 서버 인증 메일 무결성 검증 정책 적용 및 통합 인증
기반 기술 DNS TXT 레코드 전자서명 + DNS 공개키 SPF + DKIM
메일 변조 검증 간접 지원
도메인 위조 방지 일부 일부 강력
메일 Forward 대응 약함 강함 중간
보고(Report) 기능

 

세 기술의 관계

각 기술은 서로 경쟁하는 것이 아니라 상호 보완적으로 동작합니다.

SPF
"이 서버가 메일을 보낼 수 있는가?"
        │
        ▼
DKIM
"메일 내용이 변경되지 않았는가?"
        │
        ▼
DMARC
"인증 결과를 어떻게 처리할 것인가?"

역할 요약

  • SPF : 발신 서버가 신뢰할 수 있는 서버인지 확인
  • DKIM : 메일 내용이 전송 중 변경되지 않았는지 확인
  • DMARC : SPF와 DKIM 결과를 종합하여 메일 처리 정책을 적용

 

세 가지 기술을 함께 적용하면 다음과 같은 효과를 얻을 수 있습니다.

  • 이메일 스푸핑 및 피싱 공격 감소
  • 발신 도메인의 신뢰도 향상
  • 메일 전달 성공률(Deliverability) 향상
  • 이메일 인증 현황에 대한 지속적인 모니터링 및 관리 가능

따라서 기업 환경에서는 SPF, DKIM, DMARC를 각각 독립적으로 적용하는 것이 아니라, 하나의 통합 이메일 인증 체계로 구축하고 지속적으로 운영하는 것이 권장됩니다.

 

 

 

1U서버 / 2U서버 / AI서버 / alyac / APC / APC UPS / backup / carepack / centos / chakramax / cuda / DAS / DB / DB서버 / defog / DEFOG랙 / dell5820 / dell5820t / dell7920 / dellpoweredge / dellr240 / dellr340 / dellr350 / dellr450 / dellr540 / dellr630 / dellr640 / dellr740 / dellr750 / dellserver / dellt40 / dellt440 / dellt5820 / dell서버 / DELL서버CPU / DELL서버RAID컨트롤러 / DELL서버SAS하드디스크 / DELL서버가격비교 / DELL서버가격비교견적 / DELL서버견적 / DELL서버구매 / DELL서버디스크교체 / DELL서버메모리 / dell서버서버몬 / DELL서버펌웨어 / DELL서버하드디스크구매 / dell옵션 / dell워크스테이션 / dl20 / dl20gen10 / dl20gen11 / dl360 / dl360gen10 / dl360gen11 / dl380 / dl380g10 / dl380gen10 / dl380gen11 / ECC메모리 / EDFOG랙가격 / embedded / est security / ESTSOFT / FIRMWARE / GPU / gpu서버 / gpu타워형서버 / greenlake / HA솔루션 / HP GPU / hp hdd / hpdl20 / HPDL20Gen10 / hpdl360 / hpdl360gen10 / hpdl380 / hpdl380g10 / HPDL380Gen10 / HPE / HPE GPU / hpe hdd / hpe rok / HPE Service Pack for Proliant / HPE SPP / hpe ssa / hpedl20 / hpedl20gen10 / hpedl360gen10 / hpe서버 / HPE서버CPU / HPE서버RAID컨트롤러 / HPE서버SAS하드디스크 / HPE서버가격비교 / HPE서버가격비교견적 / HPE서버견적 / HPE서버구매 / HPE서버드라이버설치 / HPE서버디스크교체 / HPE서버메모리 / HPE서버비용 / hpe서버소음 / HPE서버펌웨어 / HPE서버하드디스크구매 / hpe옵션 / hpe정품 / hpgen10 / hpml30 / hpserver / hpz2 / hpz4 / hpz4g4 / hpz6g4 / hpz8g4 / hp마이크로서버 / hp서버 / hp서버cto / hp서버pc / HP서버메모리 / hp서버소음 / hp서버컴퓨터 / HP서버파워 / HP서버펌웨어 / HP서버하드디스크 / hp옵션 / hp워크스테이션 / hp정품 / hp프로라이언트 / HYPER BACKUP / ibm서버 / ilo / Intelligent Provisioning / internetdisk / KVM / KVM 기술지원비(비용) / KVM 설치비 / L2스위치 / L3스위치 / LENONO서버SAS하드디스크 / lenovop620 / lenovor650 / LENOVO서버 / LENOVO서버CPU / LENOVO서버RAID컨트롤러 / LENOVO서버가격비교 / LENOVO서버가격비교견적 / LENOVO서버견적 / LENOVO서버구매 / LENOVO서버디스크교체 / LENOVO서버메모리 / LENOVO서버하드디스크구매 / LENOVO펌웨어업데이트 / Linux / ML30 / ml30gen10 / ml30gen11 / ML350GEN10 / ml350gen11 / ML360 / MS CSP / MSSQL / MSSQL 기술지원비(비용) / MSSQL 설치비 / MYSQL / MySQL 기술지원비(비용) / MySQL 설치비 / NAS / NVIDIA / Office 365 / oneview / orange / OS설치 / PA-410 / PA-440 / paloalto / poweredger740 / poweredger750 / precision5820 / QUADRO / r240 / r250 / r340 / r360 / r440 / r550 / r650 / r660 / r740 / r750xs / r760 / r760xs / RAID / redhat / RHEL설치 / RMS랙 / rocky / s100i / securedisk / server / serverpc / smart storage administrator / SPP / sql server / sr250 / sr650 / SYNOLOGY / SYNOLOGY나스 / t150 / t360 / UPS / UPS기술지원 / UPS납품 / UPS설치 / V3 / veeam / vroc / windows server / Windows서버설치 / XEON서버 / z8g4 / 가상서버 / 가성비서버 / 기술지원비(비용) / 나스기술지원 / 나스설치지원 / 네트워크스위치 / 네트워크장비 / 더블테이크 / 데이터베이스 / 델5820 / 델서버 / 델서버비용 / 델서버펌웨어업데이트 / 델옵션 / 델워크스테이션 / 델컴퓨터워크스테이션 / 디포그 / 디포그랙 / 디포그랙가격 / 딥러닝 / 딥러닝pc / 딥러닝서버 / 랙 / 랙(RACK) 기술지원비(비용) / 랙(RACK) 설치비 / 랙납품설치 / 랙설치 / 레노버p620 / 레노버서버 / 레노버워크스테이션 / 레노보서버 / 레노보서버펌웨어 / 레드헷설치 / 레이드 / 레이드구성 / 록키리눅스 / 리눅스 / 리눅스 기술지원비(비용) / 리눅스 설치비 / 리눅스서버 / 리눅스서버설치 / 리눅스서버트러블슈팅 / 리눅스트러블슈팅 / 문서보안 / 문서중앙화 / 미니서버 / 미니서버랙 / 미니서버렉 / 미디어서버 / 방화벽 / 방화벽 기술지원비(비용) / 방화벽 설치비 / 방화벽엔지니어 / 백업 / 백업 기술지원비(비용) / 백업 서버 / 백업서비스 / 백업솔루션 / 보안솔루션 / 보안솔루션구매 / 보안솔루션설치 / 보안툴 / 빔백업 / 샤크라맥스 / 서버 / 서버 기술지원비(비용) / 서 버 랙마운트비용 / 서버 설치비 / 서버 장애조치비용 / 서버CPU / 서버MEMORY / 서버OS설치 / 서버pc / 서버가격 / 서버가속기 / 서버견적 / 서버교체 / 서버구매 / 서버구입 / 서버구축 / 서버기술지원 / 서버납품 / 서버디스크장애처리 / 서버랙 / 서버렉 / 서버렉마운트 / 서버메모리 / 서버 몬 / 서버몬기술지원 / 서버백업 / 서버보안 / 서버부품 / 서버엔지니어 / 서버옵션 / 서버용GPU / 서버용PC / 서버용그래픽카드 / 서버용메모리 / 서버 / 컴퓨터 / 서버용하드디스크 / 서버재고 / 서버컴 / 서버컴퓨터 / 서버트러블슈팅 / 서버판매 / 서버하드 / 서버호스팅 / 스위치 / 스위치 기술지원비(비용) / 스위치 설치비 / 스토리지 / 스토리지 기술지원비(비용) / 스토리지 랙마운트비용 / 스토리지 설치비 / 스토리지 장애조치비용 / 스토리지납품설치 / 스토리지서버 / 시놀로지DS918 / 시놀로지HyperBackup / 시놀로지나스 / 시놀로지나스백업 / 시놀로지하이퍼백업 / 시큐어디스크 / 안랩 / 알약 / 앱서버 / 오피스 365 / 우분투설치 / 워크스테이션 / 워크스테이션pc / 워크스테이션컴퓨터 / 윈도우서버 / 윈도우서버2016 / 윈도우서버2019 / 윈도우서버2022 / 윈도우서버설치 / 윈도우서버컴퓨터 / 윈도우서버트러블슈팅 / 윈도우즈 기술지원비(비용) / 윈도우즈 설치비 / 이스트소프트 / 이스트 시큐리티 / 이중화솔루션 / 이중화솔루션구매 / 이중화솔루션설치 / 인터넷디스크 / 임베디드 / 저가서버 / 저렴한서버 / 정품서버 / 정품서버옵션 / 제온서버 / 젠서버 / 중고서버 / 중고워크스테이션 / 카보나이트 / 카스퍼스키 / 컴퓨터서버 / 케어팩 / 타워서버 / 타워형서버 / 팔로알토 / 페도라설치 / 프로라이언트

댓글