Skip to main content
New SPF lookups must resolve in milliseconds — why a DMARC tool's add-on isn't enough Learn Why → →

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)

  1. Serwer pocztowy wysyłający generuje skrót określonych nagłówków wiadomości oraz jej treści
  2. Serwer szyfruje ten skrót przy użyciu prywatnego klucza DKIM domeny
  3. Serwer dodaje do wiadomości nagłówek DKIM-Signature zawierający zaszyfrowany skrót, nazwę selektora, domenę podpisującą oraz metadane o tym, które nagłówki zostały podpisane
  4. Wiadomość jest przesyłana do serwera odbiorczego

Proces weryfikacji (przychodzący)

  1. Serwer odbiorczy wyodrębnia nagłówek DKIM-Signature z wiadomości
  2. Odczytuje wartości d= (domena) oraz s= (selektor) z podpisu
  3. Wykonuje wyszukiwanie DNS dla <selector>._domainkey.<domain>, aby pobrać klucz publiczny
  4. Używa klucza publicznego do odszyfrowania podpisu i odzyskania oryginalnego skrótu
  5. Niezależnie oblicza skrót tych samych nagłówków i treści przy użyciu określonego algorytmu
  6. 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...
TagZnaczenie
v=1Wersja DKIM (zawsze 1)
a=rsa-sha256Algorytm podpisywania
d=example.comDomena podpisująca (używana do zgodności DMARC)
s=selector1Selektor — określa, którego klucza publicznego użyć
c=relaxed/relaxedMetoda kanonikalizacji dla nagłówka/treści
q=dns/txtMetoda zapytania o klucz publiczny
t=1618884473Znacznik 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..."
TagZnaczenie
v=DKIM1Wersja
k=rsaTyp 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.com z d=mail.example.comPrzechodzi zgodność złagodzoną (ta sama domena organizacyjna)
  • From: user@example.com z d=example.comPrzechodzi zgodność złagodzoną

Zgodność ścisła (strict)

Domeny muszą pasować dokładnie:

  • From: user@example.com z d=example.comPrzechodzi zgodność ścisłą
  • From: user@example.com z d=mail.example.comNie 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:

  1. Wygenerowanie nowej pary kluczy z nowym selektorem
  2. Opublikowanie nowego klucza publicznego w DNS
  3. Skonfigurowanie serwera wysyłającego do podpisywania nowym kluczem prywatnym
  4. Oczekiwanie na propagację DNS i weryfikację podpisów nowym kluczem
  5. 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:

DKIM vs SPF: uzupełniające się, nie konkurencyjne

DKIM i SPF służą różnym celom i mają różne mocne strony:

CechaSPFDKIM
Co weryfikujeAdres IP serwera wysyłającegoIntegralność i pochodzenie wiadomości
Jak działaWyszukiwanie DNS autoryzowanych adresów IPWeryfikacja podpisu kryptograficznego
Przetrwa przekierowanieNie — przekierowanie zmienia wysyłający adres IPTak — podpis podróżuje wraz z wiadomością
Chroni integralność treściNieTak — wykrywa naruszenia
Typ rekordu DNSTXT na domenieTXT pod selector._domainkey.domain
Podstawa zgodności DMARCDomena Return-PathDomena 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:

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 Workspace
  • s1._domainkey.example.com — klucz DKIM SendGrid
  • k1._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:

  1. Wygeneruj parę kluczy DKIM (zazwyczaj robi to Twoja platforma pocztowa)
  2. Opublikuj klucz publiczny jako rekord DNS TXT w prawidłowej lokalizacji selektora
  3. Włącz podpisywanie DKIM na platformie wysyłającej
  4. Zweryfikuj konfigurację za pomocą narzędzia do sprawdzania DKIM

Instrukcje specyficzne dla platform znajdziesz w tych przewodnikach:

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:

Narzędzia diagnostyczne

Kolejne kroki

  1. Zweryfikuj swoją obecną konfigurację DKIM — użyj narzędzia do sprawdzania DKIM, aby sprawdzić, czy Twoja domena ma opublikowane prawidłowe klucze DKIM
  2. Sprawdź zgodność — upewnij się, że domena d= w Twoich podpisach DKIM pasuje do domeny nagłówka From
  3. Przejrzyj siłę klucza — potwierdź, że używasz kluczy RSA o długości co najmniej 2048-bit
  4. Zaplanuj rotację kluczy — ustal harmonogram rotacji i udokumentuj proces
  5. Wdróż DMARC — jeśli jeszcze tego nie zrobiłeś, skonfiguruj DMARC, aby egzekwować zgodność SPF i DKIM oraz otrzymywać raporty zbiorcze
  6. Monitoruj za pomocą raportów DMARC — użyj raportów zbiorczych DMARC, aby identyfikować niepowodzenia DKIM na wszystkich serwerach odbiorczych
Rated 5/5 on G2 · Trusted since 2018

Trusted by 50,000+ domains

"AutoSPF Flattens SPF Records Seamlessly & Keeps Changes Logged - I am quite pleased with the product"

It does what it promises to do, and does it very well. I appreciate that it keeps a log of changes made, which prevents many mistakes. A client's SPF record would have way too many lookups, but AutoSPF makes that problem go away. The length of the SPF record is typically not the issue; it's the amount of lookups in the record that are. AutoSPF "flattens" the record, automatically expanding the defined lookups to IP addresses or ranges. And it auto-updates the record when the un-flattened lookups change.
PJ

Peter J.

President · Small-Business (50 or fewer emp.)

"Helped us go beyond capacity"

AutoSPF did exactly as described, it helped us get past our 10 lookup limit. Afterwards, we hit another limit regarding overall capacity and when contacted, they quickly provided us with a new solution to eliminate capacity issues entirely going forward, so now we can add as many SPF records as needed. They also provided us with a personalized support video explaining their new method in its entirety using our instance as the example.
VU

Verified User

Financial Services · Mid-Market (51-1000 emp.)

"Great service and great support"

AutoSPF was easy to initially set up on our own and a great cost effective entry into spf flattening. Needed our first support assistance today and got great response including a video demonstrating the issue I was trying to solve, a quick fix, and more detailed followup.
GF

Greg F.

Mid-Market (51-1000 emp.)