메일 공격과 발신 인증·메시지 보호
SPF·DKIM·DMARC와 S/MIME·PGP의 목적을 비교합니다.
1. 메일 위협과 대응
메일 보안은 발신 도메인 인증, 메시지 암호화, 악성 콘텐츠 검사로 나누어 이해한다. 어느 하나를 통과했다고 나머지까지 안전한 것은 아니다.
| 위협 | 원리 | 대응 |
|---|---|---|
| 스푸핑 | 주소·도메인·표시 이름 사칭 | 발신 인증, 실제 주소 확인 |
| 피싱 | 사용자를 속여 로그인·송금·실행 유도 | URL·본문 분석, 별도 확인 절차 |
| 스팸 | 원하지 않는 메일 대량 전송 | 평판·콘텐츠 필터, 중계·전송률 제한 |
| 악성 첨부·링크 | 실행·접속을 통해 감염 유도 | 악성코드 검사, 격리 분석, 실행 제한 |
| 메일 웜 | 감염 후 주소록 등에 악성 메일 자동 확산 | 첨부·URL 검사, 단말 패치·격리, 비정상 발송 차단 |
| 메일 폭탄 | 대량·대용량 메일로 자원 고갈 | 연결·크기·수신자 수 제한, 큐·디스크 감시 |
웜은 다른 프로그램에 기생하지 않고 자기 복제·전파할 수 있는 악성코드다. 메일 웜은 받은 사람이 감염된 뒤 다시 발신 주체가 되는 연쇄 확산에 주의한다. 단순 광고성 스팸과 구분한다.
2. SPF는 송신 IP의 도메인 사용 권한을 확인한다
SPF는 도메인이 DNS에 게시한 허용 송신 정책과 실제 연결된 송신 IP를 비교한다. 주된 검사 대상은 SMTP의 MAIL FROM 도메인이며 HELO 식별자도 관련된다.
연결한 송신 IP 확인
→ MAIL FROM 도메인의 DNS 정책 조회
→ 허용 송신자인지 평가
SPF는 본문 서명·암호화가 아니다. 화면의 From:과 SMTP 봉투의 발신 도메인은 다를 수 있다. 중간 전달 서버를 거치면 송신 IP가 바뀌어 정상 메일도 SPF에 실패할 수 있으므로 실패 하나로 악성 여부를 확정하지 않는다.
3. DKIM은 도메인 서명과 무결성을 검증한다
발신 시스템이 도메인의 개인키로 선택한 헤더·본문에 관한 서명을 만든다. 수신 시스템은 DNS의 공개키를 찾아 검증한다.
DKIM-Signature의 d=는 서명 도메인이다. 유효한 서명은 해당 도메인 키로 서명한 사실과 보호 대상 부분의 무결성을 확인하는 근거다. 메일 본문을 암호화하거나 표시된 개인의 신원을 직접 보장하는 기술은 아니다.
중계 시스템이 서명 대상 본문·헤더를 바꾸면 정상 전달 과정에서도 검증에 실패할 수 있다. 반대로 공격자가 자기 도메인으로 정상 서명한 피싱 메일도 있을 수 있다.
4. DMARC는 인증 결과와 표시 발신 도메인을 연결한다
DMARC는 SPF·DKIM의 결과를 사용자가 보는 From: 도메인과 연결하고, 실패 메시지의 처리 정책과 보고를 제공한다.
다음 둘 중 하나 이상이면 인증 통과 조건을 충족한다.
- SPF 통과 + SPF 인증 도메인이
From:도메인과 정렬됨. - DKIM 통과 + DKIM 서명 도메인이
From:도메인과 정렬됨.
정렬은 도메인 사이의 일치 관계다. 엄격한 방식은 정확히 같은 도메인을, 완화된 방식은 조직 도메인 관계를 기준으로 본다. SPF와 DKIM을 모두 통과해야 한다는 뜻은 아니다.
| 정책 | 도메인 소유자가 수신자에게 요청하는 처리 |
|---|---|
p=none | 관찰·보고 중심, 실패에 대한 격리·거부를 요구하지 않음 |
p=quarantine | 실패 메일을 의심스럽게 취급 |
p=reject | 실패 메일 수신 거부 |
수신자는 자체 정책도 함께 적용한다. DMARC가 통과해도 유사 도메인, 탈취된 계정, 악성 본문까지 안전하다는 뜻은 아니다.
5. 오픈 릴레이와 콘텐츠 검사
오픈 릴레이는 권한 없는 외부 송신자가 관계없는 외부 수신자에게 보내는 메일을 서버가 대신 중계하는 상태다. 자기 도메인으로 들어오는 정상 수신과 구분한다.
외부 목적지 중계는 인증되었거나 명시적으로 허가된 주체로 제한하고 사용자 제출과 서버 간 전달을 구분한다. 평판·헤더·본문·URL·첨부파일을 함께 검사하며, 압축 내부와 실행 가능한 콘텐츠도 확인한다. 파일 확장자나 특정 단어만으로 악성 여부를 확정하지 않는다.
6. S/MIME·PGP는 메시지 자체를 보호한다
| 구분 | S/MIME | PGP / OpenPGP |
|---|---|---|
| 공통 기능 | 전자서명·암호화 | 전자서명·암호화 |
| 대표 신뢰 구조 | X.509 인증서·인증기관 | 사용자·조직의 키 배포·검증, 전통적인 신뢰망 등 |
| 구분할 점 | Signed Data는 서명, Enveloped Data는 암호화 | 반드시 한 가지 신뢰망 방식만 사용하는 것은 아님 |
서명은 송신자 개인키로 생성하고 송신자 공개키로 검증한다. 암호화는 수신자가 읽도록 보호한다. 일반적인 공개키 기반 메시지 암호화는 다음의 하이브리드 구조다.
메시지용 대칭키 생성 → 본문을 대칭키로 암호화
→ 대칭키를 수신자 공개키로 보호
→ 수신자가 자신의 개인키로 대칭키 복구
→ 대칭키로 본문 복호화
서명만 적용하면 내용은 비밀이 아니며, 암호화만 했다고 송신자의 서명이 생기지는 않는다. TLS는 메일 전송 구간을 보호하고 S/MIME·OpenPGP는 메시지 자체를 보호한다. 메시지를 암호화해도 전송에 필요한 모든 헤더와 주소까지 자동으로 숨겨지는 것은 아니다.
개념 확인 문제
문제를 누르면 바로 아래에서 정답과 해설을 확인할 수 있습니다.
01SPF는 실패했지만 From 도메인과 정렬된 DKIM이 통과했다면 DMARC 통과 조건을 충족하는가?
충족한다. SPF 또는 DKIM 중 하나 이상이 통과하고 해당 인증 도메인이 From 도메인과 정렬되어야 한다. 메일 본문이 안전하다는 의미는 아니다.
02메시지 서명 키와 메시지 암호화용 대칭키를 보호하는 공개키는 누구의 것인가?
서명은 송신자의 개인키로 만들고 송신자의 공개키로 검증한다. 메시지용 대칭키는 수신자의 공개키로 보호하고 수신자의 개인키로 복구한다.