Czym jest DKIM?
DKIM (DomainKeys Identified Mail) to protokół uwierzytelniania poczty e-mail, który wykorzystuje kryptografię klucza publicznego do weryfikacji, że wiadomość została wysłana przez autoryzowany serwer i że jej treść nie została zmieniona w trakcie przesyłania. Serwer wysyłający podpisuje wychodzące wiadomości kluczem prywatnym, a serwer odbiorczy weryfikuje podpis za pomocą klucza publicznego opublikowanego w DNS nadawcy. W przeciwieństwie do SPF, które weryfikuje tylko adres IP serwera wysyłającego, DKIM weryfikuje integralność wiadomości i przetrwa przekierowanie poczty. DKIM jest zdefiniowany w RFC 6376.
Ten przewodnik jest częścią naszego kompletnego przewodnika po DKIM. Powiązane: rekord DKIM oraz jak działają podpisy DKIM.
DKIM — DomainKeys Identified Mail — to drugi filar nowoczesnego uwierzytelniania poczty e-mail. Podczas gdy SPF weryfikuje, że wiadomość została wysłana z autoryzowanego serwera, DKIM idzie dalej: kryptograficznie podpisuje samą wiadomość, dowodząc, że treść nie została naruszona i że deklarowana domena wysyłająca rzeczywiście autoryzowała wiadomość.
RFC 6376 definiuje DKIM jako metodę powiązania nazwy domeny z wiadomością e-mail, tym samym pozwalając osobie, roli lub organizacji na przejęcie pewnej odpowiedzialności za wiadomość. Podpis przetrwa przekierowanie poczty, co jest kluczową przewagą nad SPF.
Zrozumienie DKIM jest niezbędne dla każdego, kto zarządza infrastrukturą poczty e-mail, ponieważ zgodność DKIM to jedna z dwóch dróg do przejścia uwierzytelniania DMARC — a dla poczty przekierowywanej często jedyna droga.
Jak działa DKIM: ogólny obraz
DKIM działa na prostej zasadzie kryptograficznej: serwer wysyłający podpisuje wiadomość kluczem prywatnym, a serwer odbiorczy weryfikuje podpis kluczem publicznym opublikowanym w DNS.
Proces podpisywania (wychodzący)
- Serwer pocztowy wysyłający generuje skrót określonych nagłówków wiadomości oraz jej treści
- Serwer szyfruje ten skrót przy użyciu prywatnego klucza DKIM domeny
- Serwer dodaje do wiadomości nagłówek
DKIM-Signaturezawierający zaszyfrowany skrót, nazwę selektora, domenę podpisującą oraz metadane o tym, które nagłówki zostały podpisane - Wiadomość jest przesyłana do serwera odbiorczego
Proces weryfikacji (przychodzący)
- Serwer odbiorczy wyodrębnia nagłówek
DKIM-Signaturez wiadomości - Odczytuje wartości
d=(domena) orazs=(selektor) z podpisu - Wykonuje wyszukiwanie DNS dla
<selector>._domainkey.<domain>, aby pobrać klucz publiczny - Używa klucza publicznego do odszyfrowania podpisu i odzyskania oryginalnego skrótu
- Niezależnie oblicza skrót tych samych nagłówków i treści przy użyciu określonego algorytmu
- Jeśli oba skróty pasują, podpis jest prawidłowy — wiadomość jest autentyczna i niezmodyfikowana
Szczegółowy techniczny opis tego procesu znajdziesz w Jak działa DKIM: kompleksowy przewodnik po uwierzytelnianiu poczty e-mail.
Szczegóły algorytmu weryfikacji na poziomie RFC znajdziesz w Wewnątrz RFC 6376: jak naprawdę działa weryfikacja DKIM.
Nagłówek DKIM-Signature
Nagłówek podpisu DKIM wygląda tak:
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=selector1;
c=relaxed/relaxed; q=dns/txt; t=1618884473;
h=from:to:subject:date:message-id;
bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
b=AuUoFEfDxTDkHlLXSZEpZj79LICEps6eda7W3deTVFOk...
| Tag | Znaczenie |
|---|---|
v=1 | Wersja DKIM (zawsze 1) |
a=rsa-sha256 | Algorytm podpisywania |
d=example.com | Domena podpisująca (używana do zgodności DMARC) |
s=selector1 | Selektor — określa, którego klucza publicznego użyć |
c=relaxed/relaxed | Metoda kanonikalizacji dla nagłówka/treści |
q=dns/txt | Metoda zapytania o klucz publiczny |
t=1618884473 | Znacznik czasu podpisania |
h=from:to:subject:... | Lista nagłówków objętych podpisem |
bh=... | Skrót treści |
b=... | Sam podpis |
Klucze DKIM: publiczny i prywatny
DKIM używa kryptografii asymetrycznej. Właściciel domeny generuje parę kluczy:
- Klucz prywatny — przechowywany bezpiecznie na serwerze pocztowym wysyłającym. Nigdy nieudostępniany ani niepublikowany. Używany do podpisywania wychodzących wiadomości.
- Klucz publiczny — publikowany w DNS jako rekord TXT pod adresem
<selector>._domainkey.<domain>. Używany przez serwery odbiorcze do weryfikacji podpisów.
Format rekordu DNS
Rekord DNS DKIM wygląda tak:
selector1._domainkey.example.com TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4..."
| Tag | Znaczenie |
|---|---|
v=DKIM1 | Wersja |
k=rsa | Typ klucza (RSA jest standardem; Ed25519 dopiero się pojawia) |
p=... | Klucz publiczny, zakodowany w base64 |
Klucz publiczny DKIM dowolnej domeny możesz sprawdzić za pomocą narzędzia do sprawdzania DKIM.
Rozmiary kluczy
- RSA 1024-bit — minimalny zalecany rozmiar klucza. Wciąż szeroko stosowany, ale uważany za słaby według nowoczesnych standardów.
- RSA 2048-bit — obecnie zalecany standard. Zapewnia silne zabezpieczenia, ale generuje dłuższe rekordy DNS, które mogą wymagać podziału rekordu TXT.
- Ed25519 — nowszy, bardziej wydajny algorytm, który generuje krótsze podpisy i klucze. Obsługiwany przez rosnącą liczbę serwerów pocztowych, ale jeszcze nie powszechnie.
Szczegółowy przewodnik: Zrozumieć algorytmy kryptograficzne DKIM: RS256 vs RS512 i pojawiające się trendy
Selektory: zarządzanie wieloma kluczami
Selektory DKIM pozwalają domenie publikować wiele kluczy DKIM jednocześnie. Każdy klucz jest identyfikowany za pomocą ciągu selektora, a tag s= w nagłówku DKIM-Signature wskazuje odbiorcy, którego selektora (a zatem którego klucza publicznego) użyć do weryfikacji.
Selektory służą kilku celom:
- Wiele usług wysyłających — Twój główny serwer pocztowy i każda usługa zewnętrzna (SendGrid, Mailchimp itd.) mogą mieć własną parę kluczy DKIM z unikalnym selektorem
- Rotacja kluczy — podczas rotacji kluczy możesz opublikować nowy klucz pod nowym selektorem, podczas gdy stary selektor pozostaje aktywny w okresie przejściowym
- Rozdzielenie działów — różne zespoły lub oddziały mogą używać różnych selektorów w celach śledzenia i zarządzania
Popularne konwencje nazewnictwa selektorów to s1, s2, google, sendgrid, k1 lub nazwy oparte na dacie, takie jak 202604.
Kanonikalizacja: obsługa modyfikacji wiadomości
Wiadomości e-mail są często modyfikowane w trakcie przesyłania — dodawane lub usuwane są białe znaki, nagłówki są przepisywane, a podziały wierszy mogą się zmieniać. Kanonikalizacja określa, w jaki sposób procesy podpisywania i weryfikacji normalizują wiadomość przed obliczeniem skrótu, tak aby drobne modyfikacje nie unieważniały podpisu.
Istnieją dwa tryby kanonikalizacji, stosowane niezależnie do nagłówków i treści:
- simple — niemal zerowa tolerancja modyfikacji. Nagłówki muszą pasować dokładnie (poza końcowymi białymi znakami). Treść jest normalizowana tylko pod kątem końcowych pustych wierszy. Używaj tego, gdy kontrolujesz całą ścieżkę dostarczania i żaden pośrednik nie zmodyfikuje wiadomości.
- relaxed — bardziej tolerancyjny. Nazwy nagłówków są zamieniane na małe litery, białe znaki są normalizowane, a wielokrotne spacje są redukowane do jednej. W treści końcowe białe znaki są usuwane z każdego wiersza. Używaj tego w większości wdrożeń w rzeczywistych warunkach.
Ustawienie c=relaxed/relaxed (relaxed zarówno dla nagłówków, jak i treści) jest najczęstszą i zalecaną konfiguracją.
Zgodność DKIM (alignment)
Zgodność DKIM to koncepcja DMARC, która określa, czy domena w podpisie DKIM (wartość d=) pasuje do domeny w widocznym nagłówku From. Jest to kluczowe, ponieważ DMARC wymaga, aby co najmniej jedno z SPF lub DKIM było zarówno prawidłowe, jak i zgodne.
Zgodność złagodzona (relaxed)
Domeny organizacyjne muszą pasować, ale subdomeny są dozwolone. Na przykład:
- From:
user@example.comzd=mail.example.com— Przechodzi zgodność złagodzoną (ta sama domena organizacyjna) - From:
user@example.comzd=example.com— Przechodzi zgodność złagodzoną
Zgodność ścisła (strict)
Domeny muszą pasować dokładnie:
- From:
user@example.comzd=example.com— Przechodzi zgodność ścisłą - From:
user@example.comzd=mail.example.com— Nie przechodzi zgodności ścisłej
Szczegółowy przewodnik: Opanowanie zgodności DKIM: klucze, podpisy i dlaczego wiadomości nie przechodzą weryfikacji
Rotacja kluczy DKIM
Prywatne klucze DKIM powinny być okresowo rotowane, aby ograniczyć szkody w przypadku naruszenia klucza. Proces rotacji obejmuje:
- Wygenerowanie nowej pary kluczy z nowym selektorem
- Opublikowanie nowego klucza publicznego w DNS
- Skonfigurowanie serwera wysyłającego do podpisywania nowym kluczem prywatnym
- Oczekiwanie na propagację DNS i weryfikację podpisów nowym kluczem
- Usunięcie starego klucza publicznego z DNS po okresie przejściowym
Jak często należy dokonywać rotacji? Nie ma uniwersalnego standardu, ale typowe zalecenia wahają się od co 6 miesięcy do raz w roku. Środowiska o wysokim poziomie bezpieczeństwa mogą dokonywać rotacji częściej.
Szczegółowy przewodnik: Kiedy należy dokonać rotacji kluczy DKIM?
Dlaczego DKIM zawodzi
Weryfikacja DKIM może się nie powieść z kilku powodów:
Modyfikacja wiadomości w trakcie przesyłania
Jeśli jakikolwiek podpisany nagłówek lub treść wiadomości zostaną zmodyfikowane po podpisaniu, skrót nie będzie pasował, a weryfikacja się nie powiedzie. Częste przyczyny to:
- Listy mailingowe, które dodają stopki lub modyfikują wiersz Temat
- Bramy pocztowe, które przepisują nagłówki w celu zapewnienia zgodności lub skanowania bezpieczeństwa
- Usługi przekierowujące, które zmieniają nagłówki wiadomości
Problemy z DNS
- Rekord klucza publicznego DKIM nie istnieje lub jest nieosiągalny
- Selektor w podpisie nie pasuje do żadnego opublikowanego klucza
- Opóźnienia propagacji DNS po rotacji klucza
Błędy konfiguracji
- Klucz prywatny nie pasuje do opublikowanego klucza publicznego
- Algorytm podpisywania określony w podpisie nie pasuje do typu klucza
- Nagłówki wymienione w tagu
h=nie zostały uwzględnione w faktycznym obliczaniu podpisu
Szczegółowe przewodniki:
- Dlaczego DKIM zawodzi? Co możesz z tym zrobić?
- Błąd nieprawidłowego podpisu DKIM: oto jak możesz go naprawić
- Unikanie typowych błędów SPF i DKIM w 2026 roku
DKIM vs SPF: uzupełniające się, nie konkurencyjne
DKIM i SPF służą różnym celom i mają różne mocne strony:
| Cecha | SPF | DKIM |
|---|---|---|
| Co weryfikuje | Adres IP serwera wysyłającego | Integralność i pochodzenie wiadomości |
| Jak działa | Wyszukiwanie DNS autoryzowanych adresów IP | Weryfikacja podpisu kryptograficznego |
| Przetrwa przekierowanie | Nie — przekierowanie zmienia wysyłający adres IP | Tak — podpis podróżuje wraz z wiadomością |
| Chroni integralność treści | Nie | Tak — wykrywa naruszenia |
| Typ rekordu DNS | TXT na domenie | TXT pod selector._domainkey.domain |
| Podstawa zgodności DMARC | Domena Return-Path | Domena d= w podpisie |
Ponieważ SPF przestaje działać podczas przekierowywania poczty (adres IP serwera przekierowującego nie znajduje się w rekordzie SPF oryginalnej domeny), DKIM jest często jedyną metodą uwierzytelniania, która przechodzi dla przekierowywanych wiadomości. To sprawia, że zgodność DKIM jest niezbędna dla domen korzystających z list mailingowych, reguł przekierowań lub jakiejkolwiek infrastruktury przekazującej.
Szczegółowe przewodniki:
- Czym SPF różni się od DKIM i DMARC
- Czy Twoje identyfikatory SPF i DKIM są zgodne?
- Jak połączyć testowanie SPF, DKIM i DMARC dla bezpieczeństwa
DKIM dla poczty przekierowywanej i przekazywanej
Jedną z najważniejszych praktycznych przewag DKIM nad SPF jest jego zachowanie podczas przekierowywania poczty. Gdy wiadomość jest przekierowywana przez serwer pośredniczący (listę mailingową, regułę automatycznego przekierowania lub usługę przekazującą), SPF przestaje działać, ponieważ adres IP serwera przekierowującego nie znajduje się na liście w rekordzie SPF oryginalnej domeny. DKIM natomiast przetrwa przekierowanie, o ile treść wiadomości nie zostanie zmodyfikowana. Jeśli dopiero zaczynasz konfigurować tę kwestię, FAQ AutoSPF odpowiada na najczęstsze pytania dotyczące konfiguracji.
Dlatego DKIM jest kluczowe dla zgodności z DMARC w środowiskach z:
- Listami mailingowymi — organizacje uczestniczące w branżowych listach mailingowych lub wewnętrznych grupach dystrybucyjnych
- Przekierowywaniem poczty — użytkownicy, którzy przekierowują pocztę od jednego dostawcy do drugiego (np. przekierowanie adresu uczelnianego na Gmaila)
- Hostingiem współdzielonym — środowiska, w których poczta przechodzi przez współdzielone serwery przekazujące
- Bramami pocztowymi — urządzenia zabezpieczające, które przekazują pocztę bez modyfikowania treści
Jednak DKIM przestanie działać, jeśli pośrednik zmodyfikuje podpisane części wiadomości. Częste modyfikacje, które łamią DKIM, to dodawanie stopek, przepisywanie wiersza Temat lub usuwanie załączników. Oprogramowanie do list mailingowych, takie jak Mailman i LISTSERV, często dodaje nagłówki i stopki listy, co może uszkodzić podpisy DKIM oparte na treści.
Rozwiązaniem jest skonfigurowanie DKIM z kanonikalizacją c=relaxed/relaxed (która toleruje drobne zmiany białych znaków) oraz zapewnienie, że każde używane przez Ciebie oprogramowanie do list mailingowych jest skonfigurowane tak, aby zachowywać podpisy DKIM tam, gdzie to możliwe.
Częste wzorce konfiguracji DKIM
Różne konfiguracje infrastruktury poczty e-mail wymagają różnych podejść do konfiguracji DKIM:
Pojedynczy dostawca
Jeśli cała Twoja poczta przechodzi przez jednego dostawcę (np. Google Workspace), ten dostawca automatycznie obsługuje podpisywanie DKIM. Musisz jedynie opublikować w swoim DNS klucz publiczny, który udostępni.
Wielu dostawców z osobnymi selektorami
Gdy wiele usług wysyła pocztę w Twoim imieniu, każda usługa otrzymuje własną parę kluczy DKIM z unikalnym selektorem. Na przykład:
google._domainkey.example.com— klucz DKIM Google Workspaces1._domainkey.example.com— klucz DKIM SendGridk1._domainkey.example.com— klucz DKIM Mailchimp
Każda usługa podpisuje wiadomości własnym kluczem prywatnym, a odbiorcy wyszukują właściwy klucz publiczny na podstawie selektora w nagłówku DKIM-Signature.
Podpisywanie lokalne (on-premises)
Organizacje prowadzące własne serwery pocztowe (Exchange, Postfix, Exim) muszą wygenerować własne pary kluczy, zainstalować klucz prywatny na serwerze pocztowym i opublikować klucz publiczny w DNS. Możesz utworzyć parę kluczy za pomocą naszego bezpłatnego generatora DKIM. Daje Ci to pełną kontrolę nad procesem podpisywania, ale wymaga zarządzania generowaniem, rotacją i przechowywaniem kluczy.
DKIM i TLS: różne warstwy bezpieczeństwa
DKIM i TLS (Transport Layer Security) przyczyniają się do bezpieczeństwa poczty e-mail, ale działają na różnych warstwach:
- TLS szyfruje połączenie między serwerami pocztowymi podczas transmisji, zapobiegając podsłuchiwaniu w trakcie przesyłania. Nie weryfikuje tożsamości nadawcy ani nie chroni przed podszywaniem się.
- DKIM weryfikuje tożsamość nadawcy i integralność wiadomości, ale nie szyfruje treści wiadomości.
Oba są niezbędne dla kompleksowego bezpieczeństwa poczty e-mail.
Szczegółowy przewodnik: TLS i DKIM: dlaczego potrzebujesz obu dla silnego bezpieczeństwa poczty e-mail
Konfiguracja DKIM dla Twojej platformy
Konfiguracja DKIM różni się w zależności od platformy pocztowej. Ogólny proces to:
- Wygeneruj parę kluczy DKIM (zazwyczaj robi to Twoja platforma pocztowa)
- Opublikuj klucz publiczny jako rekord DNS TXT w prawidłowej lokalizacji selektora
- Włącz podpisywanie DKIM na platformie wysyłającej
- Zweryfikuj konfigurację za pomocą narzędzia do sprawdzania DKIM
Instrukcje specyficzne dla platform znajdziesz w tych przewodnikach:
- Kompletny przewodnik po konfiguracji SPF i DKIM w Microsoft 365
- Uwierzytelnianie DKIM: kompletny przewodnik po bezpiecznym dostarczaniu poczty e-mail
- Konfiguracja SPF i DKIM dla Salesforce
- Opanowanie SPF i DKIM dla SendGrid
- Kompletny przewodnik po konfiguracji SPF i DKIM dla Mailgun
- Jak AutoSPF włącza SPF i DKIM w cPanel
DKIM w stosie uwierzytelniania
DKIM jest jednym z trzech protokołów, które współpracują ze sobą, aby uwierzytelniać pocztę e-mail:
- SPF — weryfikuje, że serwer wysyłający jest autoryzowany
- DKIM — weryfikuje integralność wiadomości i zapewnia podpis na poziomie domeny (ten przewodnik)
- DMARC — wiąże SPF i DKIM z wymaganiami zgodności, definiuje zasady egzekwowania i umożliwia raportowanie
DMARC wymaga, aby co najmniej jedno z SPF lub DKIM przeszło i było zgodne z domeną nagłówka From. W praktyce skonfigurowanie zarówno SPF, jak i DKIM maksymalizuje Twoje szanse na przejście DMARC, ponieważ jeśli jedna metoda zawiedzie (np. SPF zawiedzie z powodu przekierowania), druga wciąż może dostarczyć prawidłowy zgodny wynik.
Szczegółowe przewodniki:
- Jak SPF, DKIM i DMARC współpracują podczas niepowodzeń uwierzytelniania
- Protokoły uwierzytelniania poczty e-mail: SPF, DKIM, DMARC wyjaśnione
- Jak przetestować zgodność spłaszczania SPF z DMARC i DKIM
Narzędzia diagnostyczne
- Narzędzie do sprawdzania DKIM — wyszukaj i zweryfikuj klucze publiczne DKIM dla dowolnej domeny i selektora
- Narzędzie do sprawdzania uwierzytelniania domeny — sprawdź SPF, DKIM i DMARC w jednym wyszukiwaniu
- Narzędzie do sprawdzania SPF — zweryfikuj swój rekord SPF obok DKIM
- Narzędzie do sprawdzania DMARC — zweryfikuj swoje zasady i ustawienia zgodności DMARC
Kolejne kroki
- Zweryfikuj swoją obecną konfigurację DKIM — użyj narzędzia do sprawdzania DKIM, aby sprawdzić, czy Twoja domena ma opublikowane prawidłowe klucze DKIM
- Sprawdź zgodność — upewnij się, że domena
d=w Twoich podpisach DKIM pasuje do domeny nagłówka From - Przejrzyj siłę klucza — potwierdź, że używasz kluczy RSA o długości co najmniej 2048-bit
- Zaplanuj rotację kluczy — ustal harmonogram rotacji i udokumentuj proces
- Wdróż DMARC — jeśli jeszcze tego nie zrobiłeś, skonfiguruj DMARC, aby egzekwować zgodność SPF i DKIM oraz otrzymywać raporty zbiorcze
- Monitoruj za pomocą raportów DMARC — użyj raportów zbiorczych DMARC, aby identyfikować niepowodzenia DKIM na wszystkich serwerach odbiorczych