Как письмо путешествует от отправителя к получателю
Вы нажимаете «Отправить», и через несколько секунд письмо появляется на другом конце света. Кажется, что это происходит мгновенно и напрямую. На самом деле письмо путешествует от сервера к серверу — примерно как бумажное письмо попадает из почтового ящика в сортировочный центр. Если понять этот путь, становится ясно, откуда берётся спам и как можно установить его источник.
Электронное письмо — это письмо, а не телефонный звонок
Когда вы открываете веб-страницу, ваш браузер и сайт общаются в реальном времени, как по телефону: браузер задаёт вопрос, сайт сразу отвечает. Если сайт не работает, вы сразу видите сообщение об ошибке.
Электронная почта устроена иначе: она асинхронна, как обычная почта. Никто не ждёт ответа на другом конце провода. Каждый сервер принимает письмо, сохраняет его у себя, а затем передаёт дальше, когда появляется возможность. Если сервер получателя не работает, письмо не теряется: сервер отправки регулярно пробует снова в течение нескольких дней (обычно 4–5). Если доставить так и не удаётся, он присылает вам уведомление о недоставке — аналог пометки «адресат не найден» на бумажном письме.
Шесть этапов пути
- Написать. Вы пишете письмо в почтовой программе. Специалисты называют её MUA (Mail User Agent): это ваши бумага и ручка.
- Опустить в ящик. Программа передаёт письмо серверу отправки вашего провайдера, предварительно проверив ваш пароль. Это почтовый ящик на углу улицы.
- Найти адрес. Сервер отправки смотрит на домен получателя (всё, что после @) и спрашивает у справочника интернета — DNS, — какой сервер принимает почту для этого домена. Эта запись называется MX: это почтовый индекс электронного письма.
- Доставить. Сервер отправки связывается с сервером получателя и передаёт ему письмо по протоколу SMTP. Такие транспортные серверы называются MTA (Mail Transfer Agent): это сортировочные центры. Иногда их несколько подряд (антиспам-шлюз, корпоративный сервер…). Каждый добавляет в начало заголовка свой штамп — строку
Received. - Разложить. После проверок (антиспам, антивирус) MDA (Mail Delivery Agent) кладёт письмо в нужную папку: «Входящие» или «Спам». Это почтальон.
- Прочитать. Получатель забирает почту своей программой, которая работает по IMAP или POP, либо через веб-почту в браузере.
| Обычная почта | Электронная почта | Технический термин |
|---|---|---|
| Написать письмо | Составить сообщение | MUA |
| Почтовый ящик на улице | Сервер отправки вашего провайдера | MSA / MTA |
| Почтовый индекс | Запись, указывающая сервер получателя | DNS, MX |
| Сортировочные центры | Серверы-ретрансляторы | MTA, SMTP |
| Почтовые штемпели | Строки, добавленные каждым сервером | Received |
| Почтальон | Раскладка в ящик получателя | MDA |
| Адрес на конверте | Адрес, используемый при передаче | Конверт SMTP |
| Шапка письма | Поле «От:», которое показывает почтовая программа | Поле From |
Три способа отправить, один маршрут
Письмо может уйти из трёх разных мест. Меняется только начало пути:
- Почтовая программа (Thunderbird, Outlook, Apple Mail, почтовое приложение на телефоне): она напрямую говорит с сервером отправки на SMTP — языке электронной почты.
- Веб-почта (например, Gmail или Outlook.com в браузере): ваш браузер говорит с сайтом провайдера на HTTP — языке веба. Затем уже сам провайдер передаёт письмо своему почтовому серверу по SMTP.
- Программа на сервере: форма «Связаться с нами» на PHP, интернет-магазин, рассылающий счета, новостная рассылка… Программа передаёт письмо почтовому ПО сервера, и никто при этом не сидит за клавиатурой.
Во всех трёх случаях письмо в итоге попадает к MTA, а затем к MDA получателя. Дальше путь абсолютно одинаковый.
Знаменитый порт 25 и почему ваш роутер его блокирует
Сервер похож на большое здание: у каждой службы там своя пронумерованная дверь, которая называется портом. Веб работает через дверь 443 (или 80), а с 1982 года почтовые серверы передают друг другу письма через дверь 25.
Ваша почтовая программа обычно этой дверью не пользуется: она сдаёт письма провайдеру через порт 587 (или 465), подтверждая вход вашим паролем.
Многие интернет-провайдеры блокируют исходящий порт 25 для домашних подключений. Причина проста: иначе заражённый вирусом компьютер мог бы рассылать тысячи спам-писем напрямую серверам получателей, минуя любые проверки. Каждая квартира превратилась бы в потенциального спамера. Закрыв эту дверь, провайдер заставляет всю почту идти через свой сервер отправки, который проверяет отправителя и ограничивает число писем.
Поэтому же мошенники предпочитают арендовать сервер или взломать чужой: там порт 25 открыт. Подробнее об этих приёмах — в руководстве Фишинг: как мошенники доставляют свои письма.
Письмо мошенника проходит точно тот же путь
В электронной почте всё стандартизировано: одни и те же правила действуют во всём мире, и именно поэтому любой может написать любому. Значит, мошенническое письмо проходит ровно тот же путь, что и честное. Меняется только точка отправления: сервер, арендованный на пару дней, взломанный сайт, украденный аккаунт.
И, как у бумажного письма, есть конверт, по которому серверы доставляют сообщение, и есть само письмо с заголовком «От:», который вы видите на экране. Ничто не обязывает их совпадать. Поэтому отображаемого отправителя так легко подделать.
А вот штампы Received, которые добавляют принимающие серверы — и прежде всего ваш собственный, — говорят правду о происхождении письма. Именно там Baitback ищет IP-адрес сервера, отправившего письмо.
А вы знали?
- Первое электронное письмо отправили в 1971 году. Американский инженер Рэй Томлинсон переслал его между двумя компьютерами, стоявшими рядом. Именно он выбрал знак @, чтобы отделить имя человека от имени машины.
- Поначалу — только латиница! Протокол SMTP, опубликованный в 1982 году, передавал лишь простой текст английскими буквами: ни кириллицы, ни букв с диакритикой, ни вложений, ни картинок. Всё это появилось со стандартом MIME, начиная с 1992 года: он превращает любой файл в текст, чтобы тот мог путешествовать. Забавное следствие: вложение в пути «толстеет» примерно на треть.
- Стандарт не задаёт максимального размера. Ограничения устанавливают сами серверы: чаще всего от 20 до 50 МБ на письмо, запрет некоторых типов файлов (
.exe,.js…), квота на ящик, лимит отправок в день. Стандарт требует только… чтобы строка не превышала 998 символов. - Адреса не только латиницей. С 2012 года стандарт позволяет адреса вроде
josé@café.exampleили на кириллице. Но многие серверы до сих пор принимают их плохо. - Разговор открытым текстом. Серверы общаются текстовыми командами, которые почти можно набрать вручную. Вот упрощённый обмен (C — сервер, который отправляет, S — сервер, который принимает):
S: 220 mx.destinataire.example ESMTP
C: EHLO mail.expediteur.example
S: 250 mx.destinataire.example
C: MAIL FROM:<alice@expediteur.example>
S: 250 OK
C: RCPT TO:<bob@destinataire.example>
S: 250 OK
C: DATA
S: 354 End data with <CR><LF>.<CR><LF>
C: From: Alice <alice@expediteur.example>
C: Subject: Bonjour !
C:
C: Salut Bob !
C: .
S: 250 OK: queued
C: QUIT
Строки MAIL FROM и RCPT TO образуют конверт; строка From: — часть самого письма. Сообщение заканчивается строкой, в которой стоит только точка.
- Письмо не идёт напрямую от отправителя к получателю: оно проходит через несколько серверов, как бумажное письмо через сортировочные центры.
- Электронная почта асинхронна: каждый сервер сохраняет письмо, затем передаёт его дальше и при необходимости повторяет попытки несколько дней.
- Почтовая программа (SMTP), веб-почта (HTTP) или скрипт: три возможных старта и дальше один маршрут.
- Порт 25 используется для передачи между серверами; многие провайдеры блокируют его для домашних пользователей, чтобы ограничить спам.
- Мошеннические письма идут тем же стандартным путём, а штампы
Receivedсохраняют след их настоящей точки отправления.