STARTTLS
STARTTLS это расширение обычного протокола текстового обмена, которое позволяет создать зашифрованное соединение (TLS или SSL) прямо поверх обычного TCP-соединения вместо открытия для шифрованного соединения отдельного порта.
STARTTLS для IMAP и POP3 определён в RFC 2595, для SMTP — в RFC 3207, для FTP — в RFC 4217, для XMPP — в RFC 6120, для LDAP — в RFC 2830 и для NNTP — в RFC 4642.
Уровни
TLS это независимый от уровня приложений протокол; в терминах RFC 5246
- Высокоуровневые протоколы могут располагаться поверх прозрачного TLS протокола. Стандарт TLS не описывает как другие протоколы взаимодействуют с TLS, он не описывает как инициализировать рукопожатие TLS и как использовать обмен сертификатами аутентификации. Этим занимаются протоколы, запущенные поверх TLS.[1]
Для использования TLS необходимо использовать библиотеки, в которые уже встроен TLS. Например, расширение RFC 3207 SMTP показывает в следующем описании протокола, как клиент и сервер запускают зашифрованную сессию:[2]
S: <waits for connection on TCP port 25> C: <opens connection> S: 220 mail.example.org ESMTP service ready C: EHLO client.example.org S: 250-mail.example.org offers a warm hug of welcome S: 250 STARTTLS C: STARTTLS S: 220 Go ahead C: <starts TLS negotiation> C & S: <negotiate a TLS session> C & S: <check result of negotiation> C: EHLO client.example.org[3] . . .
Последняя команда EHLO проходит через защищённый канал. Отметим, что возможность аутентификации не обязательна для SMTP, и возможные ответы сервера могут не распознаваться как AUTH PLAIN расширения SMTP, которых нет в обычном текстовом обмене.
SSL-порты
Перед тем, как STARTTLS появился, многие TCP порты были назначены для SSL-шифрованного соединения многих серверов. TLS устанавливает безопасное соединение посредством коммуникационного потока идентичного старому, не шифрованному протоколу. С момента внедрения более эффективного STARTTLS, не рекомендуется использовать дефицитные номера портов, что позволяет упростить конфигурацию устройств[4]. Некоторые примеры:
Protocol | Purpose | Normal port | SSL variant | SSL port |
---|---|---|---|---|
HTTP | Web server | 80 | HTTPS | 443 |
SMTP | Send email | 25 | SMTPS | 465 |
IMAP | Read email | 143 | IMAPS | 993 |
Примечания
- Tim Dierks; Eric Rescorla. The Transport Layer Security (TLS) Protocol (недоступная ссылка). RFC Editor (August 2008). Дата обращения: 8 октября 2009. Архивировано 10 апреля 2013 года.
- Paul Hoffman. SMTP Service Extension for Secure SMTP over Transport Layer Security (недоступная ссылка). RFC Editor (February 2002). Дата обращения: 8 октября 2009. Архивировано 10 апреля 2013 года.
- The last line in the example added for clarity. See e.g. the thread started by Paul Smith. STARTTLS & EHLO (недоступная ссылка). ietf-smtp mailing list. Internet Mail Consortium (26 января 2009). Дата обращения: 8 октября 2009. Архивировано 10 апреля 2013 года.
- C. Newman. Using TLS with IMAP, POP3 and ACAP . RFC (Июнь 1999). Дата обращения: 27 августа 2014.
Ссылки
- SMTP TLS Tests and Tools (the «Receiver Test» shows dialogs like the one above)