DKIM
Что такое DKIM?
DKIMСтандарт аутентификации почты, определённый в RFC 6376, который позволяет отправляющему домену добавлять к исходящим сообщениям криптографическую подпись, чтобы получатели могли удостовериться, что заголовки и тело не были изменены.
DomainKeys Identified Mail (DKIM) задаётся RFC 6376. Отправляющий Mail Transfer Agent вычисляет хеш по выбранным заголовкам (задаваемым тегом h=, обычно From, Subject и Date) и телу письма, подписывает его и добавляет заголовок DKIM-Signature:, в котором указаны подписывающий домен (d=) и селектор (s=). Получатель извлекает открытый ключ из <селектор>._domainkey.<домен> (запись DNS TXT) и проверяет подпись. Поскольку DKIM защищает содержимое, а не транспортный путь, он выдерживает большинство пересылок и предоставляет криптографический идентификатор, по которому DMARC выполняет выравнивание.
Провалы на практике
Длина ключа не является необязательной. В 2012 году исследователь Zachary Harris обнаружил, что Google подписывает факторизуемым RSA-ключом длиной 512-bit; он взломал его примерно за $75 облачных вычислений и отправил подделку Larry Page «от» Sergey Brin. eBay, Yahoo, Twitter и Amazon имели ту же слабость, и Google перешёл на 2048-bit за считаные дни. RFC 8463 (2018) добавил компактный и быстрый алгоритм Ed25519-SHA256, однако многие почтовые провайдеры до сих пор проверяют только RSA, поэтому операторы публикуют оба варианта под отдельными селекторами.
Более тонкое злоупотребление — атака повторного воспроизведения DKIM (replay): поскольку DKIM не несёт истории доставки, злоумышленник, получивший всего одно корректно подписанное сообщение от домена с высокой репутацией, может переслать его тысячам жертв, и подпись по-прежнему пройдёт проверку, заимствуя репутацию домена. К мерам защиты относятся oversigning критичных заголовков, отказ от тега длины тела l=, установка срока действия тегом x= и регулярная ротация ключей (в соответствии с рекомендациями M3AAWG).
flowchart LR
A[MTA отправителя] -->|хеш заголовков+тела,<br/>подпись приватным ключом| B[Добавить заголовок DKIM-Signature]
B --> C[Сообщение в пути]
C --> D[MTA получателя]
D -->|запрос selector._domainkey TXT| E[(Открытый ключ в DNS)]
E --> D
D -->|пересчёт хеша,<br/>проверка подписи| F{Действительна и не изменена?}
F -->|Да| G[Прошла - питает выравнивание DMARC]
F -->|Нет| H[Провал - решает DMARC]● Примеры
- 01
Исходящий почтовый сервер подписывает маркетинговую рассылку селектором s1 и ключом d=example.com, обеспечивая выравнивание DMARC.
- 02
Ротация ключа DKIM: новый селектор публикуется до вывода старого, чтобы избежать провалов проверки.
● Частые вопросы
Что такое DKIM?
Стандарт аутентификации почты, определённый в RFC 6376, который позволяет отправляющему домену добавлять к исходящим сообщениям криптографическую подпись, чтобы получатели могли удостовериться, что заголовки и тело не были изменены. Относится к категории Сетевая безопасность в кибербезопасности.
Что означает DKIM?
Стандарт аутентификации почты, определённый в RFC 6376, который позволяет отправляющему домену добавлять к исходящим сообщениям криптографическую подпись, чтобы получатели могли удостовериться, что заголовки и тело не были изменены.
Как защититься от DKIM?
Защита от DKIM обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия DKIM?
Распространённые альтернативные названия: DomainKeys Identified Mail.