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.