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

IMAP

위키원
이동: 둘러보기, 검색

IMAP(아이맵)은 "Internet Message Access Protocol"의 약자로서, 인터넷 이메일을 읽어오기 위해 사용되는 프로토콜이다. IMAP은 사용자 또는 클라이언트 프로그램이 메일의 제목과 송신자를 보고, 다운로드의 여부를 결정하게 하는 전자메일용 프로토콜로, 143번 포트를 사용한다. 이 프로토콜은 응용 계층 인터넷 프로토콜 중 하나로, 원격 서버로부터 TCP/IP 연결을 통해 이메일을 가져오는 데 사용된다.[1][2]

아사달 스마트 호스팅 가로 배너 (since 1998).jpg
이 그림에 대한 정보
[아사달] 스마트 호스팅

개요[편집]

인터넷 메시지 접속 프로토콜은 인터넷을 통해 이메일을 관리하는 데 사용되는 응용 계층 프로토콜이다. 클라이언트가 메일 서버에 접근하여 이메일을 읽고, 쓰고, 삭제하는 등의 작업을 수행할 수 있게 한다. IMAP은 클라이언트-서버 모델을 기반으로 하며, 메일 서버에서 이메일을 관리할 수 있는 기능을 제공한다. IMAP는 온라인 모드와 오프라인 모드를 모두 지원하므로 POP3를 사용할 때와 달리 이메일 메시지를 서버에 남겨 두었다가 나중에 지울 수 있다. 그러므로 다른 컴퓨터 환경에서 서로 다른 이메일 클라이언트가 같은 이메일을 받아올 수 있는 장점을 가지고 있다. 이메일 메시지는 서버로 보내져 받는 사람의 이메일 보관함에 저장된다. 사용자는 마이크로소프트 아웃룩, 모질라 선더버드 같은 메일 클라이언트를 사용하여 편지의 기본 헤더(제목, 송신자명, 이메일 주소 등)를 보고 메일 본문의 다운로드 여부를 정할 수도 있다. 하지만, POP3에 비해 IMAP는 메일 서버와의 통신 트래픽이 높은 단점을 가지고 있다.[3]

역사[편집]

IMAP은 1986년에 마크 크리스핀(Mark Crispin)에 의해 개발되었다. 처음 개발된 버전은 IMAP2으로 알려져 있으며, 이후 여러 차례의 개정을 통해 현재 널리 사용되는 IMAP4로 발전하였다. IMAP4는 1994년에 RFC 1730으로 처음 표준화되었고, 현재는 RFC 3501에 정의되어 있다.

동작 원리[편집]

IMAP로 이메일을 주고받는 프로세스는 다음과 같다.

이메일 보내기

단순 메일 전송 프로토콜(SMTP)에서는 이메일을 보내는 방법이 정의된다.

  • 전송 제어 프로토콜(TCP) 연결이 클라이언트와 이메일 서버 간에 설정된다. 이 연결을 통해 서버는 이메일이 올 것을 알 수 있습다.
  • 클라이언트에서 이메일 자체를 포함하는 일련의 명령을 서버에 보냅니다.
  • 이메일 서버는 메일 전송 에이전트(MTA)라는 자체 프로그램을 사용하여 이메일의 도메인 네임 시스템(DNS) 레코드를 확인하고 받는 사람의 IP 주소를 찾는다. MTA에서는 이메일을 보낼 위치를 알 수 있도록 DNS 레코드를 IP 주소로 변환한다.
  • SMTP는 받는 사람의 도메인 이름과 연결된 메일 교환기(MX) 레코드를 찾는다. MX 레코드는 SMTP에 따라 메시지를 라우팅하는 방법을 나타내는 데 사용된다. MX 레코드가 있는 경우 이메일이 해당 이메일 서버로 전송된다.
이메일 검색

IMAP에서는 이메일 수신 방법이 정의된다.

  • 이메일에는 이메일 클라이언트 내에서 액세스할 수 있으며 모든 장치에서 읽을 수 있다. IMAP는 이메일 클라이언트와 서버 간의 중개자이므로 이러한 이메일은 인터넷 연결을 통해서만 액세스할 수 있다.
  • 사용자가 이메일 클라이언트에 로그인하면 클라이언트는 이메일 서버에 연결하여 메시지를 검색한다. 사용자는 제목 줄 및 보낸 사람 정보와 함께 이메일의 미리 보기를 볼 수 있지만, 실제 메시지는 사용자가 메시지를 클릭할 때까지 다운로드되지 않는다.
  • 받은 편지함 소유자의 이메일은 삭제될 때까지 서버 및 클라이언트 연결을 통해 이용할 수 있다.
주요 명령어

