W kwestii uwierzytelniania i bezpieczeństwa maili, SPF, DKIM i DMARC stanowią trzy kluczowe środki ochrony przed spamem, phishingiem i innymi zagrożeniami. W skrócie, każdy z tych protokołów odgrywa szczególną rolę w procesie walidacji autentyczności nadawców maili, upewniając się, że napływające wiadomości faktycznie pochodzą z domeny, którą wskazują. W sytuacjach prób wkradnięcia się w Twoją cyfrową komunikację podejmowanych przez różnych manipulatorów, zadaniem SPF, DKIM i DMARC jest ich powstrzymanie. Przyjrzyjmy się szczegółom działania tych mechanizmów.
Z punktu widzenia właściciela firmy bądź innej osoby odpowiedzialnej za prowadzenie zewnętrznej komunikacji Email, brak właściwej implementacji tych protokołów może sprowadzić domenę nadawczą na niebezpieczną ścieżkę. Może na tym ucierpieć dostarczalność Twoich maili, które zaczną trafiać prosto do spamu lub, co gorsza, możesz paść ofiarą sprytnych cyberprzestępców wykorzystujących Twoją tożsamość.
Wprowadzenie do bezpieczeństwa Emaili
Email, nieodzowny kanał komunikacji oraz narzędzie wykorzystywane w wielu kontekstach, stwarzało wyzwania związane z bezpieczeństwem od samego początku. Szyfrowanie, główny środek mający zapewniać ochronę podczas transferu pomiędzy serwerami, może nie być wystarczający w walce z różnymi spamerami i niechcianą komunikacją. Nie zapobiega on zagrożeniom związanym z phishingiem czy Email spoofing, które stosują podstępne techniki wymierzone w podszywanie się pod pełnoprawne organizacje. W świetle tego potrzeba zastosowania zaawansowanych metod walidacji stała się oczywista.
Kiedy w 1982 powstawał Simple Mail Transfer Protocol (SMTP), jego twórcy nie przewidywali potrzeby szczególnego zabezpieczania wiadomości. Od tamtego czasu poczta elektroniczna przesyłana pomiędzy serwerami ewoluowała, robiąc użytek z szyfrowania i uwierzytelniania możliwych dzięki protokołowi Transport Layer Security (TLS). Co istotne, zabrakło w nim jednak jakichkolwiek wytycznych związanych z uwierzytelnianiem samych wiadomości, co zostawiło sporą lukę w odświeżonych środkach obronnych.
W odpowiedzi na rosnące wyzwania stawiane przez spam, phishing, czy Email spoofing, zostały opracowane trzy główne sposoby uwierzytelniania poczty elektronicznej mające na celu umocnienie cyfrowych zapór chroniących zarówno odbiorców jak i nadawców komunikacji. Sposoby, o których mowa to:
- SPF, który sprawdza w DNS posiadaną przez serwer pocztowy autoryzację do dostarczania maili.
- DKIM, który cyfrowo podpisuje i uwierzytelnia wiadomości, walidując zautoryzowany serwer pocztowy.
- DMARC, który określa sposób reakcji na maile, które nie przeszły procesu uwierzytelniania. Bazuje on na wstępnej ocenie dokonywanej przez protokoły SPF i DKIM).
Jak działa SPF?
Sender Policy Framework (SPF) zostało wprowadzone w 2014 w odpowiedzi na wspomniane wcześniej podatności SMTP w zakresie nieuprawnionego wykorzystania domeny. Protokół ten ustanawia jasny proces dla właścicieli domen nadawczych, którzy wskazują konkretne adresy IP oraz domeny mające zgodę na wysyłkę wiadomości w imieniu ich firm czy organizacji.
Implementacja uwierzytelniania SPF dostarcza wymiernych korzyści prowadząc do zmniejszenia ilości spamu oraz rozpoznawania i odrzucania wiadomości phishingowych pochodzących z fałszywych domen. W skrócie, jego działanie polega na umożliwieniu serwerom pocztowym efektywnego uwierzytelniania przychodzących maili poprzez porównanie adresu nadawcy z domeną wskazaną w rekordzie SPF. Ich zgodność daje zielone światło dla dostarczenia.
Każda domena może posiadać tylko jeden rekord SPF, który nie powinien zawierać więcej niż 10 odwołań. Serwery odbiorcze w pierwszej kolejności odpytują DNS domeny w poszukiwaniu rekordu SPF, a następnie sprawdzają czy dana infrastruktura nadawcza jest autoryzowana do wysyłki danej wiadomości Email.
Oto 7 możliwych odpowiedzi na zapytanie weryfikacyjne wymienione w rekordzie SPF:
- Pass: Oznacza autoryzację serweru poczty nadawczej do wysyłania maili w imieniu domeny.
- Fail: Oznacza, że serwer poczty nadawczej nie jest upoważniony do wysyłania wiadomości Email w imieniu domeny.
- None: Oznacza brak rekordu SPF dla danej domeny.
- Neutral: Występuje, gdy rekord SPF domeny jasno stwierdza brak upoważnionych adresów IP lub domen. Dalsza interpretacja tej odpowiedzi może się różnić w zależności od konfiguracji DMARC dla danej domeny.
- Soft fail: Sugeruje, że wysyłający host prawdopodobnie nie posiada autoryzacji. To czy komunikacja ta potraktowana zostanie jako Pass lub Fail zależy od konfiguracji DMARC oraz serwera poczty odbiorczej.
- Temporary error: Wynika z przejściowego błędu, takiego jak DNS timeout, prowadzącego do opóźnienia w dostarczeniu wiadomości.
- Permanent error: Wskazuje, że rekord SPF nie mógł być poprawnie przetworzony, co skutkuje niepowodzeniem w dostarczeniu wiadomości. Może się to zdarzyć, gdy istnieje wiele rekordów SPF lub rekord zawiera błędy składniowe.
Pomimo iż DMARC i DKIM nie są niezbędne do tego, aby SPF spełniał swoją rolę, wszystkie one się uzupełniają. W dalszej części artykułu bardziej szczegółowo omówimy wzajemne relacje między tymi trzema filarami uwierzytelniania wiadomości Email.
Jak działa DKIM?
DomainKeys Identified Mail (DKIM) wykorzystuje DNS do przekazywania kluczy publicznych niezbędnych w procesie uwierzytelniania wiadomości Email jako pochodzących z określonej domeny. Protokół ten pozwala dodać sygnaturę DKIM do wiadomości, potwierdzającą kto jest jej nadawcą. Cyfrowy podpis złożony za pomocą kryptografii klucza publicznego matematycznie weryfikuje autentyczność wiadomości Email, potwierdzając jej pochodzenie z domeny, z którą wskazuje związek.
Proces tworzenia rekordu DKIM składa się z następujących kroków:
- Przechowywanie klucza publicznego DKIM
Rekord DKIM w DNS przechowuje publiczny klucz domeny. Serwery odbierające maile zaglądają do tego pliku, aby uzyskać wymagany klucz publiczny.
- Tworzenie cyfrowej sygnatury
Nadawca posiadający klucz prywatny podpisuje nim nagłówek maila. Klucz ten pozostaje poufny.
- Weryfikacja przez serwery odbiorcze
Po otrzymaniu maila serwery poczty sprawdzają, czy klucz prywatny nadawcy został faktycznie użyty, stosując do weryfikacji klucz publiczny pobrany z rekordu DKIM.
Protokół DKIM ustanawia ramy, które umożliwiają nadawcom maili branie odpowiedzialności za wiadomości przy pomocy sygnatur cyfrowych. Podpisy te stają się stałym elementem niestandardowych nagłówków wiadomości, zgodnych z internetowymi standardami składni maili. Serwery SMTP obsługujące DKIM automatycznie uwierzytelniają wiadomości z właściwą sygnaturą w nagłówku maila.
Uwierzytelnianie DKIM umożliwia właścicielom domen przydzielanie odrębnych kluczy podpisywania dla różnych dostawców usług Emailowych, umożliwiając im wysyłkę komunikatów w ich imieniu. Klucze te mogą być wewnętrzne, używane np. przez różne oddziały lub wykorzystywane przez komercyjnych dostawców usług, którym udzieliłeś autoryzacji do korzystania ze swojej domeny.
Niezależnie od konfiguracji, klucze prywatne pozostają bezpieczne u osób kontrolujących serwery Email, podczas gdy klucze publiczne są ogólnodostępne w DNS dla wszystkich odbierających wiadomości z danej domeny. Ta kryptograficzna relacja zapewnia niezawodny i transparentny proces uwierzytelniania.
Jak działa DMARC?
DMARC, czyli Domain-based Message Authentication Reporting and Conformance, wykorzystuje DNS do przekazywania zasad określających sposób postępowania w przypadku wiadomości Email, które nie przeszły uwierzytelniania SPF, DKIM lub obu. To coś w rodzaju opinii niezależnej trzeciej strony w danej sprawie.
Protokół ten decyduje i instruuje odbierające serwery Email w jaki sposób mają postępować po otrzymaniu wyników uwierzytelniania. Polityka DMARC domeny, ustawiona za pomocą rekordu DMARC, może informować serwery poczty o izolowaniu, odrzucaniu lub mimo wszystko dostarczaniu wiadomości Email, które nie przeszły uwierzytelniania SPF lub DKIM.
Wdrożenie DMARC pozwala określić co zrobić gdy serwer odbiorczy nie jest w stanie uwierzytelnić wiadomości. Zawarte w tym protokole zasady nadają elastyczności procesowi określania reakcji na niepowodzenia uwierzytelniania. Co więcej, DMARC umożliwia zbieranie informacji zwrotnych, zarówno w postaci raportów indywidualnych dla konkretnych wiadomości, jak i raportów zbiorczych, podsumowujących niepowodzenia uwierzytelnień SPF, DKIM lub łączne. Taki cykl obiegu danych pomaga ulepszać protokoły bezpieczeństwa maili i rozpoznawać potencjalne ataki na domenę.
Działania określone w rekordzie DMARC obejmują:
- None: Nie jest wymagane żadne działanie, co pozwala na dostarczenie właściwych wiadomości. Często wykorzystuje się to w początkowej fazie implementacji DMARC w celach testowych.
- Quarantine: Flaguje podejrzane wiadomości (nieudane uwierzytelnienia), przekazując je do określonych folderów takich jak Spam lub Do sprawdzenia.
- Reject: Stwierdza, że wiadomość jest z całą pewnością nieuwierzytelniona i nie może być w związku z tym dostarczona, jako że stanowi potencjalne zagrożenie.
Uwierzytelnianie DMARC, przechowywane jako rekord DNS TXT, zawiera nie tylko instrukcje działania, ale także określa oczekiwane raporty i ich miejsca docelowe. Tak kompleksowe podejście wzmacnia bezpieczeństwo maili, umożliwiając przeciwdziałanie nieautoryzowanej komunikacji i szybkie identyfikowanie potencjalnych zagrożeń.
Jak SPF, DKIM i DMARC działają razem na rzecz dostarczania Emaili?
Kompleksowy proces autoryzacji maili zaczyna się od sprawdzenia właściciela domeny przez SPF. Krok ten jest kluczowy dla prawidłowego działania DMARC i DKIM w dalszej perspektywie. SPF korzysta z rekordów DNS do uwierzytelniania serwerów Email. Sam w sobie protokół ten jednak nie określa postępowania dla uwierzytelnionych domen ani nie wykrywa samodzielnie fałszowania wiadomości.
Tutaj z pomocą przychodzi DKIM, w ramach którego cyfrowo podpisywane wiadomości przechodzą uwierzytelnienie z wykorzystaniem kluczy publicznych przechowywanych w rekordach DKIM. Pliki te, zawarte w DNS nadawcy, potwierdzają pełnoprawne pochodzenie wiadomości.
Następnie DMARC, w oparciu o wyniki uwierzytelniania SPF i DKIM, pozwala właścicielom domen decydować, w jaki sposób serwery odbiorcze powinny traktować nieuwierzytelnione wiadomości. DMARC obejmuje rekord DNS przechowujący publiczny klucz domeny nadawcy.
Wspólnie, rekordy te pozwalają serwerom Email na:
- Uwierzytelnienie nadawcy poprzez weryfikację SPF.
- Sprawdzenie cyfrowego podpisu wiadomości z użyciem DKIM.
- Określenie co zrobić z uwierzytelnionymi wiadomościami poprzez DMARC.
Gdzie przechowywane są rekordy DMARC, DKIM i SPF?
Aby korzystać z zalet SPF, DMARC i DKIM potrzebny jest program serwera poczty obsługującego te protokoły. Dokładna konfiguracja może się nieco różnić pomiędzy poszczególnymi platformami, ale istota sprawy polega na przechowywaniu danych protokołu w rekordach DNS, do których dostęp możliwy jest np. poprzez platformę hostingową.
Domain Name System (DNS) pełni rolę repozytorium dla tych plików. Jako zasób publiczny, DNS głównie przyporządkowuje adresy internetowe do adresów IP, ułatwiając lokalizację serwera dla pobierania treści online. Poza swoją podstawową funkcją, usługa ta przechowuje też różne rekordy związane z domeną, w tym rekordy CNAME, rekordy AAAA dla adresów IPv6 i rekordy PTR do odwrotnych zapytań DNS.
Rekordy DKIM, SPF i DMARC trzymane są w strefie DNS. Pliki TXT, wszechstronne w swojej zdolności przechowywania praktycznie dowolnego tekstu, dostarczają miejsca dla tych protokołów uwierzytelniania, które pozwalają chronić integralność komunikacji.
Jak ustawić SPF, DKIM i DMARC budując kompletny protokół uwierzytelniania maili
SPF, DKIM i DMARC, trzy protokoły bezpieczeństwa Email, które się uzupełniają, muszą zostać skonfigurowane w obszarze ustawień DNS domeny. Nadawcy mogą skontaktować się z dostawcą DNS lub swoją platformą hostingową, która powinna oferować narzędzia umożliwiające przesyłanie i edycję tych rekordów.
Warto dodać, że aby korzystać z SPF i DKIM oraz konsekwentnie przechodzić ocenę DMARC, należy wysyłać maile z własnej domeny, ponieważ powszechnie dostępne darmowe serwisy nie oferują możliwości uwierzytelniania komunikacji.
Ustawienie SPF
- Stwórz rekord SPF dla swojej domeny w DNS, uwzględniając adresy IP posiadające autoryzację do wysyłania wiadomości w imieniu Twojej domeny.
- Upewnij się, że Twój serwer Email zgadza się z rekordem SPF, aby dodatkowo wzmocnić uwierzytelnienie.
Ustawienie DKIM
- Wygeneruj parę kluczy, publiczny i prywatny, zapisując klucz publiczny w rekordzie DKIM DNS.
- Skonfiguruj swój serwer Email tak, aby wysyłane przez Ciebie wiadomości zawierały podpis DKIM tworzony przy pomocy klucza prywatnego.
Ustawienie DMARC
- Stwórz rekord DMARC w DNS określając preferowaną politykę (None, Quarantine, lub Reject) dla wiadomości, które nie przeszły uwierzytelnienia.
- Określ miejsce, do którego powinny być wysyłane zbiorcze raporty DMARC w celu analizy, poprawiając rozumienie problemów z uwierzytelnianiem maili.
- Regularnie monitoruj raporty, aby udoskonalić swoje polityki i podjąć wyzwania związane z uwierzytelnianiem, które mogą się pojawić.