Analysis

기본적인 SMTP Packet 분석

DarkSoul.Story 2013. 1. 30. 11:35
반응형

MTP는 전자우편을 보내고 받는데 사용되는 TCP/IP 프로토콜이며기본적으로 25포트를 사용하지만특정 포트로 변경하여 설정할 수 있다. SMTP POP와 마찬가지로 기본적으로 보안 기능을 제공하지 않는다.

 


[그림.1 일반적인 SMTP 통신]

 

1. 3-way handshaking 과정을 거친 후 SMTP 서버는 준비가 되었다는 것을 알리는 코드 220으로 응답한다.

 

2. 클라이언트는 호스트 이름과 HELO 또는 EHLO를 전송한다.

   HELO : 표준 SMTP 세션 시작

   EHLO : 메일 서비스 확장을 지원하는 SMTP세션 시작

 

3. 클라이언트는 MAIL FROM과 함께 form 이메일 주소를 제공한다.

 

4. (4-1.) 이메일 주소를 제공 받은 SMTP서버는 이를 승인 한다만약 승인이 되지 않는다면이메일 전송은 불가능 하다.

 

5. 클라이언트는 전송될 이메일이 있다는 RCPT  TO를 전송한다.

 

6. 클라이언트는 이메일을 전송할 준비가 되었음을 알리는 DATA를 전송한다.

 

7. 서버는 준비가 완료되면, 354 Start Mail Input으로 응답한다. 354 Start Mail Input을 받은 클라이언트는 이메일을 전송한다.

 

8. 이메일 전송이 완료되면클라이언트는 연결 종료를 알리는 QUIT를 전송한다.

 

다음으로 SMTP 패킷 구조를 살펴보자.

SMTP 패킷 구조는 POP 동일하게 매우 간단하다. SMTP 패킷 구조는 명령어와 응답 코드로 구성되어 있으며, TCP 헤더 바로 뒤에 존재한다.

 

[그림.2]는 클라이언트가 전송하는 명령어 패킷 이다명령어와 필요에 따라 파라미터를 전송한다.

 

[그림.2 클라이언트 명령어]

 

클라이언트가 전송하는 명령어는 [.1]과 같으며더욱 자세한 내용을 알고 싶으면

http://www.iana.org/assignments/mail-parameters을 참고 하기 바란다.

 

명령어

설명

HELO

SMTP 세션 시작

MAIL

이메일 전송 시작

RCPT

이메일 수신 확인

DATA

이메일 전송 시작

QUIT

연결 종료

[표.1 클라이언트 명령어]

 

 

다음으로 [그림.3]은 서버에서 보내는 응답 코드 패킷 이다응답 코드와 간단한 설명 및 파라미터로 구성되어 있다.


[그림.3 SMTP 응답 코드]

 

.2]는 응답 코드의 일부분 이며, http://www.iana.org/assignments/smtp-enhanced-status-codes/smtp-enhanced-status-codes.xml 에서 더 많은 응답 코드를 확인할 수 있다.

 

응답 코드

설명

220

서비스 준비

250

요청한 동작을 승인  완료

452

저장 공간 부족

550

메일 박스를 이용할  없음

554

트랜잭션 실패

[.2 응답 코드]




반응형

'Analysis' 카테고리의 다른 글

PingTunneling 패킷 분석  (0) 2013.01.30
기본적인 HTTP Packet 분석  (0) 2013.01.30
기본적인 POP Packet 분석  (0) 2013.01.30
기본적인 FTP Packet 분석  (0) 2013.01.30
기본적인 TCP Packet 분석  (0) 2013.01.30