2016년 미국 대선 기간, 러시아 해커들이 힐러리 클린턴 선거대책본부장 존 포데스타의 이메일을 탈취한 사건은 피싱 메일 한 통에서 시작됐다. 발신자 주소는 구글을 사칭했고, 메일 서버는 이를 걸러내지 못했다. 이런 식의 이메일 위조가 지금도 매일 수백만 건씩 시도되고 있는데, 이를 막는 기술적 방어선이 바로 SPF와 DMARC다.
SPF: 발신 서버를 검증하는 첫 관문
SPF(Sender Policy Framework)는 2000년대 초반 스팸 급증에 대응해 나온 개념으로, 도메인 소유자가 "우리 도메인 이름으로 메일을 보낼 수 있는 서버는 이 IP들뿐이다"라고 DNS에 선언해두는 방식이다. 예를 들어 example.com의 SPF 레코드가 "v=spf1 ip4:203.0.113.0/24 -all"이라면, 이 IP 대역이 아닌 곳에서 example.com 이름으로 온 메일은 위조로 간주된다.
문제는 SPF가 "봉투 발신자(Envelope From)"만 검사하고, 실제 수신자 화면에 뜨는 "From" 헤더는 검사하지 않는다는 점이다. 공격자는 SPF를 통과하는 자기 도메인을 쓰면서 화면에 보이는 발신자 이름만 은행이나 회사 이름으로 바꿔치기할 수 있다. 이 허점을 메우는 게 DKIM과 DMARC다.
DKIM과 결합해야 의미가 생긴다
DKIM(DomainKeys Identified Mail)은 메일 본문과 헤더 일부에 발신 서버가 개인키로 서명을 붙이고, 수신 서버가 DNS에 공개된 공개키로 이를 검증하는 방식이다. 메일이 중간에 변조되면 서명이 깨진다. SPF가 "어디서 왔는가"를 본다면 DKIM은 "내용이 진짜인가"를 보는 셈이다.
DMARC: 정책을 강제하는 최종 심판
DMARC(Domain-based Message Authentication, Reporting and Conformance)는 2012년 페이팔, 구글, 마이크로소프트 등이 주도해 만든 표준으로, SPF와 DKIM 검사 결과를 종합해 "이 둘 중 하나라도 실패하면 어떻게 처리하라"는 정책을 도메인 소유자가 지정하게 해준다. 정책은 세 단계다.
none: 아무 조치 없이 결과만 리포트로 수집
quarantine: 스팸함으로 격리
reject: 아예 반송, 수신자 받은편지함에 도달 자체를 차단
2024년 2월 구글과 야후가 발신자 요건을 대폭 강화하면서, 하루 5,000통 이상 보내는 발신자에게 DMARC 정책 설정을 사실상 의무화한 사건이 있었다. 이후 몇 달 사이 DMARC 도입률이 급증했는데, 이는 기술 자체의 완성도보다 대형 메일 서비스 사업자의 정책 변화가 보안 표준 확산의 실질적 동력이 된 사례로 자주 인용된다.
왜 여전히 구멍이 남는가
DMARC를 reject로 설정해도 표시 이름(Display Name) 스푸핑, 즉 실제 도메인은 다르지만 "국세청"처럼 눈에 보이는 이름만 속이는 공격은 막지 못한다. 사람은 주소창의 실제 도메인보다 화면에 큼직하게 뜨는 이름을 먼저 본다는 점을 노린 수법이다. 또한 중소기업 상당수가 DMARC 리포트(RUA/RUF)를 해석할 인력이 없어 none 정책에 머물러 있는 경우가 많아, 표준이 있어도 실효성 없이 방치되는 사례가 보안 업계에서 꾸준히 지적된다.
학교 이메일로 "선생님입니다, 지금 급하게 상품권 사서 보내주세요"라는 메일이 온다면? 발신자 이름은 선생님인데 실제로는 다른 사람이 보낸 가짜 메일일 수 있다. 이런 걸 막는 기술이 SPF와 DMARC다.
SPF는 '허가된 배달부' 명단
이메일을 보낼 때는 도메인(예: school.ac.kr) 이름을 걸고 보낸다. SPF는 "이 도메인 이름으로 메일을 보낼 수 있는 서버는 이거다"라고 미리 등록해두는 제도다. 택배로 치면 "우리 회사 이름을 달고 오는 택배는 이 배송업체 트럭에서만 나온다"고 미리 공지해두는 것과 비슷하다. 등록되지 않은 곳에서 온 메일은 수상하다고 판단된다.
DMARC는 최종 판정관
그런데 SPF만으로는 부족하다. 공격자가 화면에 보이는 발신자 이름만 바꾸는 수법이 있기 때문이다. 그래서 DMARC가 등장한다. DMARC는 SPF와 DKIM(내용 위조를 막는 서명 기술) 검사를 둘 다 확인한 뒤, 둘 중 하나라도 실패하면 어떻게 할지 도메인 주인이 미리 정해두는 규칙이다.
그냥 기록만 남기기(none)
스팸함으로 보내기(quarantine)
아예 반송시키기(reject)
2024년 2월, 구글과 야후가 대량 발송자에게 이 규칙 설정을 사실상 의무로 만들면서 전 세계적으로 도입이 크게 늘었다. 그만큼 실생활에 영향을 주는 기술이라는 뜻이다.
왜 중요한가
이메일 사기(피싱)는 학교, 회사, 은행을 사칭해 돈이나 개인정보를 빼가는 대표적 수법이다. SPF와 DMARC가 잘 설정된 도메인에서는 이런 사칭 메일이 애초에 수신함에 도달하기 어렵다. 반대로 설정이 허술한 도메인은 사칭당하기 쉽다. 그래서 학교나 회사 메일 시스템 관리자에게 이 설정은 선택이 아니라 기본 상식이 되어가고 있다.
다만 완벽하지는 않다. 화면에 보이는 이름만 그럴듯하게 바꾸는 수법은 여전히 통할 수 있어서, 결국 "발신자 이름"보다 "실제 이메일 주소"를 확인하는 습관이 함께 필요하다.
편지를 받았는데 봉투에 적힌 이름은 학교인데, 사실은 낯선 사람이 몰래 보낸 거라면 어떨까요? 이메일 세계에서도 이런 가짜 편지가 매일 생겨요. 이걸 막아주는 두 가지 규칙이 있어요. 바로 SPF와 DMARC예요.
SPF는 출입 명단 같은 거예요
학교에 손님이 들어오려면 미리 이름을 적어둔 출입 명단이 있어야 하죠. SPF도 똑같아요. "우리 학교 이름으로 메일을 보낼 수 있는 곳은 이 컴퓨터들뿐이야"라고 미리 정해두는 거예요. 명단에 없는 곳에서 학교 이름으로 메일이 오면 "어? 이상한데?" 하고 걸러져요.
DMARC는 마지막 문지기예요
그런데 나쁜 사람이 겉모습만 학교처럼 꾸밀 수도 있어요. 그래서 DMARC라는 문지기가 하나 더 있어요. DMARC는 메일이 진짜인지 여러 번 확인한 다음, 가짜라고 판단되면 어떻게 할지 정해요.
그냥 지켜보기만 하기
스팸함(이상한 편지함)으로 보내기
아예 돌려보내기(못 받게 하기)
왜 필요할까요
가짜 메일로 사람을 속여서 돈이나 비밀번호를 빼가려는 나쁜 사람들이 많아요. SPF와 DMARC는 이런 가짜 메일이 우리한테 도착하기 전에 미리미리 걸러주는 문지기 두 명 같은 거예요. 2024년에는 구글이랑 야후 같은 큰 회사들이 "이 규칙을 꼭 지켜야 해!"라고 정하면서, 전 세계 많은 회사가 이 문지기를 세우기 시작했어요.
그래도 완전히 안전한 건 아니에요. 겉으로 보이는 이름만 그럴듯하게 꾸미는 나쁜 사람도 있으니까, 우리도 메일 주소를 한 번 더 확인하는 습관을 가지는 게 좋아요.
문서 정보
최초 작성
최종 갱신
분류
보안
HANGUL.WIKI가 정리·작성한 문서입니다. 정확성을 위해 노력하나 오류가 있을 수 있으므로, 중요한 내용은 공식 출처를 통해 확인하시기 바랍니다.
내용의 오류나 정정 요청은 오류·정정 신고로 알려주시면 검토 후 반영합니다.