DKIM – uwierzytelnienie wysyłanych e-maili
Co to jest DomainKeys Identified Mail i dlaczego warto z niego skorzystać, czyli „to ja jestem nadawcą tej wiadomości”? Instrukcja włączenia dla Google Apps.
Spis treści
Jak to jest z tym uwierzytelnieniem
Protokół obsługi poczty od samego początku miał wiele niedoróbek. Chyba jedną z większych był brak jakiegokolwiek potwierdzenia, że mail który otrzymaliśmy, powiedzmy z adresu lamer@lamer.tld, pochodzi faktycznie od właściciela tego adresu. Do dzisiaj praktycznie nie ma możliwości upewnienia się, czy mail który mam w skrzynce odbiorczej wysłała osoba, za którą podaje się nadawca. Co prawda zabezpieczenie przed podrobieniem adresu na „kopercie” e-maila już istnieje (i nazywa się Sender Policy Framework, w skrótcie SPF), to jednak w programie pocztowym wyświetlany jest adres nadawcy nie z koperty, tylko z nagłówka „From:”.
DKIM, czyli „to ja jestem nadawcą tej wiadomości”
DomainKeys Identified Mail (DKIM) powstało właśnie po to, aby osoba która otrzymuje maila miała jasno zaznaczone że jego nadawcą jest właściciel adresu lamer@lamer.tld a nie ktoś, kto się pod niego podszywa.
Jak to działa? Otóż wysyłając maila, nadawca (nie manualnie, ale przez odpowiednio skonfigurowany serwer SMTP lub program do obsługi poczty) umieszcza w nagłówkach zaszyfrowane informacje na temat tego maila. Używany jest przy tym asynchroniczny klucz szyfrujący. Odbiorca, widząc takie zaszyfrowane informacje, pobiera z rekordu DNS domeny nadawcy, informacje na temat klucza do rozszyfrowania tych danych. Jeśli poprawnie rozszyfruje dane, może mieć pewność że e-mail został wysłany przez właściciela adresu lamer@lamer.tld. Oczywiście musi być spełniony jeden warunek: klucz przy pomocy którego następuje szyfrowanie, dostępny jest jedynie nadawcy. Jako że nikt inny go nie posiada, nikt inny nie może wysłać takiego maila.
A co tam słychać u naszych darmowych „emailodawców”?
Jeśli masz konto e-mail w jednym z popularnych polskich portali internetowych, prawdopodobnie już korzystasz z DKIM. Zarówno Onet, WP jak i Interia podpisują wysyłane maile (przynajmniej z poziomu webmaila). Najpopularniejsza zagraniczna skrzynka, czyli oczywiście Gmail, również go obsługuje.
Jeśli chodzi o informacje przy odbiorze, czy dany e-mail jest podpisany, to już nie jest tak różowo. Interia w niektórych przypadkach wyświetla przy nadawcy kluczyk, oznaczający że e-mail jest podpisany, ale nie zawsze – nie znam zależności. Nie wiem który wpis w nagłówkach otrzymanego maila odpowiada za poprawność DKIM. Na WP można zaobserwować nagłówek X-WP-DKIM-Status: good (id: lamer.tld), który prawdopodobnie oznacza potwierdzenie poprawnego podpisu DKIM. Na OnetPoczcie widać po rozwinięciu szczegółów napis Podpisana: lamer.tld, podobnie jak na Gmailu (również po rozwinięciu szczegółów): podpisana przez: lamer.tld.
Jak więc widać, nie jest to widoczne na pierwszy rzut oka, ale jednak sprawdzić się da.
Włączenie DKIM w Google Apps
Jeśli posiadasz własną domenę i pocztę dla niej obsługujesz w Google Apps, domyślnie DKIM jest wyłączony. Aby włączyć, należy wykonać kilka prostych kroków:
- Zalogować się do panelu zarządzania domeną, przejść do zakładki Narzędzia zaawansowane, a następnie (u dołu) wybrać Skonfiguruj uwierzytelnianie poczty e-mail (DKIM)
- Jeśli obsługujesz kilka różnych domen, wybierz ta która Cię interesuje (jeśli nie – nie będzie opcji wyboru), a następnie kliknij Wygeneruj nowy kod, opcjonalnie możesz zmienić klucz domeny (domyślny to google), który będziesz musiał ustawić
- Wygenerowany kod musisz wprowadzić jako rekord TXT dla swojej domeny (jeśli nie wiesz jak to zrobić, zgłoś się do osoby utrzymującej Twoją domenę)
- Po wprowadzeniu rekordu TXT i odczekaniu bliżej nieokreślonego czasu (w moim przypadku wspomniane w tym panelu 48h to było zdecydowanie za mało, czekałem około 2 tygodnie), należy w panelu kliknąć opcję Rozpocznij uwierzytelnianie
Opis powyższych czynności znajduje się oczywiście w pomocy Google Apps.
Jeśli wszystkie kroki zostały poprawnie wykonane, możesz przetestować DKIM. Wyślij maila na inne konto, które obsługuje DKIM w wiadomościach przychodzących, lub np. do znajomego, który takie konto posiada.
Czy DKIM daje pewność, że nikt się nie pode mnie nie podszyje?
Niestety nie. Faktem jest, że jeśli otrzymasz maila od znajomego z adresu lamer@lamer.tld i mail ten jest podpisany DKIM, to raczej nie ma możliwości, że wysłał go ktoś inny (chyba że ktoś inny zdobył hasło Twojego znajomego). Ale włączenie DKIM nie blokuje możliwości wysyłki maili nie podpisanych. Zatem dalej osoba która chce się podszyć pod cudzego maila, może to robić. Różnica będzie natomiast stosunkowo łatwa do zobaczenia – taki mail nie będzie podpisany DKIM.
Gdzie znaleźć więcej informacji o DKIM
Można poczytać trochę w wikipedii (tu niestety jedynie w wersji angielskiej), jak również na oficjalnej stronie organizacji, zajmującej się DKIM. Oczywiście najprostszy sposób też działa bardzo dobrze – skorzystanie z wyszukiwarki internetowej :)