Электронная почта — старейшая работающая до сих пор служба интернета (RFC 561, 1973). Состоит из трёх ролей с тремя протоколами:
| Роль | Протокол | Порты |
|---|---|---|
| Отправка от клиента / MTA-к-MTA | SMTP | 25 · 587 (submission) · 465 (SMTPS) |
| Чтение с сервера, «онлайн» | IMAP | 143 · 993 (imaps) |
| Скачка с сервера, «оффлайн» | POP3 | 110 · 995 (pop3s) |
Как проходит письмо
[Отправитель]
│ MUA (Mail User Agent, клиент)
│ SMTP submission (порт 587)
▼
[MTA отправителя] (mail.sender.com)
│ SMTP relay (порт 25) с TLS если возможно
│ DNS: MX-запись recipient.com → mx1.recipient.com
▼
[MTA получателя] (mx1.recipient.com)
│ MDA (Mail Delivery Agent) кладёт в ящик
▼
[Хранилище]
│ IMAP или POP3
▼
[Получатель] MUA
Ключевые компоненты
- MUA (Mail User Agent) — клиент: Outlook, Thunderbird, Apple Mail, Gmail-web.
- MSA (Mail Submission Agent) — принимает от MUA, порт 587 с аутентификацией.
- MTA (Mail Transfer Agent) — сервер-к-серверу, порт 25. Postfix, Exim, Sendmail.
- MDA (Mail Delivery Agent) — доставляет в почтовый ящик. Dovecot, Cyrus.
DNS-записи для почты
| Запись | Назначение |
|---|---|
| MX | Куда доставлять почту для домена (адрес MTA). |
| SPF (TXT) | Список IP, с которых разрешена отправка от этого домена. |
| DKIM (TXT) | Публичный ключ для подписи писем сервером. |
| DMARC (TXT) | Что делать если SPF+DKIM провалились: reject, quarantine, none. |
| MTA-STS (TXT+HTTPS) | Политика обязательного TLS. |
| TLS-RPT (TXT) | Куда слать отчёты об ошибках TLS. |
| PTR | Reverse DNS. Без него письмо в спам. |
Проблемы email
- Спам. Основная головная боль. Спам-фильтры на ML, чёрные списки IP (Spamhaus), reputation systems (Talos, SORBS).
- Спуфинг. SMTP не проверяет отправителя. Решают SPF+DKIM+DMARC — но всё ещё много писем без них.
- Приватность. Классический SMTP без шифрования. STARTTLS часто есть, но опционально. DANE/MTA-STS решают.
- Централизация. ~70% почты идёт через Google, Microsoft, Apple. Мелкий MTA имеет большой шанс попасть в спам.
Безопасность
- STARTTLS — оппортунистическое TLS на 25/587/143/110. Опционально, downgrade возможен.
- Implicit TLS (SMTPS 465, IMAPS 993, POP3S 995) — TLS сразу, без plaintext-старта.
- PGP / S/MIME — end-to-end шифрование содержимого. Плохо распространены.
- MTA-STS — принуждение TLS на уровне DNS.
- DANE — привязка cert через DNSSEC.