ЕЩЕ
О SMTP
SMTP
(Simple Message Transfer Protocol), или в дословном переводе простой
протокол передачи сообщений, был рожден в среде UNIX и предназначался
исключительно для общения между собой почтовых серверов. В терминах
модели OSI протокол SMTP, хотя и находится на уровне приложений, способен
общаться только с TCP/IP, расположенном на четвертом, транспортном
уровне.
Рис. 1.5. SMTP протокол в терминах модели OSI
Отсутствие
поддержки других сетевых протоколов, однако, не помешало SMTP получить
очень широкое распространение. В связи с бурным ростом Internet, на
сегодняшний момент SMTP, как протокол передачи сообщений, приобрел
статус стандарта де-факто. Практически все производители пакетов электронной
почты либо поддерживают протокол SMTP как базовый, либо на уровне
шлюзов. В большой степени такая популярность объясняется сравнительной
простотой реализации и широкими возможностями расширяемости без ущерба
для обратной совместимости с существующими версиями почтовых систем.
Немаловажным фактором является также широкая доступность спецификаций
и отсутствие необходимости отчислять средства за их использование.
SMTP-системы
за последнее время активно развивались в следующих направлениях:
расширение
протокола общения сервер-сервер (собственно SMTP);
создание и улучшение протокола общения клиент-сервер (POP3, IMAP4);
внедрение и расширение нового формата сообщений (MIME).
Начальная версия протокола SMTP поддерживала ограниченный набор команд
и сервисов для приема и передачи сообщений. В последнее время был
разработан его расширенный вариант (Extended или ESMTP), обеспечивающий
стандартную возможность дальнейшего расширения и поддержку таких функций
как подтверждение доставки (Delivery Notification Request или DNR),
согласование максимального допустимого размера сообщений, передаваемых
между серверами и принудительная инициация передачи накопленной почты
(dequeue). Однако одной из слабых сторон на данный момент SMTP было
и продолжает быть отсутствие возможности аутентификации входящих соединений,
шифрования диалога и потока передачи данных между серверами.
Отсутствие средств аутентификации входящих соединений не позволило
использовать SMTP для обслуживания клиентского доступа. Классическая
почтовая SMTP-система требует наличия файлового доступа клиента к
своему почтовому ящику для получения и работы с сообщениями. Для реализации
работы в режиме клиент-сервер был создан протокол обслуживания почтового
офиса (Post Office Protocol или POP). Наиболее удачной оказалась версия
POP3, широко используемая в современных SMTP-системах. Наиболее продвинутые
реализации поддерживают аутентификацию с шифрованием имени и пароля
и шифрование трафика по протоколу Secure Socket Layer (SSL). Однако,
при использовании протокола POP3 отсутствует возможность просмотра
характеристик сообщения без предварительной загрузки его на станцию
клиента. Для решения проблемы просмотра и манипуляции свойствами почтового
сообщения непосредственно на сервере, а также преодоления ряда других
функциональных ограничений был разработан протокол IMAP4, его поддержка
в большинстве коммерческих систем ожидается в ближайшем будущем. Следует
заметить, что как для случая использования классического клиента (команда
mail), так и для случая применения POP3 или IMAP4 отправка подготовленных
клиентом сообщений требует наличия сервера SMTP. На рисунке 1.6 приведена
схема представления типичной SMTP-системы, использующей как традиционный
для ОС UNIX файловый метод доступа к почтовому ящику, так и доступ
по протоколам POP3 и IMAP4.
Изначально SMTP-системы рассчитывались на передачу информации исключительно
в текстовом виде и не были ориентированы на передачу символов национальных
алфавитов, т.е. использовали 7-битный набор символов. Для решения
проблемы передачи двоичных файлов был разработан стандарт UUENCODE,
позволяющий внедрять предварительно преобразованные из бинарного в
текстовый вид произвольные данные непосредственно в текст сообщения.
Однако всеобъемлющим данный подход назвать было трудно, ибо в общем
случае никакой информации о природе вложения (типе передаваемых данных
и породившем их приложении) принимающая сторона не имела. По мере
расширения сети Internet, усложнения программного обеспечения и активного
внедрения мультимедиа назрела необходимость создания универсального
формата типизации и представления двоичных данных и текста, содержащего
национальные символы. Таким универсальным форматом стали многофункциональные
расширения почты Internet (Multipurpose Internet Mail Extensions или
MIME). Формат MIME оказался чрезвычайно удачным, поскольку в него
были заложены возможности неограниченного расширения, как поддерживаемых
типов данных, так и национальных кодировок.
Рис. 1.6. Схема типичной SMTP-системы с поддержкой POP3 и IMAP4
Сообщение SMTP, подобно сообщению X.400, использует понятия конверта
и содержимого, которое в свою очередь имеет заголовок и тело. Функциональное
назначение их полностью идентично. Состав полей в заголовке определяется
форматом тела сообщения (UUENCODE или MIME). Ни одно поле не является
обязательным, но, как правило, указываются такие поля как, кому (To:),
от кого (From:) и тема (Subject:). В случае использования формата
MIME, в заголовке обязательно должна присутствовать строка "MIME-Version:
1.0". Полный перечень возможных полей в заголовке сообщения SMTP содержится
в RFC 2076 [18].
Отличительной
особенностью SMTP-систем является то, что в них, как правило, обеспечивается
фактическая независимость процесса передачи от формата содержимого.
За интерпретацию содержимого должна отвечать только клиентская программа
(mail reader). Однако платой за совместимость на уровне MTA в данном
случае является неэффективность передачи любых нетекстовых данных
или сообщений, использующих символы национальных алфавитов, вследствие
предварительной трансляции информации в текстовое представление. В
зависимости от используемого алгоритма преобразования размер фактически
передаваемых данных может возрасти на 30-100%.
Немаловажной
проблемой при передаче данных через SMTP-системы является обеспечение
конфиденциальности. Поскольку сообщения передаются в текстовом виде,
они могут быть легко перехвачены и произвольным образом изменены.
Для решения проблем с защитой информации был создан стандарт на шифрование
тела сообщения, так называемый засекреченные многофункциональные расширения
почты (Secure MIME или S/MIME). Однако, этот протокол не в состоянии
защитить от перехвата заголовки сообщений.