Anti-spoofing

DMARC

DMARC protejeaza domeniul vizibil in From, folosind rezultatele SPF si DKIM impreuna cu alinierea domeniilor si o politica publicata in DNS.

DMARC este piesa care leaga SPF si DKIM de domeniul vizibil pentru utilizator in campul From.

Ce este DMARC

DMARC inseamna Domain-based Message Authentication, Reporting, and Conformance. Scopul lui este sa reduca spoofing-ul domeniului din header From. SPF si DKIM pot spune ca un mesaj este autorizat de un domeniu, dar fara DMARC nu exista neaparat obligatia ca acel domeniu sa fie acelasi cu domeniul vizibil in From. DMARC cere ca macar una dintre autentificari, SPF sau DKIM, sa treaca si sa fie aliniata cu header From.

In practica, DMARC raspunde la intrebarea: daca cineva trimite un mesaj care pretinde ca este de la example.com, ce trebuie sa faca receptorul cand mesajul nu este autentificat corect pentru example.com? Raspunsul este publicat in DNS la _dmarc.example.com.

Politici DMARC

Politica principala este p=. Ea poate avea trei valori:

p=none nu este o configuratie defecta. Este folosita pentru monitorizare sau pentru domenii mari care migreaza treptat. Totusi, din punct de vedere protectie, p=none este mai slab si Mailcheck il poate marca WARN: domeniul are DMARC valid, dar politica nu aplica protectie.

sp= defineste politica pentru subdomenii. pct= spune procentul de mesaje caruia i se aplica politica. Pentru protectie completa, o configuratie puternica este p=reject; sp=reject; pct=100, dupa ce rapoartele confirma ca traficul legitim trece.

Alinierea SPF si DKIM

DMARC nu cere ca SPF si DKIM sa treaca ambele. Este suficient ca una sa treaca si sa fie aliniata. Daca DKIM trece cu d=example.com si From este example.com, DMARC poate trece chiar daca SPF esueaza. Daca SPF trece pentru envelope sender bounces.example.com si From este example.com, poate trece in aliniere relaxed.

Tagurile adkim si aspf controleaza alinierea stricta sau relaxata. r inseamna relaxed, iar s inseamna strict. Alinierea stricta este mai severa, dar poate rupe fluxuri legitime daca ai multe subdomenii sau provideri externi.

Rapoarte rua si ruf

rua configureaza rapoarte agregate. Acestea sunt rapoarte periodice, de obicei XML comprimat, care arata ce IP-uri trimit pentru domeniu si cum au trecut SPF/DKIM/DMARC. ruf configureaza rapoarte forensic sau failure reports. ruf este optional, multi provideri nu il trimit, iar uneori poate contine date sensibile.

_dmarc.example.com. TXT "v=DMARC1; p=reject; sp=reject; pct=100; rua=mailto:dmarc@example.com"

Daca trimiti rapoarte catre alt domeniu, de exemplu report@dmarc.example.net, domeniul destinatie trebuie sa autorizeze raportarea externa. Altfel unii provideri pot ignora destinatia de raportare.

Greseli frecvente

Greselile frecvente sunt mai multe recorduri DMARC, sintaxa cu spatii sau ghilimele gresite, rua catre domeniu extern neautorizat, pct prea mic ramas dupa testare, sau p=none lasat permanent pe domenii care ar trebui protejate. O alta problema este lipsa DKIM pentru sistemele externe: newsletterul trece SPF pe domeniul providerului, dar nu este aliniat cu domeniul din From, deci DMARC esueaza.

Ce verifica Mailcheck

Mailcheck verifica existenta DMARC, sintaxa, politica principala, politica pentru subdomenii, procentul de aplicare, alinierea declarata, rua, ruf si autorizarea raportarii externe. MISSING inseamna ca nu exista DMARC. WARN inseamna configuratie valida, dar cu protectie redusa, de exemplu p=none. FAIL inseamna configuratie invalida sau nefunctionala.

Surse oficiale