Почему не безопасен протокол pop3. Пример POP3 сессии

24.03.2019

В настоящее время методов общения через Интернет масса. Можно использовать ICQ или Skype, социальные сети, иные ресурсы. Примерно два десятка лет назад единственным способом отправить или получить виртуальное письмо была электронная почта.

До определенного времени сервера, обрабатывающие письма пользователей, обладали ограниченными возможностями. Хранение большого объема информации было дорогим удовольствием, что подразумевало удаление сообщения с диска сразу после его загрузки на компьютер клиента. Прогресс ушел вперед, возможностей стало больше, пользователь может хранить письма в почтовом ящике на центральном сервере неограниченное количество времени, осуществлять с ними различные операции.

Протоколы передачи данных, используемые при работе с электронной почтой

Любой форме коммуникаций присущ определенный стиль – набор соглашений. В сети – это протокол. При работе с E-mail может использоваться ряд протоколов. Среди них:

  • POP3;
  • IMAP.

В чем заключается разница, какой протокол и в каком случае целесообразно использовать?

Что такое POP3

Желая отправить письмо или поверить личный почтовый ящик, расположенный на удаленном сервере, пользователь может воспользоваться браузером, установленным на компьютере, что не совсем удобно. Чаще применяется , которая и обменивается информацией с сервером, используя определенный протокол. Если это – Post Office Protocol, процесс происходит следующим образом:

  1. Соединение;
  2. Получение клиентом информации о состоянии ящика, загрузка писем;
  3. Обновление сервера и удаление выбранных сообщений;
  4. Закрытие соединения.

Что такое IMAP

Протокол IMAP предоставляет пользователю больше возможностей. После авторизации на почтовом ресурсе на компьютер загружаются только заголовки писем. При выборе нужного сообщения программа-клиент загружает письмо полностью. При этом работать можно on-line и off-line. Прочитанные сообщения не удаляются, с ними можно осуществлять желаемые операции в дальнейшем.

Плюсы и минусы IMAP и POP3

Какой протокол выбрать? Все зависит от специфики работы и потребностей.

Кроме того, что письма сохраняются на сервере без удаления, к преимуществам IMAP нужно отнести:

  • Возможность доступа к ящику с нескольких клиентов;
  • Поддержка одновременного доступа нескольких клиентов;
  • Поддержка нескольких ящиков;
  • Возможность создания новых папок, к которым может быть открыт доступ другим пользователям;
  • Возможность помечать письма как прочитанные, важные и другие;
  • Поддержка поиска на сервере;
  • Возможность работы в режиме on-line.

Минус в данном случае единственный – пользователь тратит больше времени на загрузку писем с центрального компьютера.

Сегодня мы подробно расскажем про наиболее используемые в сети интернет протоколы – POP3, IMAP и SMTP. Каждый из указанных протоколов имеет определенное назначение и функциональные возможности. Давайте попробуем разобраться.

Протокол POP3 и его порты

Post Office Protocol 3 (POP3) это стандартный протокол почты созданные для получения электронных писем с удаленного сервера на e-mail клиент.POP3 позволяет вам сохранить почтовое сообщение на ваш компьютер и даже прочесть его, в случае, если вы находитесь не в сети. Важно отметить, что если вы решили использовать POP3 для подключения к учетной записи почты, письма, которые уже скачаны на компьютер, будут удалены с почтового сервера. Как пример, если вы используете несколько компьютеров для подключения к одному почтовому аккаунту, то протокол POP3 может быть не лучшим выбором в данной ситуации. С другой стороны, так как почта хранится локально, на ПК конкретного пользователя, это позволяет оптимизировать дисковое пространство на стороне почтового сервера.

По умолчанию, протокол POP3 использует следующие порты:

  • Порт 110 – это порт протокола POP3 по умолчанию. Не является безопасным.
  • Порт 995 – этот порт следует использовать в том случае, если вы хотите установить безопасное соединение.

Протокол IMAP и порты

Internet Message Access Protocol (IMAP) – это почтовый протокол, созданный для доступа к почте с локального почтового клиента. IMAP и POP3 – наиболее популярные в сети интернет протоколы, используемые для получения e-mail. Оба этих протокола поддерживается всеми современными почтовыми клиентами (MUA - Mail User Agent) и WEB – серверами.

В то время как POP3 позволяет доступ к почте только с одного приложения, IMAP позволяет доступ из множества клиентов. По этой причине, IMAP наиболее адаптивен в тех случаях, когда доступ к одному почтовому аккаунту необходим для нескольких пользователей.

По умолчанию, протокол IMAP использует следующие порты:

  • Порт 143 – порт по умолчанию. Не безопасен.
  • Порт 993 – порт для безопасного соединения.
Протокол SMTP и его порты

