Назад | Перейти на главную страницу

Почему SMTP-серверы просто не требуют, чтобы все отправители прошли проверку подлинности перед приемом почты?

Почему SMTP-серверы просто не требуют, чтобы все отправители прошли проверку подлинности перед приемом почты?

Протокол отправки почты (RFC4409) выполняет именно то, что вы просите (для этого требуется как шифрование, так и аутентификация), и используется большинством интернет-провайдеров, но, вероятно, это не то, что вы имеете в виду, поскольку он предназначен только для исходящих.

Для входящих - сложнее. Не может быть механизма пользователя / передачи, потому что любой сервер в мире может отправлять вам что-то законно без предварительного уведомления, поэтому принимающий сервер должен исследовать отправителя. Есть несколько протоколов, позволяющих это работать в SMTP, в частности: SPF, DKIM и DMARC. SPF имеет неоднозначную историю, которой не помогли Microsoft Удостоверение личности отправителя протокол, который действительно запутал и бесполезен.

SPF устанавливает авторизацию источников электронной почты через IP-адрес или имя хоста с использованием записей DNS. Если правила не приводят к прямым результатам PASS или FAIL, это не очень эффективно и накладывает ограничения на пользовательские настройки (например, запрещает пользователям использовать почтовые серверы ISP для отправки из домена своей компании). Его эффективность ограничена, однако он поддерживается многими крупными интернет-провайдерами.

DKIM стремится доказать, что содержимое сообщения не было изменено во время передачи, путем предоставления криптографического хэша заголовков и тела сообщений. Он имеет параллели с сигнатурами S / MIME, но на другом уровне в стеке.

SPF и DKIM хорошо работают вместе, но им не хватает контроля со стороны руководства в отношении того, что делать в случае сбоя - не предусмотрены механизмы для сообщения о нарушениях, и большинство сбоев просто теряются в файлах журналов. DMARC намеревается решить эту проблему, определив механизмы отчетности. Таким образом, DMARC избавляет от догадок относительно того, что делать с ошибками SPF и DKIM, которые требуются в противном случае.

Отвечая на ваш вопрос, SPF легко реализовать (это просто запись DNS), но решить, что в нее добавить, может быть непросто. DKIM сложен, и интеграция с почтовыми серверами может быть сложной. DMARC полагается на их внедрение. Взятые вместе, многие домены не реализуют ни один из них.

Возможны альтернативы, такие как DJB IM2000 протокол, который перекладывает бремя хранения и аутентификации на отправителя, но это потребует замены всего мира SMTP-серверов, так что это скорее академическое упражнение, чем что-либо еще.

Какую проблему ты пытаешься решить?

Допустим, каждому SMTP-серверу требуется имя пользователя и пароль. Теперь вам нужно будет поддерживать имя пользователя и пароль для каждого человека, который может когда-либо отправлять электронную почту любому из ваших пользователей. Это невозможно. Однако представьте себе, что это возможно. Затем спамер просто создаст новое имя пользователя и пароль и отправит вам спам. Если вы отключите учетную запись, они создадут новое имя пользователя и пароль. Это не лучше, чем если бы вы заблокировали их IP-адрес; они переходят на новый IP-адрес.

Допустим, вы принимали только электронную почту, подписанную GPG, чтобы знать, кто отправил сообщение. Это еще одна форма аутентификации, но она не требует установки имени пользователя и пароля для каждого пользователя в мире. Спамеры просто подписывали весь свой спам. Это немного замедлит их, и вы поймете, что да, этот спам абсолютно исходит от определенного человека. Однако вам все равно придется заблокировать этого человека, который затем сгенерирует новый ключ GPG, и цикл повторится.

SMTP - это «федеративная служба». Каждая система электронной почты является автономной, но федерация (совокупность всех SMTP-серверов в Интернете) может взаимодействовать друг с другом. Проблема такой большой федерации в том, что она должна работать на доверии; а спамеры подрывают это доверие. Доверие - это социальная проблема. Вы не можете решить социальные проблемы с помощью технологий.