Anti-spoofing
DMARC
DMARC protejeaza domeniul vizibil in From, folosind rezultatele SPF si DKIM impreuna cu alinierea domeniilor si o politica publicata in DNS.
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 - monitorizare. Domeniul cere rapoarte, dar nu cere receptorului sa blocheze sau sa puna in carantina mesajele care esueaza.
- p=quarantine - mesajele care esueaza pot fi tratate ca suspecte, de obicei trimise in spam sau quarantine.
- p=reject - mesajele care esueaza pot fi respinse.
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.