Czym jest DKIM i jak działa?
DKIM (DomainKeys Identified Mail) to metoda uwierzytelniania poczty, która pozwala nadawcy kryptograficznie podpisać każdą wychodzącą wiadomość. Serwer odbiorcy weryfikuje ten podpis za pomocą klucza publicznego opublikowanego w DNS nadawcy. Ważny podpis DKIM potwierdza dwie rzeczy: wiadomość faktycznie pochodzi z podanej domeny oraz nie została zmieniona w transporcie.
W przeciwieństwie do SPF, które sprawdza IP nadawcy względem listy dozwolonych adresów, DKIM działa przez dołączenie podpisu cyfrowego do samej wiadomości. Dzięki temu weryfikacja DKIM przetrwa przekazywanie poczty, przy którym SPF często zawodzi, bo IP serwera przekazującego nie figuruje w oryginalnym rekordzie SPF.
Jak wygląda format rekordu DNS DKIM
Rekord DKIM to rekord DNS TXT publikowany pod konkretną subdomeną: selector._domainkey.yourdomain.com. Selektor to etykieta, którą wybierasz — typowe wartości to mail, google, s1 lub default. Wartość rekordu zaczyna się od v=DKIM1; k=rsa; p=, po czym następuje klucz publiczny zakodowany w base64.
Klucz prywatny pozostaje tajny na serwerze pocztowym albo jest zarządzany przez dostawcę poczty. Klucz publiczny publikujesz w DNS. Serwery odbiorców używają klucza publicznego do weryfikacji podpisów utworzonych kluczem prywatnym — klasyczny wzorzec kryptografii klucza publicznego.
Gdzie znaleźć klucz publiczny DKIM
Klucz publiczny DKIM generuje dostawca poczty po włączeniu podpisywania DKIM. Oto gdzie go znaleźć u najpopularniejszych dostawców:
- Google Workspace: konsola Admin → Apps → Google Workspace → Gmail → Authenticate email. Wygeneruj nowy klucz i skopiuj wartość rekordu TXT.
- Microsoft 365: centrum administracyjne Exchange → Protection → DKIM. Włącz DKIM dla domeny i skopiuj rekordy CNAME (Microsoft używa rekordów CNAME, nie bezpośrednich rekordów TXT).
- Mailchimp: Account → Domains → Verify a domain. Mailchimp podaje wartość rekordu TXT DKIM do dodania w DNS.
- SendGrid: Settings → Sender Authentication → Domain Authentication. SendGrid wygeneruje za Ciebie pełny rekord TXT DKIM.
- Własny serwer (Postfix, Exim): użyj opendkim-genkey, aby wygenerować parę kluczy. Plik klucza publicznego zawiera wartość rekordu TXT.
Dobre praktyki DKIM
Jeśli to możliwe, używaj kluczy 2048-bitowych — klucze 1024-bitowe uznaje się za słabe i niektóre systemy pocztowe mogą je oznaczać. Rotuj klucze DKIM regularnie (co najmniej raz w roku), aby ograniczyć skutki ewentualnego wycieku. Po rotacji zostaw stary klucz w DNS na kilka dni, żeby wiadomości w drodze nadal dało się zweryfikować.
Sam DKIM nie chroni widocznego nagłówka From. Aby dokończyć konfigurację uwierzytelniania poczty, dodaj politykę DMARC, która zestawia wyniki DKIM z domeną From. Liczy się też czysta lista — nawet uwierzytelniona poczta trafia do spamu, jeśli regularnie wraca jako niedostarczona. Użyj weryfikacji adresów e-mail do usunięcia nieprawidłowych adresów lub skorzystaj ze zbiorczej weryfikacji e-mail.