Pull to refresh
390.87
Яндекс
Как мы делаем Яндекс

DKIM в Яндекс.Почте для доменов — как развивается безопасность электронной почты

Reading time 4 min
Views 46K
Недавно и в Яндекс.Почте для доменов у писем появилась цифровая подпись DKIM — DomainKeys Identified Mail.

DKIM — это технология, которая удостоверяет подлинность отправителя письма с помощью добавления цифровой подписи, связанной с именем домена. По статистике Яндекс.Спамообороны, в настоящее время уже половина приходящих на сервера Яндекс.Почты писем содержат верную цифровую подпись. И постепенно их становится всё больше — два года назад такие письма составляли 35% ото всех.

В Яндекс.Почте цифровая подпись служит для борьбы со спамом и фишингом. До появления DKIM одним из факторов, с помощью которых Спамооборона понимала нежелательность письма, была верификация отправителя при помощи SPF — Sender Policy Framefork, над которым за время его существования успело поработать множество рабочих групп, включая рабочую группу MARID в IETF.

Для того чтобы определить подлинность письма, DKIM весьма элегантно использует современные криптографические достижения. Под катом — о том, как реализована DKIM в Почте для доменов, какие недостатки есть у SPF и почему, несмотря на них, мы продолжим использовать обе технологии.

Для формирования и проверки подписи DKIM используется классическая асимметричная криптографическая схема проверки электронной цифровой подписи.

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

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru;
	s=mail; t=1369929893;
	bh=1W1A4HZDXIEhbsNkODdvI9WBtkyimVpsrgS/eXcB4yo=;
	h=From:To:Subject:Date;
	b=JjGcbyC2qfrH4Fs8IsyvOOoxHt7hc5GYdESJ7RCoiBo899c/pvSXu2sCA30HvHGi/
x4v06f8bq6vOxDptBQ+8xZkbWoZbQ1EQOH0Q5Ntl9QnwFVUY9E18ZxG2xlTEFqbhNm
	 aJcsWkHPWIIg+vfHfwmJMFsaSwuEeioBvDUPTbeg=


Открытая часть ключа загружается в виде TXT-записи в DNS-зону домена и служит для проверки сгенерированной подписи. Её результат может использоваться, когда примается решение о дальнейшей судьбе письма: невалидная подпись говорит о том, что оно либо было отправлено с другого домена, либо было изменено в процессе пересылки. В любом случае это тревожный знак.

Валидная подпись позволяет гарантировать соответствие домена-отправителя и домена, указанного в письме, и, таким образом, формировать репутацию доменов в интернете. В общем случае включение DKIM на домене позволяет улучшить «доставляемость» писем.



Мы постарались сделать так, чтобы включение DKIM происходило с минимальным участием администратора. Для доменов, делегированных на Яндекс, DKIM включается автоматически. Для всех остальных достаточно добавить соответствующую TXT запись с открытым ключом в DNS зону.

На стороне Яндекс.Почты при подтверждении нового домена для него сразу же создается пара ключей, необходимых для формирования DKIM подписи. Если домен делегирован на DNS сервера Яндекса, то в зоне автоматически создается TXT-запись, содержащая открытый ключ. Если домен делегирован на другие сервера, в интерфейсе его администратора отображается подсказка с текстом записи, которую необходимо добавить в зону домена.

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

Большинство современных систем антиспама срабатывают по репутационным критериям и критериям массовости. Например, сервис Яндекса Спамооборона-1024 (бесплатное решение для фильтрации корпоративной почты от спама), который прекращает свою работу с 1 сентября этого года, использует такие критерии. Довольно удобно иметь гарантию того, что письмо было отправлено именно с указанного домена.

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

Этот механизм имеет один большой недостаток: в случае пересылки (Forward) письма с сервера на сервер проверка SPF на принимающей стороне завершится неудачно. Кроме того, SPF не позволяет однозначно сказать, было ли письмо отправлено с указанного в нем домена. DKIM решает эту проблему, добавляя криптографическую подпись на тело письма и заголовки.

Тем не менее, возможны ситуации, когда часть хороших писем от домена приходит вовсе без подписи, то есть, ориентироваться только на DKIM не получится, равно как и выстраивать репутацию для таких доменов.

В будущем, вероятно, помимо SPF и DKIM более широкое распространение получит сравнительно новая технология DMARC — Domain-based Message Authentication, Reporting & Conformance, которая объединяет в себе не только средства проверки происхождения письма, но и средства обмена информацией о спаме между почтовыми системами. Яндекс.Почта уже более года использует DMARC в качестве дополнительной защиты ящиков от спама и фишинга.
Tags:
Hubs:
+61
Comments 79
Comments Comments 79

Articles

Information

Website
www.ya.ru
Registered
Founded
Employees
over 10,000 employees
Location
Россия
Representative