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.
Czym jest sygnatura DKIM?
Podpis DKIM to podpis kryptograficzny, który protokół DKIM tworzy dla każdej wiadomości wysyłanej do odbiorców, a także podpis domeny 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:
- Wiadomość została zmieniona podczas transmisji, lub
- 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ę.
Uprość DKIM dzięki PowerDMARC!
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.
- Aby obliczyć podpis DKIM, należy najpierw pobrać skrót MD5 nazwy domeny (na przykład "example.com"), która jest kluczem publicznym.
- 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.
- 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:
- Pierwszym krokiem jest utworzenie klucza prywatnego, który jest używany do podpisywania wiadomości.
- Drugim krokiem jest utworzenie klucza publicznego, który jest używany podczas weryfikacji podpisu.
- Trzeci krok polega na wygenerowaniu dwóch rekordów DNS TXT: jednego dla klucza publicznego i drugiego dla nazwy selektora.
- 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:
- jak długo komunikat powinien być uznawany za ważny
- jak często podpis powinien być sprawdzany pod względem ważności
- czy podpisy powinny być walidowane za pomocą zewnętrznej usługi, takiej jak SPF (Sender Policy Framework)
- jakie klucze zostały użyte do podpisania tego komunikatu
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
- Wygeneruj klucz publiczny i prywatny.
- Wygeneruj nagłówek i stopkę DKIM.
- Podpisz treść wiadomości e-mail kluczem prywatnym przy użyciu wybranego algorytmu, na przykład RSA-SHA256 lub RSA-SHA512.
- Kompresja wiadomości przy użyciu wybranego algorytmu, na przykład deflate lub brak.
- Nagłówki DKIM należy wstawić na początku wiadomości przed nagłówkami MIME.
- 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:
- Określ, czy chcesz używać tradycyjnego algorytmu podpisywania DKIM, czy zoptymalizowanego.
- Obliczyć wartość skrótu dla nagłówka i treści wiadomości (zwykle jest to SHA-256).
- Wybierz odpowiedni algorytm podpisywania (np. RSA lub ECDSA).
- Sprawdź, czy klucz publiczny pasuje do selektora podanego w kroku 1 (można to zrobić za pomocą DNS).
- 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 weryfikować legalność wiadomości e-mail, zwłaszcza tych pochodzących od zewnętrznych nadawców. Stosowany konsekwentnie w całym środowisku komunikacyjnym, zapewnia 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, to nie wystarcza do ochrony przed atakami typu spoofing i phishing. W tym celu niezbędna jest polityka Polityka DMARC ustawiona na odrzucanie jest obowiązkowa.
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:
- Zwiększ dostarczalność wiadomości e-mail poprzez weryfikację nazwy domeny i podpisu DKIM
- Poprawa wizerunku marki poprzez pokazanie odbiorcom, że jesteś legalnie działającą firmą
- Popraw ogólne wrażenia klientów, upewniając się, że widzą oni tylko uzasadnione wiadomości od Ciebie
- Wzrost liczby oszustw pod pretekstem w ulepszonych atakach phishingowych - 15 stycznia 2025 r.
- DMARC staje się obowiązkowy dla branży kart płatniczych od 2025 roku - 12 stycznia 2025 r.
- Zmiany w NCSC Mail Check i ich wpływ na bezpieczeństwo poczty elektronicznej w brytyjskim sektorze publicznym - 11 stycznia 2025 r.