AUTH TLS
AUTH TLS — это расширение протокола SMTP (Simple Mail Transfer Protocol), позволяющее устанавливать защищённое TLS-соединение (Transport Layer Security) на уже существующем незашифрованном канале связи. Данный механизм, описанный в RFC 3207, применяется для шифрования почтового трафика между почтовыми клиентами (MUA) и серверами исходящей почты (MSA/MTA), а также между самими почтовыми серверами (MTA-MTA). В отличие от метода STARTTLS, который инициирует шифрование в начале сессии, AUTH TLS предполагает, что клиент сначала проходит аутентификацию (обычно по протоколу SMTP AUTH), а затем, после успешной проверки учётных данных, сервер инициирует переключение на TLS. На практике термин «AUTH TLS» часто используется как синоним для STARTTLS, хотя технически это разные последовательности действий.
История
Развитие протокола SMTP началось в 1982 году (RFC 821), когда шифрование не предусматривалось. С ростом угроз перехвата трафика и подмены данных возникла необходимость в защите. В 1999 году вышло расширение STARTTLS (RFC 2487, позже заменён на RFC 3207), которое позволяло переключаться на TLS внутри той же TCP-соединения после начального приветствия. Однако STARTTLS не решал проблему аутентификации перед шифрованием: клиент мог быть анонимным до установки TLS.
В 2002 году был предложен механизм AUTH TLS, который сочетал аутентификацию (например, по паролю) с последующим шифрованием. Идея заключалась в том, чтобы сначала проверить легитимность клиента, а затем защитить весь последующий трафик. Этот подход был реализован в некоторых почтовых серверах (например, Postfix, Exim) как альтернатива STARTTLS. В 2008 году RFC 4954 формализовал расширение SMTP AUTH, но не обязал его сочетать с TLS. AUTH TLS остаётся менее распространённым, чем STARTTLS, и чаще используется в корпоративных конфигурациях.
Принцип работы
Процесс AUTH TLS включает несколько этапов:
- Установка TCP-соединения. Клиент (MUA или другой MTA) подключается к серверу по стандартному порту 25 (SMTP), 587 (MSA) или 465 (SMTPS, устаревший).
- Приветствие сервера. Сервер отправляет строку
220 <домен> ESMTP. - Аутентификация. Клиент отправляет команду
AUTH <механизм> <учётные данные>(например,AUTH LOGINилиAUTH PLAIN). Сервер проверяет логин и пароль. В этот момент трафик ещё не зашифрован, поэтому пароль передаётся в открытом виде (если не используется защищённый механизм, например, CRAM-MD5). - Инициирование TLS. После успешной аутентификации сервер отправляет клиенту команду
250 AUTH TLS. Клиент отвечаетSTARTTLS(илиAUTH TLSв некоторых реализациях). Сервер подтверждает220 Ready to start TLS. - Установка TLS-туннеля. Клиент и сервер обмениваются сертификатами, согласовывают шифры и устанавливают зашифрованное соединение. Весь последующий SMTP-диалог (команды
MAIL FROM,RCPT TO,DATAи т.д.) шифруется. - Передача почты. Клиент отправляет письмо, сервер принимает его.
Ключевое отличие от STARTTLS: в STARTTLS аутентификация происходит после установки TLS, а в AUTH TLS — до. Это даёт серверу возможность отклонять неизвестных клиентов до начала шифрования, снижая нагрузку на ресурсы.
Классификация
AUTH TLS можно классифицировать по типу аутентификации и способу реализации:
По типу аутентификации
- Парольные механизмы: PLAIN, LOGIN, CRAM-MD5, DIGEST-MD5. PLAIN и LOGIN передают пароль в открытом виде до шифрования, что уязвимо для перехвата. CRAM-MD5 и DIGEST-MD5 используют хеширование, но не защищают от атак «человек посередине» (MITM) без TLS.
- Сертификатные механизмы: X.509. Клиент предъявляет сертификат, сервер проверяет его. Более безопасен, но требует инфраструктуры открытых ключей (PKI).
- Механизмы на основе токенов: OAuth 2.0 (XOAUTH2). Используется в сервисах Gmail, Outlook. Аутентификация через токен доступа, затем TLS.
По способу реализации
- Явный AUTH TLS (explicit): клиент и сервер явно договариваются о переходе на TLS после аутентификации. Описан в RFC 3207.
- Неявный AUTH TLS (implicit): используется на порту 465 (SMTPS). TLS устанавливается сразу после TCP-соединения, аутентификация — внутри шифрованного канала. Этот метод устарел, но до сих пор поддерживается некоторыми серверами.
Устройство и характеристики
Протокол SMTP и расширения
AUTH TLS является расширением базового SMTP (RFC 5321). Для его работы сервер должен поддерживать:
- Команду
EHLO(Extended HELO) для объявления возможностей. - Команду
AUTH(RFC 4954) для аутентификации. - Команду
STARTTLS(RFC 3207) для переключения на TLS.
Клиент должен уметь обрабатывать ответы сервера, включая 250 AUTH TLS и 220 Ready to start TLS.
Шифрование
Используется протокол TLS, обычно версии 1.2 или 1.3. Шифры включают AES, ChaCha20, RSA, ECDHE. Сертификаты могут быть самоподписанными или выданными центром сертификации. При AUTH TLS сертификат часто не проверяется строго, так как аутентификация уже выполнена, но для безопасности рекомендуется проверка.
Параметры безопасности
- Защита от перехвата: TLS шифрует данные, включая содержимое письма, заголовки и вложения.
- Защита от подмены: аутентификация предотвращает отправку писем от имени неавторизованных пользователей.
- Уязвимости: если аутентификация происходит до TLS, пароль может быть перехвачен. Рекомендуется использовать защищённые механизмы (например, CRAM-MD5) или переходить на STARTTLS.
Применение
AUTH TLS применяется в следующих сценариях:
- Корпоративные почтовые системы: компании настраивают серверы (например, Microsoft Exchange, Postfix) для принудительной аутентификации клиентов перед шифрованием. Это позволяет блокировать спам-ботов, которые не проходят аутентификацию.
- Почтовые серверы провайдеров: некоторые интернет-провайдеры используют AUTH TLS для аутентификации своих пользователей перед отправкой почты через релей (outbound SMTP).
- MTA-MTA: при передаче писем между серверами (например, от сервера отправителя к серверу получателя) AUTH TLS используется редко, так как чаще применяется STARTTLS или DANE (DNS-based Authentication of Named Entities).
- Специализированные сервисы: в некоторых системах рассылки (например, Mailchimp) AUTH TLS применяется для аутентификации API-клиентов.
Примеры реализации
Postfix
В почтовом сервере Postfix AUTH TLS настраивается в файле /etc/postfix/main.cf: `` smtpd_tls_auth_only = yes smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_tls_chain_files = /etc/ssl/certs/server.crt, /etc/ssl/private/server.key ` Параметр smtpd_tls_auth_only` заставляет сервер требовать аутентификацию до TLS.
Exim
В Exim используется конфигурация: `` auth_advertise_hosts = tls_advertise_hosts = tls_require_ciphers = HIGH:!aNULL:!MD5 ` AUTH TLS активируется через tls_on_connect_ports = 465 (неявный) или через tls_advertise_hosts` (явный).
Критика
Основные недостатки AUTH TLS:
- Уязвимость к перехвату пароля: аутентификация до TLS означает, что логин и пароль передаются в открытом виде (если не используется защищённый механизм). Это делает систему уязвимой для атак MITM.
- Сложность реализации: не все почтовые клиенты поддерживают AUTH TLS. Например, Outlook и Thunderbird предпочитают STARTTLS.
- Избыточность: STARTTLS решает те же задачи более эффективно, так как шифрование устанавливается до аутентификации. AUTH TLS считается устаревшим подходом.
- Несовместимость: некоторые серверы не распознают команду
AUTH TLSи отвечают ошибкой. Это требует настройки клиента.
Современные рекомендации (RFC 8314) предлагают использовать порт 587 с STARTTLS (или порт 465 с неявным TLS) и аутентификацию внутри шифрованного канала. AUTH TLS остаётся нишевым решением.
Источники
- RFC 3207 — «SMTP Service Extension for Secure SMTP over Transport Layer Security»
- RFC 4954 — «SMTP Service Extension for Authentication»
- RFC 5321 — «Simple Mail Transfer Protocol»
- RFC 8314 — «Cleartext Considered Obsolete: Use of Transport Layer Security (TLS) for Email Submission and Access»
- Postfix Documentation — «TLS Support»
- Exim Specification — «Encrypted SMTP connections»
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →