?

Log in

No account? Create an account

О достоверности "подписанной" DKIM почты
bruce_swillis
На самом деле, подпись DKIM удостоверяет _только_, что письмо действительно было обработано определенным почтовым сервером, в данном случае обслуживающим домен yahoo.
(Это конечно верно, только если кто-то кроме яху не располагает его приватным ключом - что вообще-то маловероятно).

Насчет защиты от подделки заголовков и тела письма.
DKIM предназначен для исключения таких модификаций на этапе _между_ отправкой письма исходным сервером и получением-верификацией письма сервером получателя (т.н. man-in-the-middle).
При этом, сообщение (в формате MSG/RFC822), подготовленное отправителем и представленное для обработки почтовому серверу может содержать _любую_ информацию в _теле_ письма (блоке DATA smtp-сессии). Например, заголовки From: и To:, равно как и Date: могут содержать полнейшую галиматью (хотя некоторые почтовые сервера делают rewrite поля From: на основании данных авторизации пользователя, пытаясь избежать подделки обратного адреса).
_Настоящие_ поля From: и To: (из MAIL FROM:<> и RCPT TO:<>) в _теле_ письма фигурируют редко, некоторые серверы добавляют таки их в виде заголовков Envelope-From: и Envelope-To:. Чего в _данном случае_ в теле письма не наблюдается.

Короче, чтобы сделать представленную подделку, делаем вот что:
telnet <яхушный смтп> 25
ehlo
auth plain ....
mail from:<my_account@yahoo.it>
rcpt to:<my_other_account@скажем_на_яндекс.ру>
data
Message-ID: АйДи
Date: _Нужная_МНЕ_дата_
From: _Нужный_мне_человек_ <якобы_его_адрес@yahoo.it>
To: Навальный <navalny@на_гмейле>
...

.

И все.

Лезем в почтовый ящик на _своем_яндексе_, куда только что отправили месседж со _своего_ яху.
Вырезаем все в сообщении, начиная с заголовка DKIM-Signature: (скажем спасибо серверу яху за подтверждение факта отправки и содержимого тела письма).
Добавим в начало будущего фейка по вкусу заголовки Received:, Return-Path:.

Бежим за зарплатой к жуликам и ворам.

UPD:
Да, действительно, описанная схема не применима к серверу yahoo из-за его особенностей с подписыванием заголовков. Изготовить сообщение, которое бы выглядело как отправленное через Веб-интрерфейс, при этом адресованное кому-то иному, нежели указанный в заголовке адресат не представляется возможным описанным методом.
Но это никак не отменяет основного тезиса: "DKIM подтверждает только факт обработки подписанных полей и тела сообщения сервером yahoo. Не больше и не меньше."
Утверждение, что DKIM подтверждает факт доставки сообщения адресату (и тем паче прочтения) - это передергивание.