본문 바로가기
Technology Study/3. Application Security

[E-Mail Security] 1. 이메일 기본 구조

by 행태정보수집가 2024. 11. 2.

※ 블로그 운영자의 개인적인 의견입니다. 팩트와 글의 내용이 다를 수 있습니다.

서론

전자 장치를 사용해 컴퓨터 네트워크를 거쳐 메시지를 전달하는 커뮤니케이션 방식을 이메일 또는 전자 메일이라고 부른다. (근데 아무도 전자 메일이라고 안 부른다.) 회사에 다니면 제일 먼저 배우는 것이 메일 쓰는 법이다. 그만큼 메일을 많이 쓰고 있고, 메일을 악용한 해킹시도들이 글로벌 적으로 많이 발생하고 있다. 사내에 악성메일을 탐지하고 차단하는 솔루션을 운영하고 있지만 해커는 이러한 시스템을 우회하여 침입하고 있다. 또한 조직은 서로 다른 업무를 하고 있기에 시스템이 모든 메일에 대해서 정의하고 악성메일로 분류하여 차단할 수 없다. 보안담당자라면 특정메일이 악성메일인지 아닌지 판단할 수 있어야하기에 메일 구조부터 악성메일을 분류하고 차단하는 방법까지 학습한 내용을 공유하고자 한다.

Part 1. 이메일 Protocol

SMTP (Simple Mail Transfer Protocol)

발신자로부터 수신자에게 이메일을 전송하기 위한 프로토콜

IMAP (Internet Message Access protocol)

수신자가 메일서버로부터 이메일을 받기 위한 프로토콜 (양방향 / 동기화)

POP3 (Post Office Protocol Version 3)

수신자가 메일서버로부터 이메일을 받기 위한 프로토콜 (단방향 / 비동기화)

Part 2. 메일 발송 기본 구조

프로토콜의 정의만 보아서는 이해하기 힘들다. A 회사의 발신자가 B회사의 수신자에게 메일을 발송하는 구조를 설명하겠다.

  1. 발신자는 아웃룩과 같은 메일 서비스를 이용하여 수신자에게 메일을 발송한다. 이 때 메일은 다이렉트로 수신자에게 가는 것이 아닌, A 회사의 메일서버로 SMTP를 통해 전달된다. 
  2. A 회사의 메일서버는 발신자로부터 메일을 받고 B회사의 메일서버로 SMTP를 통해 메일을 발송한다. A회사와 B회사는 서로다른 네트워크 망을 사용하기에 인터넷 망을 통해 전달된다.
  3. B회사의 메일서버는 A회사의 메일서버로부터 메일을 전달받고, IMAP 또는 POP3를 통해 수신자에게 메일을 전달한다.
※ IMAP vs POP3

IMAP과 POP3의 가장 큰 차이점은 IMAP은 양방향 프로토콜이고 POP3는 단방향 프로토콜이라는 점이다.

IMAP : 메일서버가 중앙서버 역할(동기화 방식)을 한다. 사용자는 메일을 중앙서버로부터 읽어오기에 서로 다른 기기를 사용하여 메일을 불러올 수 있다. 중앙서버에서 통제하기에 사용자가 많을 수록 메일서버에 과부하가 올 수 있다.
 - ex) PC의 Outlook에서 보았던 메일을 모바일 Outlook으로 확인할 수 있다.
 - ex) PC의 Outlook에서 메일을 삭제하면, 모바일 Outlook에서 확인할 수 없다.

POP3 : 사용자는 메일을 메일서버로부터 다운로드 받고, 메일서버는 해당 메일을 삭제한다. 데이터를 사용자가 직접 관리하기에 관리가 용이하다.
 - ex) PC의 Outlook에서 보았던 메일을 모바일 Outlook에서 확인할 수 없다. (PC에 메일이 다운로드되고 메일서버는 메일을 삭제하기 때문이다.)
 - ex) 메일서버에 복사본을 저장하기 기능을 사용하여 메일을 저장할 수 있다.

 

Part 3. SMTP 동작 방식

 

MUA (Mail User Agent)

사용자가 메일을 송/수신 하기 위해 사용하는 프로그램 (Gmail, Outlook Express 등)

MSA (Mail Submission Agent)

MUA에서 이메일을 최초로 전달 받아 수신 오류 확인 및 MTA로 메시지 전달

MTA (Message Transfer Agent)

서로 다른 메일 서버의 MTA와 통신 및 메일 전달

MDA (Mail Delivery Agent)

MTA로부터 받은 이메일을 최종적으로 수신자의 메일함에 저장

 

Part 4. 메일서버와 DNS

발신자의 MTA는 수신자가 누구인지 확인하기 위해 DNS 서버로 부터 MX Record를 요청한다. MX Record는 DNS Record 중 하나로, 메일이 올바르게 라우팅하는데 사용된다. 발신자의 DNS서버 DNS Cache Table에 수신자의 DNS(DX Record)가 등록되어 있다면 아래 그림과 같은 과정을 거쳐 메일이 전달되게 된다. 그게 아닌 경우, 발신자의 DNS서버는 수신자의 DNS서버로부터 MX레코드를 요청하여 DNS Cache Table에 등록한다.

 

보안 관점이 아닌, 운영에 대한 관점으로 메일 발신/수신 과정을 공유하였다. 다음 Part에서는 보안 관점에서 이야기하고자 한다.

Reference

  1. powerdmarc - 이메일 서버를 식별하는 DNS 레코드 유형은 무엇인가요?
  2. totle - 이메일 프로토콜 이해하기!
  3. my devlog; - e-mail protocol: SMTP, POP3, IMAP이란?
  4. Cloudflare - DNS MX 레코드란?

 
 

요약 정리

  • 메일 보안을 하기 위해서는 메일 통신에 대한 기본 구조를 이해해야 한다.
  • SMTP의 동작방식에 대해서 이해한다.
  • DNS와 메일서버의 관계에 대해서 이해한다.