Перейти до вмісту

SMTP

Матеріал з Вікіпедії — вільної енциклопедії.

Simple Mail Transfer Protocol (SMTP, Простий Протокол Пересилання Пошти) — це комунікаційний протокол для пересилання електронної пошти.

Як Інтернет-стандарт, SMTP вперше визначений у 1982 в RFC 821 та оновлений у 2008 в RFC 5321 до ESMTP (Extended SMTP, укр. Розширений SMTP), який і використовується в даний час.[коли?] Поштові сервери та інші агенти передачі повідомлень використовують SMTP для надсилання та отримання поштових повідомлень.

Пропрієтарні (власницькі) системи, такі як Microsoft Exchange Server і HCL Domino, а також системи вебпошти, такі як Outlook.com, Gmail та Yahoo! Mail можуть використовувати нестандартні протоколи всередині системи, але всі вони вико��истовують SMTP під час надсилання або отримання електронної пошти за межами власної системи. SMTP-сервери зазвичай використовують TCP та порт 25, який призначений IANA для SMTP. SMTP з'єднання з SSL шифруванням використовують порт 587 або 465.

У той час, як поштові сервери та інші агенти передачі повідомлень використовують SMTP для надсилання та отримання поштових повідомлень, працюючі на користувацькому рівні клієнтські поштові програми зазвичай використовують SMTP лише для надсилання повідомлень на поштовий сервер для ретрансляції, використовуючи, за замовчуванням порт 587 або 465 на поштовому сервері, відповідно до RFC 8314. Для отримання повідомлень клієнтські програми використовують протоколи POP або IMAP, які є стандартом, але пропрієтарні сервери також часто реалізують власні протоколи, наприклад Exchange ActiveSync.

Опис протоколу

[ред. | ред. код]

SMTP — порівняно простий, текстовий протокол, в якому з'єднання відбувається завжди за ініціативи відправника. SMTP — синхронний протокол і складається із серії команд, що посилаються клієнтом та відповідей сервера. Відправником зазвичай є поштовий клієнт кінцевого користувача або поштовий сервер.

SMTP було розроблено як протокол транспортування і доставки, тому системи, що використовують SMTP, завжди повинні бути у робочому стані. Протокол часто використовується для передачі повідомлень клієнтами електронної пошти, які, проте, не мають можливості діяти як сервер.

Подальший розвиток

[ред. | ред. код]

Розширення STARTTLS (стандарт ухвалений в 2002 році як RFC 3207) додали підтримку протоколу TLS. Попри широке поширення, дані розширення не розв'язують всіх проблем і мають низку недоліків[1].

Сеанс TLS може стати жертвою «атаки на пониження». Під час «рукостискання» при відкритті сеансу SMTP, команда STARTTLS відправляється з однієї машини на іншу у відкритому вигляді. Після отримання цієї команди, віддалена машина має у відповідь розпочати відкриття сеансу TLS до продовження сеансу SMTP. Проте, зловмисник може скористатись атакою «людина посередині» та перехопити і викинути команду STARTTLS, тоді сеанс SMTP буде відкритий без застосування засобів шифрування TLS[1].

Другим недоліком є те, що після початку «рукостискання» (відкриття сеансу) STARTTLS, клієнт не намагається верифікувати сертифікати TLS сервера. Це також дозволяє скоїти успішну атаку «людини посередині» — підмінити справжній сертифікат на підроблений[1].

В 2016 році були запропоновані розширення SMTP Strict Transport Security (сувора безпека транспорту), які дещо схожі на аналог для протоколу HTTPS Strict Transport Security (затверджений у RFC 6797). Запропонований стандарт дозволятиме серверам поширювати відомості STS Policy (політику суворої безпеки транспорту) про те, як поштовим агентам під'єднуватись із використанням TLS, як їм перевіряти сертифікат TLS сервера, і що їм робити, якщо не вдається успішно встановити сеанс TLS[1].

Передбачено, що сервер поширюватиме відомості STS Policy або через ресурс з URL https://example.org/.well-known/smtp-sts, або ж як текстове поле (TXT) в базі даних DNS з іменем _smtp_sts.example.org (example.org — приклад доменного імені поштового сервера)[1].

Примітки

[ред. | ред. код]
  1. а б в г д Nathan Willis (20 квітня 2016). SMTP Strict Transport Security. LWN.net. Архів оригіналу за 1 травня 2016. Процитовано 30 травня 2016.

Див. також

[ред. | ред. код]

Посилання

[ред. | ред. код]