
Рассмотрим следующее расширение протокола SMTP, описанного в
RFC2554. Данное расширение предполагает возможность авторизации клиента
для сервера, т.е. на первый взгляд, призвано решить одну из основных проблем
протокола SMTP, а именно отсутствие авторизации. Рассмотрим данное
расширение, а затем проанализируем, можно ли используя его обеспечить
решение рассмотренных выше проблем SMTP, связанных с отправкой
нежелательной корреспонденции (спама). Данное расширение называется
Authentication, сервер, поддерживающий данное расширение включает в отклик
на команду EHLO ключевое слово AUTH с параметрами. В качестве параметров
выступают перечисленные через пробел названия методов авторизации,
поддерживаемых сервером, например:
250 AUTH LOGIN NTLM CRAM-MD5
В данном примере сервер сообщает клиенту, что поддерживает
расширение AUTH, при этом поддерживается три метода авторизации: LOGIN,
NTLM, CRAM-MD5. Сервер, поддерживающий данное расширение, поддерживает
новую SMTP команду AUTH, с помощью которой клиент может выполнить
авторизацию на сервере. После успешного завершения команды AUTH клиент в
данном сеансе не должен снова применять команду AUTH, в этом случае сервер
должен отвечать откликом 503 в ответ на все последующие команды AUTH.
Клиент, получая в отклике на команду EHLO список поддерживаемых сервером
методов авторизации, должен выбрать подходящий механизм авторизации и
передать серверу команду AUTH с выбранным методом авторизации в качестве
параметра, так же в качестве второго параметра клиент может передать
некоторые данные, которые сервер будет использовать в процессе авторизации.
В том случае, если клиент использует метод авторизации, не поддерживаемый