검수요청.png검수요청.png

SMTP

위키원
Asadal (토론 | 기여)님의 2021년 2월 18일 (목) 21:59 판 (같이 보기)
이동: 둘러보기, 검색

SMTP는 Simple Mail Transfer Protocol의 약자로, 간이 우편 전송 프로토콜이다. 이 프로토콜인터넷에서 메일을 주고받기 위해 사용한다. 포트 번호는 25번을 사용한다.

개요

두 메일 시스템이 전자우편을 교환할 수 있게 하는 비교적 간단한 메시지 전송용 프로토콜이다. 이 프로토콜은 메일 서버 간의 송수신뿐만 아니라, 메일 클라이언트에서 메일 서버로 메일을 보낼 때도 사용된다.[1] 간이 우편 전송 프로토콜(SMTP)을 사용할 경우 프로세스는 동일한 네트워크에 있는 다른 프로세스로 메일을 전송할 수 있고, 또한, 양쪽 네트워크에 접근할 수 있는 릴레이(Relay)나 게이트웨이(Gateway) 프로세스를 경유하게 되면 다른 네트워크에 있는 프로세스에도 메일이 전달할 수 있다.[2] 간이 우편 전송 프로토콜은 신뢰성이 높은 TCP 연결에 기초하고, 모든 처리는 항상 하나의 TCP 연결을 통해 실행된다. 메일 서버는 데몬으로 동작하고, 메일 클라이언트로부터 요청에 항상 준비한다. 간이 우편 전송 프로토콜(SMTP)은 송신자의 메일서버로부터 수신자의 메일서버로 메시지를 전송한다. 송신자와 수신자의 확인을 위한 주소 표기는 '계정명@호스트 주소'의 형태를 띤다. 텍스트를 인코딩하는 방식에서 문자 코드를 7비트 아스키코드(ASCII)로 한정하고 있기 때문에, 화상이나 음성 등의 데이터를 포함한 문서는 전송할 수 없다. 하지만 MIME 방식을 이용하면 전송할 수 있다. 또한, 별칭을 확장할 수 있다. 한 개의 이름에 대해 일-대-다 또는 다-대-일로 변환이 가능하다.[3]

구성 요소

간이 우편 전송 프로토콜을 구성하는 요소에는 사용자 에이전트(User Agent, UA), 메시지 전송 에이전트(Message Transfer Agent, MTA), 메시지 접근 에이전트(Message Access Agent, MAA)이 있다. 사용자 에이전트(UA)는 사용자를 대신하여 일을 수행하는 소프트웨어 에이전트이다.[4] 메시지 전송 에이전트(MTA)는 메일을 중계 또는 전달하는 기능을 수행한다. 메일 전송 에이전트(Mail Transfer Agent), 메일 서버(Mail Server)라고도 한다. 네트워크를 통해 교환되는 메시지는 첨부된 데이터 파일을 포함하여 메일 서버로 전달하고, 사용자는 일반적으로 웹 메일 또는 이메일 클라이언트를 통해 이메일에 엑세스한다.[5] 메시지 접근 에이전트(MAA)는 메일 엑세스용 프로토콜로, POP3IMAP 등이 있다.[3]

연결 절차

  1. 3방향 핸드 쉐이크(3-way Handshake)를 통해 연결을 확인한다.
  2. 220 메시지를 통해 서비스 준비를 알려준다.
  3. 클라이언트를 식별하기 위해 메시지를 보낸다.
  4. 250번을 통해 완료됐다고 알려준다.
  5. 데이터를 전송한다.
  6. 연결이 완료되면 221번을 보내 연결을 끊는다.
  7. 연결이 끊기면 3방향 핸드 쉐이크(3-way Handshake)를 통해 마무리한다.[6]

명령 및 응답

간이 우편 전송 프로토콜의 주요 명령들은 주로 클라이언트가 서버에게 송신할 때 사용된다. HELO는 클라이언트 자신이 누구인지를 밝히기 위해 클라이언트에서 보내는 것이고, MAIL FROM은 클라이언트가 메일 송신자가 누구인지를 알기 위해서 사용한다. RCPT TO는 메시지를 받는 사람을 알기 위해 사용하고, DATA는 클라이언트에서 전체 메일 메시지 전송을 초기화하기 위해 보낸다. SIZE는 간이 우편 전송 프로토콜 서버에서 지원되는 최대 메시지 크기를 표시할 수 있는 메커니즘이고, QUIT은 세션을 종료할 때 사용한다. 그리고 간이 우편 전송 프로토콜의 주요 응답 코드에는 211, 214, 220, 221, 250, 354 등이 있다. 211은 서버 상태 메시지를 뜻하고, 214는 help 명령을 실행할 때 나오는 코드 메시지 이다. 220은 서비스가 준비 완료되었다는 의미이고, 221은 서비스 종료에 따라 전송 채널을 닫았다는 의미이고, 250은 요구된 동작을 실행했다는 것을 알려준다. 또한, 354는 메일 입력이 시작되었다는 뜻이다.[3]

응용

사이버 공격 10건 중 9건이 이메일로 시작되는 가운데 악성 메일에 대응할 새로운 특허 기술이 나왔다. 이메일 송수신에 활용되는 간이 우편 전송 프로토콜의 응답 코드를 재해석하여 불가능하다고 여겨진 발신자 확인을 해결했다. 홈페이지 등을 통해 이메일을 쉽게 수집할 수 있고, 큰 어려움 없이 기업 내부에 침투할 수 있기 때문에 랜섬웨어, 지능형 지속위협(APT) 등 각종 사이버 공격 시작점으로 악용된다. 발신한 이메일에 대한 유실을 방지하기 위해서 개발된 간이 우편 전송 프로토콜 에러 코드를 활용하여 이메일 보안 솔루션을 만들어 발신 정보, 수신 메일 헤더, 도메인 네임 시스템(DNS) 등 세 가지 발신 정보를 비교하여 일치하지 않으면 악성으로 분류한다. 리얼 메일은 이메일이 수신되면 발신 이메일 서버에 검증 이메일을 자동 발신하여 검증 요청 정보를 생성하여 발신자 이메일 주소로 전송한다. 발신자 이메일 서버로부터 검증 요청 정보가 제공되면 발신자 이메일 주소가 유효한지 확인한다. 발신 이메일이 사칭 되지 않았다면, 간이 우편 전송 프로토콜 에러 코드가 발생하지 않는다. 유효하지 않을 경우, 사칭으로 판단하여, 에러 코드를 반환하고 이메일을 차단한다. 발신자가 확인된 이메일만 통과시키는 제로트러스트 화이트리스트 방식이다.[7]

각주

  1. (NETWORK)(MAILSERVER) SMTP/ POP3/ IMAP란?〉, 《티스토리》, 2019-04-02
  2. SMTP란 – 1. Relay, Gateway〉, 《티스토리》, 2017-02-12
  3. 3.0 3.1 3.2 SMTP Simple Mail Transfer Protocol〉, 《정보통신기술용어해설》
  4. 사용자 에이전트〉, 《위키백과》
  5. 메시지 전송 에이전트〉, 《위키백과》
  6. 피망IT, 〈SMTP(Simple Mail Transfer Protocol)이란?〉, 《티스토리》
  7. 오다인 기자, 〈'보안사고 시작점' 이메일, 발신자 확인 기술로 대응한다〉, 《전자신문》, 2020-12-13

참고자료

같이 보기


  검수요청.png검수요청.png 이 SMTP 문서는 인터넷에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.