Ważne ostrzeżenie: Google i Yahoo będą wymagać DMARC od kwietnia 2024 r.
PowerDMARC

Sygnatura DKIM: A Primer On What It Is, Why You Need It, & How Does It Work?

Podpis DKIM

Podpis DKIM

Czas czytania: 6 min

Poczta identyfikowana kluczami domeny (DKIM) to metoda uwierzytelniania wiadomości e-mail, która pozwala organizacji wziąć odpowiedzialność za wysłaną wiadomość. Wykorzystuje ona kryptografię klucza publicznego do cyfrowego "podpisywania" wiadomości e-mail, udowadniając odbiorcom, że wiadomość została wysłana przez właściciela domeny. Odbiorcy mogą sprawdzić podpis z opublikowanym kluczem publicznym swojej domeny, aby zweryfikować podpis.

W tym artykule szczegółowo omówimy DKIM i zapoznamy się z działaniem tej metody uwierzytelniania wiadomości e-mail.

Co to jest podpis DKIM?

DKIM to skrót od DomainKeys Identified Mail. Jest to system uwierzytelniania poczty elektronicznej, który zapewnia integralność i niezaprzeczalność przy użyciu podpisów kryptograficznych. Wraz z DMARC może pomóc w zbudowaniu solidnej infrastruktury chroniącej pocztę przed spoofem.

Protokół DKIM tworzy podpis kryptograficzny dla każdej wiadomości wysyłanej do odbiorców, a także podpis domeny, który jest dodawany do nagłówka wiadomości.

Podpis ten jest wykorzystywany przez odbiorcę do sprawdzenia, czy wiadomość została rzeczywiście wysłana przez właściciela domeny, a nie kogoś innego. Weryfikuje on również, czy wiadomość nie została naruszona na drodze od nadawcy do odbiorcy.

Jeśli nie jest zgodny, to albo:

  1. Wiadomość została zmieniona podczas transmisji, lub
  2. Wiadomość jest wysyłana w imieniu innej osoby, która ma dostęp do klucza prywatnego serwera wysyłającego

W przypadku niedopasowania sygnatur DKIM uniemożliwi dostarczenie tych wiadomości do adresatów, ponieważ nie będą oni w stanie zweryfikować ich jako prawdziwych wiadomości od Twojej marki.

Jak działa podpis DKIM?

Sygnatury DKIM działają poprzez umieszczenie podpisu cyfrowego w nagłówku wiadomości e-mail. Podpis ten może zostać zweryfikowany przez serwer odbiorczy i wykorzystany do określenia, czy wiadomość e-mail została naruszona podczas przesyłania.

DKIM wykorzystuje kryptografię klucza publicznego, która opiera się na parze kluczy: jednym prywatnym i jednym publicznym. Klucz publiczny jest przekazywany każdemu, kto chce go otrzymać, natomiast klucz prywatny jest utrzymywany w tajemnicy (zazwyczaj przez właściciela).

Podczas podpisywania wiadomości e-mail za pomocą protokołu DKIM klucz prywatny użytkownika jest używany do utworzenia skrótu treści wiadomości, a następnie zaszyfrowania tego skrótu kluczem publicznym odbiorcy. Ten zaszyfrowany skrót jest następnie umieszczany w nagłówku wiadomości, gdzie może zostać zweryfikowany przez odbiorcę.

Klucze podpisu DKIM

Podpisy DKIM są generowane przy użyciu dwóch kluczy kryptograficznych - publicznego i prywatnego. Klucz publiczny jest publikowany w DNS, natomiast klucz prywatny jest utrzymywany w tajemnicy.

Podczas podpisywania wiadomości e-mail klucz prywatny jest wykorzystywany do wygenerowania skrótu wiadomości. Skrót ten jest następnie szyfrowany kluczem publicznym i wysyłany wraz z samą wiadomością.

Gdy odbiorca otrzyma tę informację, używa swojego klucza prywatnego do odszyfrowania skrótu i sprawdzenia, czy odpowiada on oryginalnej treści wiadomości.

Części podpisu DKIM

