
Все авторитетные почтовые серверы стараются блокировать электронные письма с поддельными адресами отправителей. Мошенники используют поддельные адреса отправителей, которые кажутся исходящими из законного источника, чтобы установить троянскую программу или обманом заставить пользователя раскрыть конфиденциальные данные — этот процесс называется фишингом.
Одним из способов проверки подлинности отправителя является использование DKIM — метода, позволяющего подписывать электронные письма цифровой подписью. DKIM расшифровывается как DomainKeys Identified Mail.
Широко используемый сегодня, DKIM был создан в 2004 году совместными усилиями консорциума компаний. DKIM объединяет более раннюю систему «DomainKeys» компании Yahoo и устаревшую систему «Identified Internet Mail» компании Cisco. Отсюда и аббревиатура DKIM: DK = DomainKeys, IM = Identified Internet Mail.
Как работает DKIM
DKIM основан на взаимодействии между сервером исходящей и входящей почты. Конечный пользователь не знает об этом процессе.
Проще говоря, сервер исходящей почты прикрепляет цифровую подпись к электронному письму. Затем эта подпись проверяется сервером входящей почты. Для этого входящий сервер ищет открытый ключ, соответствующий подписи, на почтовом сервере, указанном в качестве отправителя.
Открытый ключ может не совпадать с подписью по следующим причинам:
- Письмо было отправлено не с почтового сервера, указанного в заголовке письма, а с другого (мошеннического) сервера.
- Электронное письмо было изменено при передаче от «настоящего» почтового сервера к получателю. Например, хакер может перехватить письмо, изменить его, а затем отправить повторно.
Технические компоненты DKIM
Для того чтобы понять DKIM, лучше всего рассмотреть основные составляющие этой концепции.
Хеширование
Строка, называемая хэш-значением, вычисляется из содержимого письма по определенному алгоритму. Это значение добавляется в заголовок письма.
Хеширование основано на том же принципе, что и контрольная цифра на банковском депозитном чеке, когда значение вычисляется из цифр номера ссылки и добавляется как последняя цифра номера ссылки.
Если получатель вычислит хэш-значение полученного электронного письма по тому же алгоритму, то он должен получить точно такую же строку, которая была добавлена в заголовок письма. Если хэш-значение не совпадает, получатель знает, что письмо было изменено.
Асимметричное шифрование
Для того чтобы получатель мог быть уверен, что хэш-значение действительно получено от оригинального отправителя, требуется еще один шаг: цифровая подпись.
Отправители аутентифицируются с помощью асимметричного шифрования, которое основано на паре ключей: то, что зашифровано с помощью ключа А, может быть расшифровано только с помощью ключа В. Один ключ хранится в секрете (закрытый ключ), другой публикуется (открытый ключ).
Более подробную информацию о шифровании можно найти в этом обзоре методов шифрования.
Процесс выглядит следующим образом:
- Отправитель шифрует вычисленное хэш-значение с помощью закрытого ключа.
- Он добавляет зашифрованное хэш-значение в заголовок электронного письма («подпись»).
- Получатель ищет открытый ключ отправителя на сервере доменных имен отправителя, тем самым расшифровывая подпись.
- Затем он проверяет расшифрованное хэш-значение. Если хэш-значение, вычисленное получателем, совпадает с расшифрованным, все в порядке.
TXT-запись на сервере имен
Чтобы серверы входящей почты могли получить открытый ключ отправителя, он должен быть опубликован как запись ресурса TXT в зоне DNS домена.
Запись DKIM содержит следующие элементы:
- Версия, часто кодируется v=DKIM1
- Алгоритм шифрования, которым всегда является RSA (k=rsa).
- Открытый ключ (p=), который представляет собой длинную строку.
- Селектор, который различается в зависимости от провайдера. Пример: default._domainkey или k1._domainkey.

Запись DKIM обычно можно получить только с помощью заголовка электронной почты. Для поиска требуется как доменное имя, так и селектор. Селектор обычно не известен или его поиск занимает слишком много времени.
Создание DKIM-записи
Чтобы создать DKIM-запись, необходимо создать пару ключей RSA и поместить ее в нужное место на сервере. Большинство провайдеров электронной почты сделают это за вас.
Чтобы лучше понять, как работает DKIM, вы можете создать запись вручную. В Интернете можно бесплатно найти различные инструменты, например, DKIM Record Generator от EasyDMARC. В верхней части экрана введите селектор по вашему выбору (например, k1) слева и домен справа. Генератор отобразит закрытый и открытый ключи. Закрытый ключ должен храниться на почтовом сервере (это может сделать только ваш почтовый провайдер), а открытый ключ вводится в DKIM-запись.

Проверка записи DKIM
Вы можете проверить, действительно ли запись DKIM является общедоступной, используя программу проверки DKIM, например, DKIM Record Lookup от EasyDMARC.
Но самый простой способ проверки — отправить себе электронное письмо, а затем посмотреть на заголовок, где вы увидите запись «DKIM-Signature:».

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