이메일 헤더
IT위키
더 많은 작업
이메일 헤더(Email header)는 전자우편 메시지의 본문 앞에 붙는 필드 이름: 값 형식의 줄들로, 보낸 사람·받는 사람·날짜·제목과 메시지가 거쳐 온 메일 서버의 기록을 담는다.
인터넷 메일의 형식은 RFC 5322 가 정한다. 메시지는 헤더와 본문으로 나뉘고, 그 사이는 빈 줄 하나로 구분한다. 헤더 가운데 From·To·Subject·Date 는 메일을 쓰는 프로그램(MUA)이 채우고, Received 같은 줄은 메일을 넘겨받은 각 메일 서버(MTA)가 하나씩 덧붙인다. 일반 메일 프로그램은 몇 개만 보여 주므로 전체 헤더는 '원본 보기'·'헤더 보기' 같은 메뉴로 본다.
스팸·피싱 메일을 조사할 때는 화면에 보이는 보낸 사람(From)이 아니라 헤더 전체, 특히 Received 줄을 읽어 실제로 어느 서버에서 출발했는지를 찾는다.
| 필드 | 누가 붙이나 | 내용 |
|---|---|---|
| Received | 메일을 받아 넘긴 각 MTA | "from 보낸 호스트(IP) by 받은 서버 ... ; 시각" 형식. 서버를 하나 거칠 때마다 맨 위에 한 줄이 늘어난다. 맨 아래 줄이 처음 받은 서버다 |
| Return-Path | 마지막에 배달한 서버 | SMTP 의 MAIL FROM(봉투 발신자) 주소. 반송 메일이 가는 곳 |
| From | 보내는 사람(MUA) | 화면에 보이는 보낸 사람. 보내는 쪽이 마음대로 적을 수 있어 위조가 쉽다 |
| To, Cc | 보내는 사람 | 받는 사람, 참조 |
| Reply-To | 보내는 사람 | 답장을 받을 주소 |
| Subject | 보내는 사람 | 제목 |
| Date | 보내는 쪽 | 메일을 작성·발송한 날짜와 시각 |
| Message-ID | 보내는 MUA 나 첫 서버 | 메시지마다 붙는 고유 식별자. "<고유값@도메인>" 형식 |
| MIME-Version | 보내는 쪽 | MIME 형식을 쓴다는 표시 |
| Content-Type | 보내는 쪽 | 본문의 형식과 문자 집합(text/plain; charset=UTF-8, multipart/mixed 등) → MIME |
| X- 로 시작하는 필드 | 프로그램·서버 | 표준이 아닌 추가 정보. 스팸 필터 점수(X-Spam-Status) 등 |
Received: from mail.example.net (mail.example.net [203.0.113.5])
by mx.example.org with ESMTP id g54Grc; Wed, 5 Jun 2002 01:53:39 +0900
Received: from client-pc (unknown [198.51.100.7])
by mail.example.net with SMTP id 54Gp0D; Tue, 4 Jun 2002 12:51:00 -0400
Date: Tue, 4 Jun 2002 12:51:00 -0400
Message-Id: <[email protected]>
From: news <[email protected]>
To: [email protected]
Subject: ...
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
- Received 줄은 아래에서 위로 읽는다. 맨 아래 Received 의 from 부분(198.51.100.7)이 메일이 처음 들어온 곳이다
- Received 는 메일을 받은 서버가 상대 연결의 실제 IP 주소를 보고 직접 적는다. 그래서 내가 믿는 서버(우리 쪽 메일 서버)가 적은 줄은 믿을 수 있다. 그보다 아래(먼저 붙은) 줄은 앞 서버가 쓴 것이라 보내는 쪽이 가짜 줄을 미리 넣어 둘 수 있으므로, 믿는 서버의 줄부터 아래로 한 줄씩 확인한다
- From 은 보내는 사람이 적은 값이라 실제 발송자를 증명하지 못한다. 위 예에서 From 의 도메인(example.com)과 실제 출발지는 다르다
- Message-ID 는 메시지를 구별하는 번호이고, Content-Type 은 본문 형식일 뿐이라 발송 경로를 알려 주지 않는다
From 위조를 막으려고 발신 도메인이 허락한 서버인지 확인하는 SPF, 메시지에 전자서명을 붙이는 DKIM, 둘의 결과를 From 도메인과 맞춰 보는 DMARC 를 쓴다 → 이메일 인증