DKIM – podpisywanie wiadomości email

W jednym z poprzednich artykułów opisałem, ogólnie, czym jest DKIM. Teraz przyszła pora na szczegóły konfiguracji DKIM.

Czym jest DomainKeys Identified Mail?

DKIM jest protokołem uwierzytelniania który łączy wiadomość email z domeną z której została wysłana. Poprawna weryfikacja podpisu DKIM daje pewność, że wiadomość została wysłana z uprawnionego serwera. Dodatkowo, potwierdza, że wiadomość nie została zmodyfikowana po jej nadaniu.

Jak działa DKIM?

Działanie DKIM jest bardzo proste i opiera się na kryptografii asymetrycznej. W trakcie uruchamiania DKIM generowane są dwa klucze, prywatny – zapisywany na serwerze poczty oraz publiczny, który dodawany jest w formie rekordu TXT do konfiguracji domeny. Serwer – wysyłając wiadomość, automatycznie podpisuje ją kluczem prywatnym. Serwer odbiorcy natomiast, w momencie otrzymania wiadomości, weryfikuje poprawność podpisu za pomocą klucza publicznego, opublikowanego w rekordach domeny. Jeśli weryfikacja podpisu zakończyła się błędem, wiadomość z pewnością trafi do SPAMu. Jeśli weryfikacja zakończyła się pozytywnie, z dużym prawdopodobieństwem wiadomość uzyska dodatkowe, ujemne punkty w testach filtrów antyspamowych.

Dlaczego powinniśmy używać DKIM?

Używanie DKIM, wraz z innymi protokołami, takimi jak SPF oraz DMARC, jest podstawowym i dziś – obowiązkowym sposobem na zabezpieczenie własnej domeny przed próbą podszywania się. Używanie DKIM w znacznym stopniu utrudnia możliwość wykorzystania Twojej domeny do nieautoryzowanej wysyłki poczty. Dodatkowo, stosowanie tych protokołów jest po prostu dobrze widziane. Systemy antyspamowe sprawdzają i weryfikują poprawną konfigurację tych protokołów. Dzięki temu, wiadomości będą lepiej oceniane przez filtry antyspamowe i minimalizujemy szanse, że nasze wiadomości zostaną rozpoznane jako SPAM.

Publikacja klucza DKIM

Aby wygenerować klucze DKIM, można skorzystać np. z generatora SparkPost. W formularzu na stronie SparkPost należy podać nazwę domeny, oraz (dowolną) nazwę klucza. W ramach jednej domeny możemy opublikować wiele kluczy, o różnych nazwach.

Poniżej otrzymamy wygenerowany prywatny i publiczny klucz, który może być używany do podpisywania wiadomości email.

Aby opublikować klucz prywatny, należy przejść do konfiguracji rekordów DNS domeny w panelu rejestratora. Następnie należy dodać rekord typu TXT dla adresu skonstruowanego według:

„nazwa-klucza._domainkey.nazwa-domeny.pl”,

czyli w naszym przypadku:

„klucz1._domainkey.szulborski.eu”

o treści:

„v=DKIM1; k=rsa; p=klucz-publiczny”, czyli w naszym przypadku:

„v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5qrQHLAEVZqKdEiyttF00A7ZdP4JD
j6Lb9pwlEdaLIefnE4Hwxwi2jvu0yT5/4+OlWvlA+VqJFINDlxY8KZ9sSBievOcERcSrHJKyS5Os/
d1q2GKgE0ejqAEwEqAneD5TOtAucoWSTXdkUmyppqa6wCSwE2lfM/e5kGqvVLlCiQIDAQAB”.

Klucz prywatny natomiast należy przekazać administratorowi serwera poczty z którego korzystamy. Po tej operacji, wszystkie nasze wiadomości email będą podpisywane przez DKIM.