DKIM sprawdzanie to proces weryfikacji poprawności podpisu kryptograficznego dołączonego do wiadomości.
Na czym polega sprawdzanie podpisu DKIM
DKIM (DomainKeys Identified Mail) służy do kryptograficznego potwierdzania, że wiadomość została podpisana przez system mający dostęp do klucza prywatnego przypisanego do określonej domeny oraz że podpisane elementy wiadomości nie zostały zmienione w sposób niezgodny z procesem weryfikacji. Podpis jest umieszczany w nagłówku DKIM-Signature. Najważniejsze pola tego nagłówka to między innymi d, określające domenę podpisującą, s, wskazujące selektor klucza, a, określające algorytm podpisu, h, zawierające listę podpisanych nagłówków, bh, przechowujące skrót treści oraz b, zawierające właściwy podpis kryptograficzny.
Weryfikator odczytuje z nagłówka wartości domeny i selektora, a następnie szuka klucza publicznego w rekordzie TXT DNS pod nazwą selector._domainkey.domena.example. Rekord powinien zawierać między innymi parametr v=DKIM1 oraz klucz publiczny w polu p. System weryfikujący ponownie oblicza skrót treści wiadomości, sprawdza zgodność z wartością bh i używa klucza publicznego do sprawdzenia wartości b. Poprawny wynik wymaga jednocześnie dostępności właściwego klucza, prawidłowej składni podpisu i zgodności danych objętych podpisem.
Rekord DNS, selektor i klucz publiczny
Sprawdzanie DKIM zaczyna się często od kontroli rekordu DNS, ponieważ odbiorca nie pobiera klucza publicznego z samej wiadomości. Wiadomość wskazuje jedynie domenę podpisującą i selektor. Przykładowo, jeżeli nagłówek zawiera d=example.com oraz s=mail2025, zapytanie dotyczy nazwy mail2025._domainkey.example.com. Rekord TXT może być podzielony na kilka fragmentów tekstowych przez DNS, ale klient powinien połączyć je logicznie w jedną wartość. Brak rekordu, błędna nazwa selektora, pusty parametr p albo nieprawidłowy klucz uniemożliwiają poprawną weryfikację.
Do wstępnej kontroli można użyć narzędzi DNS, takich jak nslookup -type=TXT mail2025._domainkey.example.com w systemie Windows albo dig TXT mail2025._domainkey.example.com w systemach uniksowych. Samo znalezienie rekordu TXT nie oznacza jeszcze, że podpis jest prawidłowy. Trzeba porównać rekord z selektorem i domeną występującymi w konkretnej wiadomości, a następnie sprawdzić, czy rekord nie jest niedostępny z powodu błędnej delegacji DNS, opóźnienia propagacji, limitu odpowiedzi lub lokalnego problemu z rozwiązywaniem nazw.
Co oznacza wynik w nagłówkach odbiorcy
Rezultat weryfikacji jest zwykle widoczny w nagłówku Authentication-Results, którego zawartość zależy od serwera odbiorcy. Wpis dkim=pass oznacza, że podpis został zweryfikowany przy użyciu klucza odnalezionego w DNS. Wynik dkim=fail może wskazywać na zmianę podpisanej treści lub nagłówków, niezgodność skrótu, błędny podpis, niewłaściwy klucz albo problem z formatem. Wartości takie jak temperror i permerror opisują odpowiednio przejściowy błąd techniczny oraz trwały błąd konfiguracji lub składni.
Istotne są także parametry użyte przy tworzeniu podpisu. DKIM definiuje kanonikalizację nagłówków i treści, między innymi tryby simple oraz relaxed. Tryb relaxed toleruje część zmian białych znaków, lecz nie pozwala dowolnie modyfikować podpisanych danych. Zmiana tematu, adresu nadawcy w podpisanym nagłówku, treści wiadomości lub innych nagłówków objętych polem h może spowodować niepowodzenie. DKIM nie szyfruje wiadomości i nie potwierdza samodzielnie tożsamości osoby wysyłającej. Powiązanie domeny podpisującej z domeną używaną przez nadawcę ocenia się dodatkowo w ramach DMARC, a nie na podstawie samego wyniku DKIM.
Sprawdzanie DKIM przy problemach z pocztą
Praktyczna analiza powinna obejmować pełne, niezmienione nagłówki wiadomości, rekord DKIM wskazany przez selektor oraz wynik zapisany przez serwer odbiorcy. Najpierw ustala się, czy wiadomość rzeczywiście ma nagłówek DKIM-Signature, jaka domena znajduje się w polu d i jaki selektor podano w polu s. Następnie porównuje się te wartości z rekordem TXT DNS. Jeżeli rekord jest poprawny, a wynik nadal wskazuje fail, należy sprawdzić, czy po drodze wiadomości nie zmienił system przekazywania, filtr antyspamowy, stopka, bramka pocztowa albo mechanizm obsługujący treść MIME.
W przypadku zwykłego laptopa lub komputera sprawdzanie DKIM może pomóc ustalić, czy problem leży w konfiguracji domeny nadawcy, dostarczaniu wiadomości czy lokalnym programie pocztowym. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i ich podzespołów, a przy diagnostyce problemów z pocztą może również pomóc odróżnić błąd aplikacji na komputerze od wyniku zwróconego przez zewnętrzny system pocztowy. Do wiarygodnej oceny należy zachować oryginalne nagłówki, ponieważ skopiowanie samej treści wiadomości nie wystarcza do sprawdzenia podpisu DKIM.