Simple Mail Transfer Protocol (SMTP) – это стандартный протокол для отправки почтовых сообщений по сети интернет.

Данный протокол описан в RFC 821 и RFC 822, впервые опубликованных в августе 1982 года. В рамках данных RFC, формат адреса должен быть в формате имя_пользователя@доменное_имя . Доставка почты, аналогична работе обычной почтовой службы: например, письмо на адрес [email protected], будет интерпретирован так: ivan_ivanov – адрес, а merionet.ru – почтовый индекс. Если доменное имя получателя отличается от доменного имени отправителя, то MSA (Mail Submission Agent) отправит письмо через Mail Transfer Agent (MTA). Главная идея MTA в том, чтобы перенаправлять письма в другую доменную зону, по аналогии, как традиционная почты отправляет письма в другой город или область. MTA так же получает почту от других MTA.

Протокол SMTP использует следующие порты.

Аббревиатура POP3 в переводе с английского обозначает почтовый протокол 3-ей версии. Сущность данного термина заключается в том, что POP3 представляет собой протокол, предназначенный для работы с входящей корреспонденцией. Используя протокол POP3, почтовый клиент, в первую очередь, забирает письма, пришедшие на сервер, пересылает их на Ваш компьютер, а потом Вы можете работать с полученной корреспонденцией в почтовом клиенте, и Вам не придется дополнительно обращаться к почтовому серверу.

Протокол РОРЗ предоставляет пользователям возможность обращаться к своему серверу и изымать накопившиеся письма и сообщения. Важно знать, что пользователь может получить право доступа к РОР-серверу из любой точки доступа к Всемирной Сети. Для этого пользователя необходимо запустить почтовый агент (UA), который работает по протоколу РОРЗ, а затем выполнить его настройку для работы со своим почтовым сервером.

Таким образом, отдельный персональный компьютер находится во главе модели РОР. Данный компьютер функционирует исключительно как клиент постовой системы. Доставка сообщений клиенту осуществляется по протоколу РОР, а посылаются сообщения по-прежнему с использованием SMTP. На компьютере у пользователя имеются два агента-интерфейса к почтовой системе: отправки (SMTP) и доставки (РОР). Такую ситуация специалисты по разработке протокола РОР3 называют «раздельными агентами» (split UA). О концепции раздельных агентов коротко изложено в спецификации РОР3.

В протоколе РОР3 содержится информация о трех стадиях процесса получения корреспонденции:

  • авторизация
  • транзакция
  • обновление

Процесс авторизации начинается после того, как установлено соединение между сервером и клиентом РОР3. В рамках этой стадии клиент осуществляет собственную идентификацию для сервера. В случае успешной авторизации, сервер открывает почтовый ящик пользователя и после этого происходит процесс транзакции, во время которой клиент посылает серверу запрос о выдаче определенной информации (к примеру, список почтовых сообщений) или обращается к серверу с просьбой выполнить определенное действие (к примеру, выдать сообщение). Сеанс связи заканчивается на стадии обновления.

, Mail Daemon , Dovecot

Расширяемость Доп. команды (RFC 2449)

Общие сведения [ | ]

POP поддерживает простые требования «загрузи-и-удали» для доступа к удалённым почтовым ящикам. Хотя большая часть POP-клиентов предоставляет возможность оставить почту на сервере после загрузки, использующие POP клиенты обычно соединяются, извлекают все письма, сохраняют их на пользовательском компьютере как новые сообщения, удаляют их с сервера, после чего разъединяются.

Другие протоколы, в частности IMAP, предоставляют более полный и комплексный удалённый доступ к типичным операциям с почтовым ящиком. Многие клиенты электронной почты поддерживают как POP, так и IMAP; однако, гораздо меньше интернет-провайдеров поддерживают IMAP.

Версии POP2 был назначен порт 109.

Изначальная спецификация POP3 поддерживала только незашифрованный механизм входа в систему USER/PASS или управление доступом .rhosts . На данный момент, POP3 поддерживает различные методы аутентификации для предоставления разных уровней защиты от незаконного доступа к пользовательской почте. Большинство из них предоставлены механизмами расширения POP3. Клиенты POP3 поддерживают методы SASL через расширение AUTH. В рамках проекта «Афина» также был введён метод на основе Кербероса . RFC 1460 ввёл APOP в основной протокол. APOP - протокол вида «запрос/ответ» , использующий функцию хеширования MD5 . Среди клиентов, реализующих APOP, можно выделить Mozilla Thunderbird , Opera Mail , Eudora , Windows Live Mail, PowerMail, Apple Mail , и т. д.

Было высказано неофициальное предложение для спецификации «POP4», с рабочей реализацией сервера. Это предложение добавило основные функции управления папками, поддержку составных сообщений, а также управление флагами сообщений. Однако, никакого прогресса «POP4» не наблюдается с 2003 г.