IMAP의 프로토콜은 텍스트 기반으로 이루어져 있으며, 클라이언트와 서버 간의 통신은 일반적으로 명령어와 응답의 형태로 이루어진다.

  • LOGIN: 클라이언트가 서버에 인증을 요청할 때 사용한다.
  • SELECT: 클라이언트가 특정 메일함을 선택할 때 사용한다.
  • FETCH: 클라이언트가 이메일의 특정 부분을 요청할 때 사용한다.
  • STORE: 클라이언트가 이메일의 상태를 변경할 때 사용한다.
  • COPY: 클라이언트가 이메일을 다른 폴더로 복사할 때 사용한다.
  • LOGOUT: 클라이언트가 서버에서 로그아웃할 때 사용한다.

특징[편집]

IMAP은 메시지 수신 방법의 하나다. 어떤 디바이스에서 만들어도 폴더는 사용하는 모든 디바이스에서도 확인이 가능하다. 즉, 모든 데이터가 동기화된다. 특정 메일을 다른 폴더로 이동해도 모든 디바이스에서 동기화되어 확인할 수 있다. 이는 서버에 직접 접속하여 메일을 확인하는 방식이기 때문에 메일을 열람한 후에도 서버에 이메일이 그대로 남아있어 여러 클라이언트를 통해서도 반복해서 확인할 수 있는 것이다. 또한 모든 데이터를 서버에 보관한다.[4] 하지만 메일을 확인할 때마다 클라이언트와 서버가 통신해야 하기 때문에 메일 서버의 통신 트래픽을 높이고, 오프라인 상태에서는 메일을 확인할 수 없으며, 개인 메일함의 용량이 곧 서버의 용량이기 때문에 주기적인 용량 관리가 필요하다.[5] 또, IMAP은 이메일의 일부만 다운로드할 수 있는 기능을 제공한다. 예를 들어, 이메일의 헤더만 먼저 다운로드하고, 필요할 경우 본문이나 첨부 파일을 나중에 다운로드할 수 있다. 이를 통해 대역폭을 절약하고 빠른 이메일 관리가 가능하다. 그리고 여러 클라이언트가 동시에 동일한 메일함에 접근할 수 있도록 멀티플렉싱을 지원한다. 이를 통해 다중 사용자가 동시에 이메일을 관리할 수 있다. 이외에도 IMAP은 클라이언트가 서버에서 폴더를 생성, 삭제, 이름 변경, 이동 등을 할 수 있게 한다. 이를 통해 이메일을 효율적으로 분류하고 관리할 수 있다. 클라이언트가 오프라인 상태에서도 이메일을 관리할 수 있는 기능을 제공하고 있어서, 오프라인 모드에서 수행된 작업은 온라인 상태로 전환될 때 서버와 동기화된다.

응용[편집]

지메일

다른 메일로 수신되는 이메일을 지메일(Gmail)로 받을 수 있도록 설정할 수 있다. 즉, 외부 메일까지 지메일로 불러와서 모든 메일을 통합하여 관리하는 방법이다. 예시로, 네이버 메일을 지메일로 불러오는 과정을 보자면,

  1. 네이버 메일 계정에 로그인한다.
  2. 환경 설정에 들어가 POP3/IMAP 설정에 들어간다.
  3. POP3/SMTP 설정 탭에서 POP3/SMTP 사용 항목을 사용함으로 체크한 후 확인 버튼을 누른다.
  4. IMAP/SMTP 설정 탭에서 IMAP/SMTP 사용 항목에 사용함으로 체크한 후 확인 버튼을 누르면 네이버 메일함에서의 설정은 끝이다.
  5. 크롬 브라우저를 실행하여 지메일로 들어간다.
  6. 설정에 들어가 계정 및 가져오기 탭을 누른 후, 메일 및 주소록 가져오기 목록에서 메일 및 주소록 가져오기 버튼을 클릭한다.
  7. 가져오고 싶은 계정을 입력한 후, 네이버 메일로부터 가져올 정보들을 체크한다.

다음, 네이트 등 다른 메일도 동일한 방법으로 지메일에서 관리할 수 있다.[6]

POP3와 비교[편집]

POP3(Post Office Protocol)와 달리 IMAP은 개인 메일함을 포함하여 메일함을 폴더 형태로 지원하고, 서버의 메일함과 메일 프로그램의 메일함 및 내용을 서로 동기화한다. 또한, 동시에 여러 개의 메일 프로그램에서 동일한 계정으로 접속이 가능하고, 하나의 메일 프로그램에서 변경한 사항은 다른 메일 프로그램에도 함께 반영된다. 메일의 머리말 부분과 메시지의 일부분을 미리 읽어오는 것이 가능하다. 메일 메시지 일부분을 확인한 후 전체 메일을 읽을지의 여부를 결정할 수 있기 때문에 POP3보다 스마트폰 등 모바일 환경에서 더욱 적합한 서비스다.[7]

