DKIM (DomainKeys Identified Mail) — метод аутентификации электронной почты, при котором почтовый сервер отправителя добавляет к письму цифровую подпись на основе RSA или Ed25519. Публичный ключ для проверки подписи публикуется в DNS в виде TXT-записи. Почтовый сервер получателя проверяет подпись и убеждается, что письмо пришло от легитимного сервера домена и не было изменено в пути.
Как работает
При отправке письма MTA (Mail Transfer Agent) вычисляет хэш заголовков и тела письма, шифрует его приватным ключом DKIM и добавляет подпись в заголовок DKIM-Signature. Пример заголовка:
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=mail;
h=from:to:subject:date; bh=...; b=...
Получающий сервер извлекает доменное имя (d=) и селектор (s=) из подписи, делает DNS-запрос к mail._domainkey.example.com, получает публичный ключ из TXT-записи и верифицирует подпись. Успешная проверка означает: письмо подписано владельцем домена и не изменено после подписи.
DKIM не защищает от спуфинга адреса From: напрямую — для этого используется DMARC. Тройка стандартов аутентификации почты: SPF + DKIM + DMARC — покрывает большинство сценариев подделки отправителя.
История
DomainKeys разработан Yahoo! в 2004 году, Identified Internet Mail — Cisco в 2005 году. Они объединены в стандарт DKIM, опубликованный как RFC 4871 в 2007 году. Обновлённая версия — RFC 6376 (2011). В 2022 году RFC 8463 добавил поддержку алгоритма Ed25519.
Настройка DKIM на хостинге
- Сгенерировать пару ключей RSA-2048 или Ed25519 на почтовом сервере.
- Добавить в DNS TXT-запись вида
mail._domainkey.example.comс публичным ключом. - Настроить MTA (Postfix, Exim, OpenDKIM) на подпись исходящих писем.
- Проверить через
dig TXT mail._domainkey.example.comи через онлайн-валидаторы (MXToolbox, mail-tester.com).
Связь с хостингом
Большинство управляемых почтовых хостингов (Яндекс 360, Google Workspace, cPanel-хостинги) предоставляют готовую DKIM-запись, которую нужно добавить в DNS. На самостоятельных почтовых серверах DKIM настраивается вручную через OpenDKIM или rspamd. Без DKIM письма с корпоративных доменов имеют более высокий риск попасть в спам у Gmail, Outlook, Яндекс.Почты.
Как работает DKIM
Почтовый сервер подписывает исходящее письмо приватным ключом (RSA 2048+ или Ed25519). В заголовке добавляется DKIM-Signature. Получающий сервер запрашивает публичный ключ через DNS TXT-запись selector._domainkey.domain.ru и проверяет подпись.
Настройка DKIM
Генерация ключей: opendkim-genkey -s mail -d domain.ru. Публичный ключ — в TXT-запись DNS. Приватный — на почтовом сервере (Postfix + OpenDKIM). TTL 3600 с. Проверка: nslookup -type=TXT mail._domainkey.domain.ru. Тест доставки через mail-tester.com.
DKIM в связке SPF и DMARC
SPF ограничивает IP-адреса отправки. DKIM гарантирует неизменность содержимого. DMARC задаёт политику при провале SPF/DKIM. Без DKIM письма с корпоративного домена получают пониженный рейтинг у Gmail, Outlook и Mail.ru. Для массовых рассылок DKIM + DMARC обязательны с 2024 года (требования Google).