Расширения [ | ]

Механизм расширений был предложен в RFC 2449 для размещения новых расширений, а также организованного объявления о поддержке опциональных команд, таких как TOP и UIDL. RFC не намеревались поощрять расширения и подтвердили, что роль POP3 заключается в предоставлении простой поддержки в основном для требования «загрузи-и-удали».

Расширения выводятся списком командой CAPA. За исключением APOP, все опциональные команды были включены в изначальный набор возможностей. Как и в стандарте ESMTP (RFC 5321), возможности, начинающиеся с "X", являются локальными.

STARTTLS [ | ]

Сравнение с IMAP [ | ]

Клиенты, которые оставляют почту на серверах, обыкновенно используют команду UIDL для получения текущего соответствия между количеством сообщений и сообщением, определяемым его уникальным идентификатором. Идентификатор произволен и может повторяться, если на ящике есть идентичные сообщения. Напротив, IMAP использует 32-битный уникальный идентификатор (UID), присваиваемый сообщениям по возрастанию (но не обязательно подряд) по мере их получения. При извлечении новых сообщений IMAP-клиенты запрашивают UID больший, чем наивысшее значение UID среди всех ранее извлечённых сообщений, в то время как POP-клиент должен выбирать из всей карты UIDL. Для больших почтовых ящиков это может потребовать значительной обработки.

MIME служит в качестве стандарта для вложений и не-ASCII текста в электронных сообщениях. Хотя ни POP3, ни SMTP не требуют MIME-отформатированного сообщения, по существу, все не-ASCII сообщения идут в формате MIME, поэтому POP-клиенты должны также «понимать» и использовать MIME. IMAP, по определению, принимает MIME-форматированные сообщения.

Состояния сеанса [ | ]

В протоколе POP3 предусмотрено 3 состояния сеанса:

Авторизация Клиент проходит процедуру Аутентификации . Транзакция Клиент получает информацию о состоянии почтового ящика, принимает и удаляет почту. Обновление Сервер удаляет выбранные письма и закрывает соединение.

Команды протокола [ | ]

Имя Аргументы Ограничения Возможные ответы
APOP [имя] Её поддержка не является обязательной * +OK maildrop has n message * -ERR password supplied for [имя] is incorrect
USER [имя] - * +OK name is a valid mailbox * -ERR never heard of mailbox name
PASS [пароль] Работает после успешной передачи имени почтового ящика * +OK maildrop locked and ready * -ERR invalid password * -ERR unable to lock maildrop
DELE [сообщение] * +OK message deleted * -ERR no such message
LIST [сообщение] Доступна после успешной аутентификации * +OK scan listing follows * -ERR no such message
NOOP - Доступна после успешной аутентификации +OK
RETR [сообщение] Доступна после успешной аутентификации * +OK message follows * -ERR no such message
RSET - Доступна после успешной аутентификации +OK
STAT - Доступна после успешной аутентификации +OK a b
TOP [сообщение] [количество строк] Доступна после успешной аутентификации * +OK n octets * -ERR no such message
QUIT - - +OK

APOP [ | ]

Команда служит для передачи серверу имени пользователя и зашифрованного пароля (digest).
[имя]
- хеш-сумма временной метки, конкатенированной с паролем пользователя, вычисленная по алгоритму MD5 . В случае поддержки этой команды временная метка получается при соединении с сервером.

USER [ | ]

Передаёт серверу имя пользователя.
[имя] - строка, указывающая имя почтового ящика.

PASS [ | ]

Передаёт серверу пароль почтового ящика.
[пароль] - пароль для почтового ящика.

DELE [ | ]

Сервер помечает указанное сообщение для удаления. Сообщения, помеченные на удаление, реально удаляются только после закрытия транзакции (закрытие транзакций происходит обычно после посыла команды QUIT, кроме этого, например, на серверах закрытие транзакций может происходить по истечении определённого времени, установленного сервером).
[сообщение] - номер сообщения.

LIST [ | ]

Если был передан аргумент, то сервер выдаёт информацию об указанном сообщении. Если аргумент не был передан, то сервер выдаёт информацию обо всех сообщениях, находящихся в почтовом ящике. Сообщения, помеченные для удаления, не перечисляются.
[сообщение] - номер сообщения (необязательный аргумент).

NOOP [ | ]

Сервер ничего не делает, всегда отвечает положительно.

RETR сообщение [ | ]

Сервер передаёт сообщение с указанным номером.
[сообщение] - номер сообщения.

RSET [ | ]

Этой командой производится откат транзакций внутри сессии. Например, если пользователь случайно пометил на удаление какие-либо сообщения, он может убрать эти пометки, отправив эту команду.

