DKIM to standard uwierzytelniania wiadomości e-mail, który wykorzystuje kryptografię klucza publicznego/prywatnego do podpisywania wiadomości e-mail. Rekordy DKIM pomagają sprawdzić, czy przychodząca wiadomość e-mail została rzeczywiście wysłana z domeny, z którą powiązany jest klucz DKIM. W rezultacie rekord DKIM umożliwia sprawdzenie, czy wiadomość e-mail została zmanipulowana podczas przesyłania i czy można ją bezpiecznie otworzyć.
DKIM istnieje w DNS jako TXT (tekst) lub CNAME (nazwa kanoniczna) rekord DNS. To, czy powinieneś używać TXT czy CNAME, zależy od wielu czynników, omówionych poniżej.
Kluczowe wnioski
- DKIM to standard uwierzytelniania wiadomości e-mail zaprojektowany w celu identyfikacji sfałszowanych adresów nadawców wiadomości e-mail.
- Rekordy DKIM są zawsze rekordami TXT. Jednak niektórzy dostawcy używają delegacji CNAME, aby wskazać domenę na rekord TXT hostowany na ich serwerach.
- Każda z tych metod ma swój własny zestaw zalet i ograniczeń.
- To, czy powinieneś wybrać jeden czy drugi, zależy od tego, co jest dla Ciebie priorytetem: kontrola i bezpieczeństwo czy łatwość i wygoda.
- Typowe pułapki obejmują nieprawidłowy format selektora, mieszanie TXT/CNAME dla tego samego selektora i opóźnienia TTL podczas rotacji klawiszy.
Zrozumienie publikowania rekordów DKIM
Przyjrzyjmy się, z czego składa się rekord DKIM.
Co zawiera rekord DKIM?
Rekord DKIM zawiera selektor, klucz publiczny i algorytm. Możesz wygenerować swój rekord DKIM za pomocą narzędzia online PowerDMARC.
Selektory DKIM
Selektory DKIM pozwalają serwerowi pocztowemu odbiorcy zlokalizować i zweryfikować klucz publiczny nadawcy. Pomaga zidentyfikować, który klucz publiczny DKIM ma być użyty do weryfikacji spośród wielu. Można go znaleźć w nagłówku DKIM-Signature każdej podpisanej wiadomości e-mail. Jest to parametr "s=".
Klucz publiczny
Klucz publiczny DKIM jest publikowany w DNS domeny jako rekord TXT (lub czasami CNAME wskazujący na klucz dostawcy). Jest on używany przez serwery odbierające do weryfikacji skrótu wiadomości utworzonego przy użyciu klucza prywatnego nadawcy, zapewniając integralność i autentyczność wiadomości e-mail.
Klucz, dostarczony przez organizację wysyłającą wiadomości e-mail, zostanie wstawiony bezpośrednio do strefy DNS jako rekord TXT. Alternatywnie będzie to CNAME, który będzie wskazywał na klucz w DNS dostawcy.
Algorytm
Algorytm używany do haszowania jest zdefiniowany w pliku a= nagłówka DKIM-Signature (nie w rekordzie DNS). Obsługiwane algorytmy podpisu D KIM to:
- rsa-sha256 (zalecane i najbardziej powszechne)
- rsa-sha1 (przestarzałe ze względu na słabsze zabezpieczenia)
Lokalizacja i składnia DNS
Rekord DKIM jest rekordem TXT zawierającym kilka par tag-wartość, zazwyczaj oddzielonych średnikami:
v=DKIM1; k=rsa; p=PUBLIC_KEY
- v=DKIM1 określa wersję DKIM.
- k=rsa, gdzie "k" odnosi się do typu klucza (RSA jest jedynym obecnie obsługiwanym)
- p=PUBLIC_KEY Rzeczywisty klucz publiczny używany do weryfikacji podpisu.
Oto przykład: selector._domainkey.example.com
Tutaj "selector" to unikalny identyfikator klucza DKIM, a example.com to domena użytkownika.
Metoda 1 - DKIM jako rekord TXT
W tej metodzie klucz publiczny DKIM jest publikowany jako rekord DNS TXT w lokalizacji selector._domainkey.example.com. Poczta wychodząca jest podpisywana kluczem prywatnym, a serwery odbierające używają klucza publicznego w DNS do weryfikacji podpisu.
Pros
- Pełna kontrola: Używanie DKIM jako rekordu TXT daje pełną kontrolę nad kluczami DKIM i DNS.
- Brak zależności od innych firm: Korzystając z tej metody, nie musisz polegać na zewnętrznych dostawcach. Zapewni ci to większe poczucie prywatności i bezpieczeństwa, ponieważ to ty jesteś właścicielem swoich danych.
Cons
- Ręczna rotacja kluczy: Użytkownik jest odpowiedzialny za samodzielną aktualizację kluczy, co może być trudne dla użytkowników nietechnicznych.
- Wyższe ryzyko błędnej konfiguracji: Samodzielna konfiguracja zwiększa ryzyko wystąpienia błędów, które mogą osłabić bezpieczeństwo poczty e-mail. Skorzystaj z naszego bezpłatnego narzędzia do sprawdzania DKIM aby uniknąć błędów.
Metoda 2 - DKIM poprzez delegację CNAME
Ta metoda działa zupełnie inaczej niż pierwsza. Zamiast publikować swój klucz publiczny DKIM bezpośrednio, należy utworzyć rekord CNAME pod adresem selector._domainkey.example.com, który wskazuje na rekord DKIM dostawcy usług poczty e-mail (ESP).
Gdy serwer odbierający wyszuka klucz DKIM, zapytanie DNS podąża za CNAME do DNS ESP. To tutaj znajduje się rzeczywisty rekord TXT z kluczem publicznym. Korzystają z tego główni dostawcy, tacy jak SendGrid, Mailchimp i Amazon SES.
Pros
- Automatyczna rotacja klawiszy: Ta metoda nie wymaga ręcznych aktualizacji, a rotacja kluczy odbywa się automatycznie.
- Łatwa konfiguracja: Ta metoda jest bardziej odpowiednia dla początkujących lub zarządzających wieloma domenami. Umożliwia ona płynne zarządzanie bez konieczności podnoszenia ciężaru.
Cons
- Mniejsza widoczność: Łatwiejsza konfiguracja odbywa się kosztem ograniczonej kontroli i wglądu w klucze DKIM i DNS.
- Ograniczenia CNAME: Głęboko zagnieżdżone lub łańcuchowe nazwy CNAME mogą przekraczać limity rozdzielczości DNS lub powodować problemy z wydajnością. Niektórzy dostawcy wymagają określonych formatów lub nie obsługują delegowania CNAME, co może złamać DKIM, jeśli nie jest przestrzegane.
TXT vs. CNAME - Którego z nich używać?
Przy podejmowaniu decyzji, czy użyć DKIM w TXT vs. CNAME, oto kilka ogólnych wskazówek, których należy przestrzegać.
Użyj TXT, jeśli...
- Samodzielnie hostujesz swoją pocztę e-mail i posiadasz wiedzę techniczną.
- Chcesz mieć pełną kontrolę nad DKIM i DNS.
- Wolisz samodzielnie zarządzać i rotować kluczami.
Uwaga: W niektórych przypadkach dostawca może wymagać bezpośredniego wprowadzenia TXT, co sprawia, że ta metoda nie jest opcjonalna.
Użyj CNAME, jeśli...
- Używasz ESP, takiego jak Mailchimp, SES lub SendGrid.
- Preferujesz zautomatyzowane zarządzanie DKIM.
- Brak czasu lub wiedzy technicznej na ręczną konfigurację.
Mieszanie TXT/CNAME dla tego samego selektora
DNS nie zezwala na posiadanie zarówno rekordu TXT, jak i CNAME dla tej samej nazwy domeny (tj. tego samego selektora DKIM). Użyj tylko jednego typu rekordu (TXT lub CNAME) na selektor. Wybierz TXT do ręcznej kontroli lub CNAME, jeśli delegujesz do ESP.
Przykłady ze świata rzeczywistego
Jeśli szukasz przykładów DKIM w TXT vs. CNAME, oto jeden dla każdego z nich, wraz ze zwięzłym opisem.
Przykład DKIM TXT
google._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG..."
Ten rekord bezpośrednio przechowuje klucz publiczny DKIM w DNS pod określonym selektorem i domeną.
Przykład DKIM CNAME
em1234._domainkey.example.com. IN CNAME em1234.example.dkim.emailsvc.com.
Ten rekord deleguje wyszukiwanie klucza DKIM do zewnętrznego dostawcy, wskazując na jego hostowany rekord DKIM.
Podsumowanie
Wybór DKIM w TXT vs. CNAME może wydawać się trudny. Obie metody działają dobrze i obie są powszechnie stosowane, więc decyzja najczęściej należy do Ciebie. Twój wybór będzie często zależał od tego, czy przedkładasz pełną, bezpośrednią kontrolę nad wygodę, czy odwrotnie.
Niezależnie od ostatecznego wyboru, zawsze należy przeprowadzić audyt bieżącej konfiguracji DKIM pod kątem zgodności. Może to pomóc w zapobieganiu lukom w zabezpieczeniach i zapewnić najwyższy poziom bezpieczeństwa komunikacji!
- DKIM w TXT vs. CNAME - kluczowe różnice i najlepsze praktyki - 14 maja 2025 r.
- Adres odbiorcy odrzucony: Odmowa dostępu - przyczyny i poprawki (SMTP 550 5.7.1) - 9 maja 2025 r.
- Wszystkie moje e-maile trafiają do spamu - oto, co możesz z tym zrobić - 1 maja 2025 r.