Глосарій
DKIM
DKIM підписує вихідну пошту приватним ключем; публічний ключ у DNS дає одержувачам змогу перевірити, що лист не змінено й не підроблено.
Що таке DKIM
DomainKeys Identified Mail додає цифровий підпис до кожного вихідного листа. Сервер-відправник обчислює хеш вибраних заголовків і тіла, підписує його приватним ключем і додає заголовок DKIM-Signature. Відповідний публічний ключ публікується в DNS як TXT-запис за адресою selector._domainkey.example.com, де селектор — коротка мітка, яку обирає відправник, щоб кілька ключів могли співіснувати. Одержувач зчитує селектор із заголовка підпису, отримує ключ і перевіряє підпис. Якщо все сходиться, лист був авторизований доменом і не змінювався дорогою.
Заголовок підпису містить головне у вигляді тегів: d= — домен підпису, s= — селектор, h= — перелік підписаних заголовків, b= — сам підпис.
Чому це важливо
SPF авторизує сервери; DKIM авторизує листи. Різниця має значення щоразу, коли пошта проходить через проміжний сервер, наприклад список розсилки або адресу пересилання: SPF не проходить, бо IP-адреса пересилача не авторизована, а підпис DKIM зберігається, доки не змінено вміст. Великі поштові сервіси надають дійсному підпису DKIM велику вагу, вирішуючи, чи потрапить лист до вхідних, а DMARC спирається на нього, щоб узгодити видимий домен From: з автентифікованою ідентичністю.
DKIM також допомагає з репутацією. Оскільки підпис прив’язує лист до домену, а не до IP-адреси, історія відправника йде за доменом навіть при зміні інфраструктури відправлення.
Як перевірити
Знайдіть селектор у заголовку DKIM-Signature листа, потім за допомогою інструмента пошук DNS запитайте TXT-запис за адресою selector._domainkey.yourdomain.com. Коректний запис починається з v=DKIM1 і містить тег p= із публічним ключем; порожній p= означає, що ключ відкликано. Щоб побачити, чи приймають одержувачі ваші підписи, вставте повні заголовки доставленого листа в аналізатор заголовків листів і прочитайте рядок Authentication-Results, який повідомляє dkim=pass або причину невдачі.
Поширені проблеми
- DNS-запис розбито на кілька рядків і неправильно склеєно, або ключ обрізано через обмеження довжини у провайдера.
- Лист змінено після підписання, часто через підпис або застереження, додане шлюзом.
- Селектор у заголовку не збігається з опублікованим.
- Ключі коротші за 1024 біти відхиляються великими одержувачами; сьогодні звичний вибір — 2048 бітів.
Поширена хибна думка
DKIM не шифрує пошту й не доводить, хто її написав. Він доводить, що лист обробив сервер, який володіє приватним ключем домену, і що лист прибув неушкодженим.