STAT [ | ]

Сервер возвращает количество сообщений в почтовом ящике и размер почтового ящика в октетах. Сообщения, помеченные как удалённые, при этом не учитываются.

TOP [ | ]

Сервер возвращает заголовки указанного сообщения, пустую строку и указанное количество первых строк тела сообщения.
[сообщение] - номер сообщения.
[количество строк] - сколько строк нужно вывести.

Рабочая станция может не иметь достаточных ресурсов для обеспечения непрерывной работы SMTP -сервера . Для домашних ЭВМ слишком дорого поддерживать связь с Интернет круглые сутки.

Но доступ к электронной почте необходим как для таких малых узлов, так и для индивидуальных ЭВМ. Для решения этой проблемы разработан протокол POP3 ( Post Office Protocol - Version 3, STD : 53. M. Rose, RFC-1939). Этот протокол обеспечивает доступ узла к базовому почтовому серверу.

POP3 не ставит целью предоставление широкого списка манипуляций с почтой. Почтовые сообщения принимаются почтовым сервером и сохраняются там, пока на рабочей станции клиента не будет запущено приложение POP3 . Это приложение устанавливает соединение с сервером и забирает сообщения оттуда. Почтовые сообщения на сервере стираются .

Более продвинутый и сложный протокол IMAP4 обсуждается в RFC-2060 ( порт 143). Об аутентификации в POP3 можно прочесть в документе RFC-1734.

В дальнейшем ЭВМ-клиентом будет называться машина, пользующаяся услугами POP3 , а ЭВМ-сервером - сторона, предлагающая услуги POP3 .

Когда пользователь ЭВМ-клиента хочет послать сообщение, он устанавливает SMTP связь с почтовым сервером непосредственно и посылает все, что нужно, через него. При этом ЭВМ POP3 - сервер не обязательно является почтовым сервером.

В исходный момент ЭВМ POP3 - сервер прослушивает TCP - порт 110. Если ЭВМ-клиент хочет воспользоваться услугами POP3 -сервера, то устанавливает с ним TCP - связь . По установлении связи POP3 - сервер посылает клиенту уведомление (например, +OK POP3 server ready ) и сессия переходит в фазу авторизации (см. также RFC-1734, -1957). После этого может производиться обмен командами и откликами.

Команды POP3 состоят из ключевых слов (3-4 символа), за которыми могут следовать аргументы. Каждая команда завершается парой символов CRLF. Как ключевые слова, так и аргументы могут содержать только печатаемые ASCII-символы. В качестве разделителя используются символы пробела. Каждый аргумент может содержать до 40 символов.

Сигнал отклика в POP3 содержит индикатор состояния и ключевое слово , за которым может следовать дополнительная информация . Отклик также завершается кодовой последовательностью CRLF. Длина отклика не превышает 512 символов, включая CRLF. Существует два индикатора состояния: положительный - "+OK" и отрицательный - "- ERR " (все символы прописные).

Отклики на некоторые команды могут содержать несколько строк. В этом случае последняя строка содержит код завершения 046 ("."), за которым следует CRLF.

На практике многострочные отклики для исключения имитации завершаются последовательностью "CRLF.CRLF".

В процессе авторизации клиент должен представить себя серверу, передав имя и пароль (возможен вариант посылки команды APOP). Если авторизация успешно завершена, сессия переходит в состояние транзакции ( TRANSACTION ). При получении от клиента команды QUIT сессия переходит в состояние UPDATE , при этом все ресурсы освобождаются и TCP - связь разрывается.

На синтаксически неузнанные и неверные команды сервер реагирует, посылая отрицательный индикатор состояния.

POP3 - сервер может быть снабжен таймером пассивного состояния (10 мин.), который осуществляет автоматическое прерывание сессии. Приход любой команды со стороны клиента сбрасывает этот таймер в нуль.

Сервер нумерует все передаваемые сообщения из своего почтового ящика и определяет их длину. Положительный отклик начинается с +OK, за ним следует пробел , номер сообщения, еще один пробел и длина сообщения в октетах. Завершается отклик последовательностью CRLF. Переданные сообщения удаляются из почтового ящика сервера. Все сообщения, передаваемые во время сессии POP3 , должны следовать рекомендациям формата Интернет сообщений .

В состоянии транзакции клиент может посылать серверу последовательность POP3 -команд, на каждую из которых сервер должен послать отклик. Далее следует краткое описание команд, используемых в состоянии транзакция .

LIST [сообщение]

Аргументы : номер сообщения ( опционно ), который не может относиться к сообщению, помеченному как удаленное. Команда может быть выдана только в режиме TRANSACTION . При наличии аргумента сервер выдает положительный отклик, содержащий информационную строку сообщения. Такая строка называется скэн-листингом сообщения ( scan