Podpis DKIM składa się z dwóch części: nagłówka i treści. Nagłówek zawiera informacje o tożsamości nadawcy, w tym jego adres e-mail i klucz publiczny. Treść zawiera faktyczną treść wysłanej wiadomości.

  1. Aby obliczyć podpis DKIM, należy najpierw pobrać skrót MD5 nazwy domeny (na przykład "example.com"), która jest kluczem publicznym.
  2. Następnie należy połączyć nazwę domeny ze skrótem SHA1 (na przykład "sha1(example.com)") i dołączyć go do oryginalnej wiadomości, która została wysłana.
  3. Następnie należy wykonać kolejny skrót MD5 tego połączonego ciągu (na przykład "md5(sha1(example.com))") i dołączyć go jako nagłówek na początku wiadomości przed wysłaniem jej do doręczenia.

Kroki związane z podpisywaniem DKIM

Rozpoczęcie pracy z protokołem DKIM:

  1. Pierwszym krokiem jest utworzenie klucza prywatnego, który jest używany do podpisywania wiadomości.
  2. Drugim krokiem jest utworzenie klucza publicznego, który jest używany podczas weryfikacji podpisu.
  3. Trzeci krok polega na wygenerowaniu dwóch rekordów DNS TXT: jednego dla klucza publicznego i drugiego dla nazwy selektora.
  4. Czwartym krokiem jest opublikowanie tych rekordów w pliku strefy DNS.

Kroki związane z podpisywaniem DKIM:

1. Nadawca generuje wiadomość z unikalnym identyfikatorem zwanym kryptograficzną funkcją skrótu (zwykle SHA-256). Ten unikalny identyfikator jest nazywany polem nagłówka DKIM-Signature i zawiera informacje o tym, kto i kiedy podpisał wiadomość.

2. Nadawca dodaje do wiadomości dodatkowe pola nagłówka, które zawierają informacje o:

3. Na koniec odbiorcy, którzy chcą zweryfikować te podpisy, używają swojej kopii klucza publicznego nadawcy z jego rekordów DNS lub usługi pośredniej, takiej jak SenderID lub Mailgun, a następnie używają jej do walidacji wiadomości z dołączonymi nagłówkami DKIM.

Rozumienie znaczników używanych w podpisie DKIM

Oto przykład, jak może wyglądać rekord podpisu DKIM:

DKIM-Signature: v=1;

a=rsa-sha256;

s=jun2005.eng;

c=odprężony/odprężona;

d=example.com;

s=dkim;

t=1526555738;

bh=mhU6OJb5ldZf+z/pX9+0Nc4tj/lmyYHWbR8LgI2Q=;

h=To:From:Subject:Date:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding;

b=s1sdZCzdX9vxocsMSlT7cOrYixl1g8wfkdzrVe7BGN6ZdPV9xu2A

v= Ten znacznik informuje nas o wersji DKIM.

a= Określa algorytm używany przez podpisującego do generowania jego klucza publicznego. Może to być jeden z następujących algorytmów: RSA1_5, RSA-SHA1 lub RSASSA-PSS. Jeśli brakuje tego znacznika, przyjmuje się, że jest to RSA-SHA1.

c= Określa algorytm kanonizacji używany do generowania haszy z pól nagłówków zgodnie z wymaganiami [BCP14]. Po nim następuje oddzielona przecinkami lista 1 lub więcej algorytmów kanonizacji (np. "c=relaxed"). Jeśli ten znacznik zostanie pominięty, to przyjmuje się kanoniczność zrelaksowaną.

d= Określa nazwę domeny, która powinna być używana podczas generowania podpisów dla wiadomości wysyłanych przez ten serwer (lub innego odbiorcę).

s= Znacznik "s" to łańcuch selektora, który jest używany przez serwer odbiorczy do określenia, jaki klucz publiczny powinien zostać użyty do weryfikacji podpisu.

t= Znacznik znacznika czasu służy do zapisu daty utworzenia podpisu i jest zwykle przedstawiany jako znacznik czasu systemu Unix (liczba sekund od 1 stycznia 1970 r.).

bh= Ten znacznik reprezentuje body hash, czyli zaszyfrowaną wersję treści wiadomości (łącznie z nagłówkami). Pomaga to zapobiegać manipulowaniu wiadomościami po podpisaniu ich przez DKIM i przed dotarciem do adresatów.

h= Wartość skrótu nagłówka zawiera wszystkie nagłówki w całości (łącznie z tymi podpisanymi przez Sender Policy Framework lub DomainKeys Identified Mail) z wyjątkiem tych, które zostały wyraźnie wykluczone przez umieszczenie ich na liście wykluczeń. Wartość ta musi być obliczona przy użyciu algorytmu SHA-1 lub MD5.

