Хочу всегда во "Входящие" - 4 или Как понять аббревиатуры: SPF, DKIM, DMARC

Евгений Невский
Евгений Невский
22-12-2016
408

Начав свой бизнес, настроив корпоративную почту (или рассылки) и не получив никакого эффекта или результата по причине того, что все письма валятся в спам или вообще не доходят, мы сразу начинаем беспокоиться и задаваться вопросами: «А в чем дело? А как проверить настройку почты? А все ли мне верно настроили?». Пара запросов в любимый всеми Google с фразами «проверить почтовый сервер» или «проверка почтовой службы», а если продвинутый то и «проверить MX-записи», даст нам несколько ссылок, где можно посмотреть те самые настройки.

Вводим наш домен. И на выходе куча пунктов, среди которых: «Запись DMARC не настроена.», «Запись DKIM не настроена.», «Запись SPF не настроена.». WTF??? По русски: Это че такое?
Итак, поясняем!


Часть 1 - SPF


Как вы помните из прошлых статей, то особой безопасностью SMTP протокол не отличается. Грубо говоря, при определенных условиях спамер может отправить почту от кого угодно, кому угодно. Хоть obama@whitehouse.gov от putin@kremlin.ru. 

Как же серверу whitehouse.gov быть уверенным, что он получает почту именно от kremlin.ru? А как kremlin.ru быть уверенным, что от его имени никто не отправит почту? Вот именно для этого и существует средство под названием Sender Policy Framework (инфраструктура политики отправителя) или SPF.

Как это работает? Да очень просто: kremlin.ru должен указать сервера, с которых он разрешает отправить почту! А whitehouse.gov должен иметь возможность это проверить при приеме почты! Как же это сделать? Эх… да через настройки домена kremlin.ru, как еще?!

Как же это все выглядит:

Запись: "v=spf1 ip4:5.5.5.5 -all" в домене kremlin.ru говорит,  о том  что доверять стоит только той почте, которая приходит с ip-адреса 5.5.5.5, а все остальное скорее всего (уж простите) фуфло. Таких моментов может быть много, а именно: "v=spf1 ip4:5.5.5.5 ip4:4.4.4.4  -all", тут к прошлому адресу еще один добавился – 4.4.4.4.

SPF запись прописывается в настройках домена. Соответственно,  доступы к домену есть только у владельца. Там прописывается данная запись, которая указывает на IP адрес сервера. Если к примеру меняется сервер (соответственно и IP адрес), то нужно просто изменить IP в записи на новый.

Разобрались? 

А что должен сделать whitehouse.gov, если примет почту от адреса, которого нет в SPF kremlin.ru? По умолчанию присвоить большую оценку спамовости. Внести в «черный список» по идее. Но есть еще пара моментов, о которых уже в третьей части этой статьи.


Часть 2 – DKIM

Итак, кроме того, что whitehouse.gov проверяет конкретный ip-адрес сервера, который доставил почту с kremlin.ru, как же ему быть еще уверенным, что: 

  1. письмо именно с kremlin.ru (если оно идет через промежуточные какие-то сервера, ведь тогда SPF не сработает);

  2. письмо никто не поменял в процессе доставки (если оно шло через промежуточные сервера).

Для этого придумали отдельный механизм DomainKeys Identified Mail (почта, идентифицируемая по доменным ключам) или DKIM. Вы слышали об электронной цифровой подписи (ЭЦП)? Открытых и закрытых ключах? Если да, то пропускайте следующий абзац, если нет, то читайте.

Что такое открытый и закрытый ключ? – Это понятия из криптографии. Основываясь на некоторых математических свойствах и приколах, механизм работает так: 

  1. У вас есть ваш открытый ключ (набор символов), который вы дали кому либо;

  2. У вас есть ваш закрытый ключ, который знаете только вы;

  3. Вы берете текст и зашифровываете его закрытым ключом;

  4. По воле богов математики расшифровать его можно только ОТКРЫТЫМ ключом и ничем более;

  5. Вы отправляете текст вашему адресату, он расшифровывает его открытым ключом и все довольны.


Что же это дает? А то, что:

  1. Когда нам важна секретность (конфиденциальность) сообщения: чтобы никто не прочитал! Если кто-то в процессе передачи повредит или изменит зашифрованный текст, то расшифровка не получится! И ваш получатель сразу поймет, что дело нечисто, и кто-то между вами чего то там мутит. Т.е. линия ненадежна. 

  2. Но теперь, допустим, нам не важна конфиденциальность. Хрен с ним. Хай читают. Вот абы не меняли: если отправить просто текст вместе с зашифрованным текстом, то получим как раз ЭЦП! Т.е. наш  получатель получает открытый и зашифрованный тексты, расшифровывает шифр и сравнивает результаты с открытым текстом. Если не совпадают – кто-то менял открытый текст по пути!  Т.е. когда все получилось, то получатель уверен, что: сообщение отправляли именно вы, его по пути не поменяли и не повредили.


Понятно? Вот так и работает DKIM.


Есть два ключа. Один закрытый, лежит на сервере почтовом, второй открытый – доступен в DKIM-записи домена. Причем прикол в том, что таких ключей может быть много! Т.е. каждый отдел в вашей компании может иметь свой ключ, а может и каждый сервер свой отдельный ключ иметь, а может и каждый сотрудник своим ключом подписывать (но это уже точно у кого-то из ваших паранойя в последней стадии ибо столько ключей в домене прописывать – брррр! )

И вот, получает whitehouse.gov письмо от kremlin.ru, а в письме еще подпись какая то. Берет он и тянет доменную DKIM запись для kremlin.ru, проверяет подпись, сошлось? Если да – все норм! Если нет – это уже вопрос. По умолчанию – добавить спамовости.

А теперь представим ситуацию, что сервера kremlin.ru (ну чисто теоретически)  очень часто отправляют почту через промежуточные сервера, но всегда подписывают? И если whitehouse.gov получил письмо, правильно подписанное DKIM, но не совпадающими SPF, то его ни в коем случае не рекомендуется слать в спам?

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

Вот в таких случаях…


Часть 3 DMARC

Domain-based Message Authentication, Reporting and Conformance (идентификация сообщений, создание отчётов и определение соответствия по доменному имени) или DMARC.

Это опять же доменная запись для kremlin.ru, в которой kremlin.ru  говорит, как именно он рекомендует поступать с письмами, которые не прошли или SPF-проверку, или DKIM-проверку, а может обе вместе.

К примеру, если прошел SPF и не прошел DKIM – рекомендуем отклонить, а если прошел DKIM и SPF, то тогда применять стандартные правила (ведь не может же kremlin.ru УКАЗЫВАТЬ, как именно whitehouse.gov должен поступать, только рекомендовать).

В общем, есть 4 варианта:

  1. +SPF и +DKIM,

  2. -SPF и +DKIM,

  3. +SPF и –DKIM,

  4. -SPF и –DKIM

и для каждого можно указать свои настройки.

Если все верно, то kremlin.ru уверен, что никто от него не может слать почту, ибо ее отклонят, и whitehouse.gov уверен, что письма именно от того самого putina…

Вот так вот это все работает! До скорых встреч!:)

PS: ЗАПОМНИТЕ! На самом деле, ничто не мешает спамеру создать домен, прописать в нем DKIM, SPF и DMARC-записи и спокойно слать мегатонны спама! Но получит он спамовые баллы, попадет в «черный список», а дальше уже смотрите предыдущую статью.

 

Начни свой Email Маркетинг с бесплатного тарифа и возможностью использовать максимальные функции сервиса