IMAP는 중앙 서버에서 동기화가 이루어지기 때문에 모든 장치에서 동일한 이메일 폴더를 확인할 수 있다. 스마트폰, 태블릿, PC 모두 동일한 받은 편지함, 보낸 편지함, 자신이 만든 폴더, 이메일 메시지를 볼 수 있다. 반면에, POP3는 이메일 공급업체 서버에서 로컬 장치로 이메일을 다운로드하는 방식이다. IMAP처럼 서버와의 동기화가 이루어지지 않고, 단순히 다운로드만 한다. 대부분의 POP3 설정은 이메일을 로컬 장치로 다운로드하면 서버에서 삭제하도록 되어 있다. 하지만 이메일 클라이언트를 설정하여 서버에 메시지를 보관할 수도 있다. 대부분의 이메일 클라이언트는 기본값으로 IMAP 계정을 생성하기 때문에 IMAP 설정이 더 쉽다. 반면에 POP3는 수동 설정이 필요한 경우가 많다. 더 나아가 IMAP을 우선적으로 지원하는 이메일 공급업체는 POP3를 지원하지 않을 수도 있다. POP3를 지원하더라도 프로토콜을 이용한 계정 접속 방법에 대한 자세한 설명서를 제공하지 않는 경우가 많다.[8]

IMAP[9] POP3
사용자는 모든 장치에서 이메일에 액세스할 수 있다. 다운로드된 장치에서만 액세스할 수 있다.
서버에 이메일이 저장된다.
IMAP는 서버와 클라이언트 간의 중개자 역할을 한다.
다운로드되면 달리 구성되지 않는 한 이메일이 서버에서 삭제된다.
이메일을 오프라인에서 액세스할 수 없다. 이메일을 오프라인에서 액세스할 수 있지만,
다운로드한 장치에서만 액세스할 수 있다.
이메일 본문은 사용자가 클릭할 때까지 다운로드되지 않지만,
제목 줄과 발신자 이름은 이메일 클라이언트에 빠르게 채워진다.
이메일이 기본적으로 장치에 다운로드되므로
메시지를 로드하는 데 시간이 더 오래 걸릴 수 있다.
이메일이 서버에서 자동으로 삭제되지 않으므로
IMAP는 더 많은 서버 공간이 필요하다.
POP3는 이메일이 서버에서 자동으로 삭제되므로
이메일 서버 저장소 공간이 절약된다.

보안[편집]

IMAP를 사용하면 이메일이 기본적으로 서버에 저장되므로 서버가 손상되면 문제가 발생할 수 있다. 그러나 POP3와는 달리 IMAP 사용자는 다운로드한 장치가 분실되거나 손상된 경우 이메일이 파기되는 것을 걱정할 필요가 없다. IMAP의 가장 큰 보안 문제 중 하나는 기본적으로 클라이언트에서 서버로 로그인을 전송하므로 사용자 이름과 비밀번호가 암호화되지 않는다는 점이다. 암호화된 로그인은 복잡한 수학 방정식을 사용하여 가려지므로 공격자가 읽는 것만으로는 이해할 수 없다. 이 취약점은 암호화된 통신을 용이하게 하는 전송 계층 보안(TLS) 프로토콜을 통해 IMAP를 구성하여 보호할 수 있다. IMAP과 관련된 또 다른 취약점은 기본적으로 다단계 인증(MFA)과 호환되지 않는다는 점이다. 이러한 이유로 IMAP를 악용하여 MFA 요건을 우회하고 공격자가 비밀번호 스프레이 공격을 더 쉽게 수행할 수 있다. 비밀번호 스프레이에서 공격자는 일반적으로 사용되는 비밀번호와 잠재적 사용자 이름의 다양한 조합을 시도한다. 인증 요건을 지원하지 않는 타사 이메일 클라이언트를 사용하거나 MFA를 적용할 수 없는 공유 이메일 계정을 유지 관리하면 조직이 특히 취약해진다.[9]

각주[편집]

  1. IMAP Internet Message Access Protocol〉, 《정보통신기술용어해설》
  2. 인터넷 메시지 접속 프로토콜〉, 《위키백과》
  3. 인터넷 메시지 접속 프로토콜〉, 《위키백과》
  4. IMAP의 특징은 무엇인가?〉, 《엠바인 블로그》, 2018-05-19
  5. 가비아, 〈이메일 프로토콜 이해하기: SMTP, POP3, IMAP의 의미〉, 《네이버 포스트》, 2019-11-27
  6. 장현지 기자, 〈(지메일 활용하기) 네이버 메일을 지메일로 받는 방법〉, 《아이티동아》, 2020-05-30
  7. IMAP 개념〉, 《티스토리》
  8. Ian Paul, 〈IMAP 대신 POP3을 써야 하는 2가지 이유〉, 《아이티월드》, 2014-10-28
  9. 9.0 9.1 IMAP란?〉, 《클라우드플레어》

참고자료[편집]

같이 보기[편집]


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