SPF, DKIM i DMARC: naši zaštitnici od spam poruka

Upoznajte 3 osnovna protokola email zaštite.

SPF, DKIM i DMARC: naši zaštitnici od spam poruka

Svi smo se susreli sa nekim tipom spam email poruka. Danas se iza tih spam poruka kriju razne vrste malicioznih napada. Zato je bitno da razumemo kako funkcionišu SPF, DKIM i DMARC rešenja da bismo znali kako možemo da zaštitimo naš email saobraćaj.

Zamislite sledeći scenario: Bliži se vaš rođendan i želite da organizujete žurku. Nameravate da izradite pozivnice za ljude koje želite da pozovete. Da biste uverili ljude koje zovete na rođendan da ste to zapravo vi, a ne neko drugi ko se lažno predstavlja kao vi, unajmićete službu za izradu pozivnica (npr. Eventim). Tako će ljudi koji dobiju vašu pozivnicu biti sigurni da ste to vi i da ste ovlašćeni da ih pozovete. SPF protokol ima istu ulogu kao služba za izradu pozivnica. Služi da primaocu vaše email poruke kaže: „Ovlašćen sam da pošaljem ovaj mail“.

SPF ili Sender policy framework je DNS TXT zapis koji kaže ko (IP adresa ili server) sme da pošalje mail sa određenog domena, kao što na vaš rođendan mogu doći samo osobe koje se nalaze na spisku. Vaš SPF zapis je kao spisak. Ideja iza SPF-a je da ako znate ko vam je poslao mail i ako ima dozvolu sa tog domena da vam pošalje mail, veća je verovatnoća da ćete ga otvoriti. Preporučuje se da za svaki poddomen napravite zaseban SPF DNS zapis.

Kako SPF funkcioniše

Slika 1. Kako SPF funkcioniše. Izvor slike I.T. ZAP.

Kako napraviti SPF zapis?

SPF zapis je veoma jednostavan string koji je veoma lako napisati. Sastoji se iz četri dela komandi:

  1. Verzija SPF-a.

  2. IP adrese koje smeju da šalju mail sa domena, moguće je navesti i opseg IP adresa.

  3. Sekundarni domen koji je dozvoljen, ako ih ima više treba ih sve zasebno navesti (do 10).

  4. Tag koji kaže prijemniku šta da radi ako primi mail koji nije autorizovan:

-all -- Odbaciti mail koji je poslat sa neautorizovane adrese (preporučeno).

~all -- Neće odbaciti ali će ga markirati kao spam mail.

+all -- Normalno će propustiti mail (ne preporučeno).

Primer SPF zapisa

Slika 2. Primer SPF zapisa.

Šta je DKIM?

Ako je namera SPF-a da nam kaže da je pošaljilac maila proveren onda možemo slobodno reći da je namera DKIM (DomainKeys Identified Mail) da nas uveri da sadržaj maila i subject nisu menjani u saobraćaju od pošaljioca do primaoca. DKIM nas uverava da niko nije pristupio mailu i menjao bilo šta vezano za mail. Zamislite da na pozivnicu koja je opisana na početku nalepite pečat koji je izrađen samo za vaše potrebe, za vašu pozivnicu. Izbegavate situaciju u kojoj neko menja sadržaj vaše pozivnice na putu do osobe kojoj tu pozivnicu šaljete. Osoba koja dobije vašu pozivnicu može da proveri pečat i da vidi ako je neko menjao bilo šta na pozivnici. DKIM nam pruža taj pečat za naš mail.

DKIM koristi asimetrčnu enkripciju. Koristi 2 seta ključa: javni ključ kome može pristupiti svako ko dobije mail od pošaljioca i privatni koji se nalazi na mail serveru pošaljioca. Privatni ključ se koristi za enkripciju a javni za dekripciju. Za bolje razumevanje DKIM-a potrebno je detaljno znanje iz kriptografije.

Osnovna 3 taga DKIM zapisa koja se koriste:

  • s -- Selektor. On nam govori ime zapisa koji se koristi.

  • d -- Domen. Govori nam koje je ime domena. Zajedno sa selektorom se koristi da se nađe javni ključ.

  • p -- Javni ključ koji se objavljuje na DNS-u kao deo zapisa.

Primer DKIM zapisa

Slika 3. Primer DKIM zapisa.

Kreiranje DKIM zapisa

Slika 4. Kreiranje DKIM zapisa. Izvor slike: Rackspace.

Šta je DMARC?

DMARC (Domain-based Message Authentication, Reporting and Conformance) je protokol koji je najpoznatiji po svom izveštavanju. Često kao pošaljilac imamo manjak informacija vezanih za stanje našeg poslatog maila. Jedna od uloga DMARC-a je da pravi izveštaje i da te informacije vraća pošaljiocu.

Organizovali smo rođendan, napravili spisak zvanica i poslali pozivnice. Dan rođendana je i na ulazu imamo obezbeđenje koje sa aparatom proverava svaku pozivnicu. Prislonite pozivnicu na aparat i on vam kaže da li je pozivnica ispravna, da li ju je zapravo poslao slavljenik, da li je karta lažirana i da li je na bilo koji način menjana. U zavisnosti od toga šta taj uređaj za karte kaže, obezbeđenje će postupiti sa unapred datim instrukcijama. DMARC u ovoj situaciji je kao taj uređaj za skeniranje pozivnica.

DMARC se najčešće koristi u kombinaciji sa SPF i DKIM protokolima. DMARC ima 3 svrhe:

  1. Potvrđuje da je mail pošaljioca zaštićen i sa SPF-om i DKIM-om.

  2. Kaže mail serveru primaoca šta da radi ako ne prođe nijedna od potvrda.

  3. Daje mogućnost mail serveru primaoca da izveštava pošaljioca o stanju email poruka.

Kada podesite vaše SPF i DKIM zapise, tek tada je vreme da kreirate DMARC zapis. Najbolje bi bilo da koristite DMARC wizard. Postoji veliki spisak alata koje možete naći jednostavnom Google pretragom. Koji god alat da odaberete, morate znati da postoje 2 obavezna taga:

  1. v -- Verzija DMARC-a. Mora biti DMARC1.2

  2. p -- Policy tag. Služi da kaže primaocu koju polisu da primeni na mail koji ne prođe DMARC proveru: none – da ne uradite ništa; quarantine – da stavi mail u karantin; reject – odbaci.

Raspoložive DMARC polise

Slika 5. Raspoložive DMARC polise. Izvor slika: DMARC analyzer.

Opcioni tagovi:

  1. pct -- Procenat sumnjivih poruka na koje se primenjuje DMARC polisa.

  2. rua=mailto:address@company.com – Ovaj tag služi da kaže serveru primaoca gde da pošalje izveštaje koji služe da nam pokažu stanje servera pošaljioca. Šalju se dnevno tako da je najbolje napraviti mail samo za ovu svrhu.

  3. fo -- Tag koji nam govori koje od provera mail nije prošao:

a. 0 – Napravi DMARC fail report ako DKIM i SPF provere ne daju rezultat ’’pass’’.

b. 1 – Napravi DMARC fail report ako DKIM i SPF provere daju bilo koji drugi rezultat od ’’pass’’.

c. d – Napravi DKIM fail report ako ne prođe DKIM proveru.

d. s – Napravi SPF fail report ako ne prođe SPF proveru.

Primer DMARC zapisa

Slika 6. Primer DMARC zapisa.

Kreiranje DMARC zapisa

Slika 7. Kreiranje DMARC zapisa. Izvor slike: LinuxBabe.