b= Znacznik "b" jest zakodowaną w base64 reprezentacją kryptograficznej funkcji skrótu w kanonicznej treści wiadomości (tzn. po usunięciu kodowania MIME).

Generowanie podpisu DKIM

  1. Wygeneruj klucz publiczny i prywatny.
  2. Wygeneruj nagłówek i stopkę DKIM.
  3. Podpisz treść wiadomości e-mail kluczem prywatnym przy użyciu wybranego algorytmu, na przykład RSA-SHA256 lub RSA-SHA512.
  4. Kompresja wiadomości przy użyciu wybranego algorytmu, na przykład deflate lub brak.
  5. Nagłówki DKIM należy wstawić na początku wiadomości przed nagłówkami MIME.
  6. Stopkę DKIM należy wstawić po wszystkich stopkach MIME.

Zapewnianie ważności podpisu DKIM

Można podjąć pewne kroki, aby upewnić się, że podpis DKIM jest ważny:

  1. Określ, czy chcesz używać tradycyjnego algorytmu podpisywania DKIM, czy zoptymalizowanego.
  2. Obliczyć wartość skrótu dla nagłówka i treści wiadomości (zwykle jest to SHA-256).
  3. Wybierz odpowiedni algorytm podpisywania (np. RSA lub ECDSA).
  4. Sprawdź, czy klucz publiczny pasuje do selektora podanego w kroku 1 (można to zrobić za pomocą DNS).
  5. Podpisz wiadomość przy użyciu klucza prywatnego i zapisz go w postaci ciągu ASCII w formacie Base64 w nagłówku wiadomości e-mail (oprócz umieszczenia go w DNS).

Weryfikacja podpisu DKIM

Weryfikacja podpisu DKIM jest skomplikowana. Jej konfiguracja i obsługa wymaga dużej wiedzy fachowej, a ponadto często jest stosowana w połączeniu z innymi systemami, takimi jak SPF, które również są skomplikowane.

W związku z tym większość marketerów pocztowych korzysta z narzędzia do weryfikacji podpisu DKIM, np. DKIM record checker aby sprawdzić swoje podpisy DKIM. Narzędzie to sprawdza klucze DKIM, które zostały dodane do wiadomości e-mail i weryfikuje je w publicznej bazie danych. Jeśli klucze są ważne i godne zaufania, wiadomość e-mail można uznać za legalną.

Jest to ważne z kilku powodów: po pierwsze, gwarantuje, że poczta elektroniczna nie zostanie oznaczona jako spam przez dostawców usług internetowych lub ich klientów; po drugie, pozwala uniknąć umieszczenia domeny na czarnej liście przez inne domeny (jest to tzw. zatruwanie domeny); wreszcie, pomaga upewnić się, że poczta elektroniczna nie zostanie wciągnięta w żaden rodzaj ataku typu "man-in-the-middle".

Wniosek

DKIM to obiecujące rozwiązanie, które pozwala organizacji potwierdzać legalność wiadomości e-mail, zwłaszcza tych pochodzących od zewnętrznych nadawców. Jeśli jest ono konsekwentnie stosowane w całym środowisku komunikacyjnym, daje odbiorcom wysoki stopień pewności, że wiadomość e-mail została wysłana przez autoryzowanego przedstawiciela domeny nadawcy. Należy jednak pamiętać, że chociaż DKIM zapewnia mechanizm weryfikacji, nie jest wystarczający do ochrony przed atakami typu spoofing i phishing. W tym celu należy stosować polityka DMARC jak odrzucanie jest obowiązkowe.

Potrzebujesz pomocy?

Uwierzytelnianie wiadomości e-mail jest niezbędną częścią strategii marketingu cyfrowego każdej firmy. Przy tak wielu wiadomościach e-mail wysyłanych i otrzymywanych każdego dnia, łatwo jest zgubić swoją markę w natłoku wiadomości. Ale dzięki usługom uwierzytelniania wiadomości e-mail oferowanym przez PowerDMARC możesz mieć pewność, że Twoje e-maile są widziane przez właściwe osoby. 

Pomoże Ci w tym nasze rozwiązanie do uwierzytelniania wiadomości e-mail:

Wyjdź z wersji mobilnej