Недавно и в Яндекс.Почте для доменов у писем появилась цифровая подпись 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= ; s=mail; t=; bh=1W1A4HZDXIEhbsNkODdvI9WBtkyimVpsrgS/eXcB4yo=; h=From:To:Subject:Date; b=JjGcbyC2qfrH4Fs8IsyvOOoxHt7hc5GYdESJ7RCoiBo899c/pvSXu2sCA30HvHGi/ x4v06f8bq6vOxDptBQ+8xZkbWoZbQ1EQOH0Q5Ntl9QnwFVUY9E18ZxG2xlTEFqbhNm aJcsWkHPWIIg+vfHfwmJMFsaSwuEeioBvDUPTbeg=
Открытая часть ключа загружается в виде TXT-записи в DNS-зону домена и служит для проверки сгенерированной подписи. Её результат может использоваться, когда примается решение о дальнейшей судьбе письма: невалидная подпись говорит о том, что оно либо было отправлено с другого домена, либо было изменено в процессе пересылки. В любом случае это тревожный знак.
Валидная подпись позволяет гарантировать соответствие домена-отправителя и домена, указанного в письме, и, таким образом, формировать репутацию доменов в интернете. В общем случае включение DKIM на домене позволяет улучшить «доставляемость» писем.