SPF przechodzi, DMARC odrzuca: problem dopasowania

« Blog · Autor:

Powtarzalny moment przy wdrażaniu DMARC: narzędzie sprawdzające pokazuje pass dla SPF, pass dla DKIM — a raport DMARC, który przychodzi kilka dni później, i tak mówi fail. Wygląda to na sprzeczność. Nią nie jest. DMARC nie sprawdza tego samego, co dwa mechanizmy, na których się opiera. Zadaje pytanie, którego żaden z nich nigdy nie zadaje.

Każda wiadomość ma dwa adresy nadawcy

Wiadomość podaje nadawcę w dwóch niezależnych miejscach i nic w standardzie nie wymaga, żeby były takie same.

  • Koperta. W rozmowie SMTP serwer wysyłający podaje MAIL FROM. Ten adres trafia potem do nagłówków jako Return-Path i decyduje, dokąd pójdą komunikaty o niedoręczeniu. Żaden program pocztowy go nie pokazuje.
  • Nagłówek. Pole From: to adres, który widzi odbiorca — i jedyny, po którym ocenia wiadomość.

To nie jest błąd projektowy, tylko papierowy list zapisany jako protokół: koperta i papier firmowy mogą mówić co innego. Adres zwrotny na kopercie należy do kancelarii, podpis w środku do autora.

SPF sprawdza kopertę, czytelnik czyta nagłówek

Na tym polega cała rzecz. SPF odpowiada na jedno pytanie: czy ten serwer może wysyłać w imieniu domeny z MAIL FROM? Domena z pola From: nie bierze w tym sprawdzeniu żadnego udziału. Nie jest weryfikowana, porównywana ani wspominana.

Dostawca masowej wysyłki wstawia do koperty własną domenę, bo to u niego mają się zbierać komunikaty o niedoręczeniu. W nagłówku stoi Twoja. SPF sprawdza więc domenę dostawcy, znajduje jego wpis i całkowicie poprawnie zgłasza pass — dla domeny, której nikt nigdy nie zobaczy.

Koperta (SMTP) MAIL FROM / Return-Path bounce@nadawca.example Nagłówek From: — to widzi czytelnik info@firma.pl SPF sprawdza tę domenę: pass SPF nigdy tego nie sprawdza DMARC: brak dopasowania → fail
SPF potwierdza domenę z koperty i robi to słusznie. DMARC pyta dodatkowo, czy ta domena pasuje do tej, którą czyta odbiorca — i właśnie tam ten przypadek się przewraca.

Co DMARC dokłada: dopasowanie

DMARC nie wymyśla trzeciego sprawdzenia. Bierze wyniki SPF i DKIM i zadaje jedno dodatkowe pytanie: czy sprawdzona domena należy do domeny z pola From:? To porównanie nazywa się dopasowaniem, po angielsku alignment.

DMARC jest zaliczony, gdy przynajmniej jedna z dwóch dróg przechodzi i jest dopasowana:

  • SPF dopasowany: domena z MAIL FROM zgadza się z domeną z From:.
  • DKIM dopasowany: domena z pola d= podpisu zgadza się z domeną z From:.

Wynik pass bez dopasowania nie liczy się wcale. Dlatego raport potrafi pokazać dwa zielone znaczki, a wiadomość i tak nie przechodzi DMARC.

Ściśle albo swobodnie

Jak dokładne jest porównanie, ustalają dwa parametry wpisu DMARC: aspf dla SPF i adkim dla DKIM. Każdy przyjmuje dwie wartości, a różnica ma w praktyce znaczenie.

TrybWartośćPasuje do From: info@firma.pl
swobodny (domyślny)rmail.firma.pl tak, nadawca.example nie
ścisłystylko dokładnie firma.pl

Bez podania wartości obowiązuje r. Swobodny znaczy: wystarczy ta sama domena organizacyjna, subdomeny są dozwolone. Właśnie dlatego działa zwykłe obejście — o nim za chwilę. Tryb ścisły jest rzadko potrzebny i z doświadczenia psuje więcej, niż zapobiega.

Trzy przypadki, które zdarzają się w praktyce

SytuacjaSPFDKIMDMARC
Własny serwer, wszędzie własna domenapass, dopasowanypass, dopasowanypass
Dostawca bez własnej konfiguracjipass, bez dopasowaniapass na obcej domenie, bez dopasowaniafail
Dostawca podpisujący DKIM Twoją domenąpass, bez dopasowaniapass, dopasowanypass

Środkowy przypadek jest najczęstszy i to on staje się nagle widoczny przy przejściu na p=quarantine. Dopóki polityka stoi na p=none, wynik niczego nie zmienia w doręczaniu — figuruje wyłącznie w raporcie, do którego nikt nie zagląda.

Wyjście prowadzi przez DKIM, nie przez SPF

Ze środkowego przypadku wyprowadzają dwie drogi, kosztujące zupełnie różny nakład pracy.

Łatwa: niech DKIM podpisuje Twoją domeną. Oferuje to niemal każda usługa wysyłkowa. Dodajesz dwa albo trzy wpisy CNAME, a usługa podpisuje odtąd jako d=firma.pl, nie własną domeną. Koperta zostaje bez zmian — nie musi być dopasowana, bo wystarczy jedna dopasowana droga. To standardowe rozwiązanie i kwestia kwadransa.

Pracochłonna: własna ścieżka zwrotna. Część usług pozwala wskazać osobną subdomenę na zwrotki, na przykład bounce.firma.pl, skierowaną przez CNAME na ich infrastrukturę. Wtedy dopasowany jest również SPF, bo w trybie swobodnym subdomena liczy się do domeny głównej. Rzadko jest to konieczne. Warto, gdy chcesz mieć zabezpieczone obie drogi, żeby zerwana po drodze ścieżka DKIM nie pociągnęła od razu wszystkiego za sobą.

Jak rozpoznać to w raporcie

Raporty zbiorcze, o które prosi DMARC, podają dla każdego nadawcy oba wyniki osobno: surowy pass z SPF i DKIM oraz wynik po dopasowaniu. Wpis z spf: pass obok wyniku bez dopasowania opisuje dokładnie sytuację z tego artykułu. Kto po włączeniu DMARC patrzy tylko na liczbę zbiorczą, przeoczy to — obie kolumny stoją obok siebie nie bez powodu.

Krótko: SPF i DKIM sprawdzają, czy serwer może wysyłać w imieniu domeny. DMARC sprawdza, czy to uprawnienie dotyczy domeny, którą odbiorca faktycznie widzi. Dwa zielone znaczki to zatem jeszcze nie zaliczony DMARC — decydujące pytanie pada dopiero piętro wyżej.