Roskaposti on varmasti jokaiselle sähköpostin käyttäjälle tuttu riesa, jonka ehkäisyyn on kehitetty erilaisia tekniikoita. Esittelemme tässä tekstissä kolme eniten käytettyä roskapostituksen vähentämiseen tähtäävää menetelmää, joita ovat SPF, DKIM ja DMARC. Kaikki kolme tässä perustuvat domainin DNS:ään lisättäviin TXT-tietueisiin, joista on myös esimerkit kunkin menetelmän osalta.
Kalastelu- ja spämmiviestit eivät ainoastaan ole ärsyttäviä tukkiessaan postilaatikon, vaan ne sisältävät myös todellisia tietoturvariskejä. Mikäli yksikin käyttäjä klikkaa viestissä olevaa haitallista liitettä, saattaa se pahimmillaan johtaa suuriin hankaluuksiin kiristys- tai haittaohjelmien, haitallisten skriptien tai tietovuotojen muodossa. Useimmissa tapauksissa on syytä ottaa käyttöön kaikki kolme protokollaa, sillä ne eivät ole keskenään päällekkäisiä vaan ennemmin tukevat toinen toisiaan.
SPF (Sender Policy Framework)
SPF estää epäilyttäviä tahoja lähettämästä sähköpostiviestejä domainin kautta ja estää näin spoofingia eli sitä, että viestin lähettäjä ei todellisuudessa ole se, joka se väittää olevansa. SPF:n avulla vastaanottajan sähköpostipalvelin voi päätellä, tuleeko sähköpostiviesti oikeasti sen domainin kautta, jota se näyttää käyttävän.
Domainiin liitetyssä TXT-tietueessa kerrotaan, mitkä palvelimet saavat lähettää domainin nimissä sähköpostia. SPF-tietueen tarkistaminen on kuitenkin vastaanottavan tahon sähköpostipalvelimen tehtävänä, eivätkä kaikki palvelimet tarkista niitä. Näin ollen SPF-tietueen käyttö ei välttämättä kaikkia huijausyrityksiä estä.
SPF-tietue näyttää yksinkertaisimmillaan tältä:
v=spf1 mx ~all
Tietue alkaa aina v=spf1 -alulla, joka kertoo että kyseessä on SPF-versio 1; muita versioita ei ole käytössä. Esimerkkitietueessa sitä seuraa ’mx’, joka kertoo että minkä tahansa domainin MX- eli sähköpostitietueisiin määritellyn sähköpostipalvelimen kautta on sallittua lähettää viestejä domainin nimissä.
SPF:n viimeinen osa määrittelee, miten toimia tilanteessa, jossa lähettävä palvelin ei sisälly tietueessa oleviin palvelimiin. Vaihtoehtoina ovat softfail, joka sallii postien läpimenon niin, että ne merkitään epäilyttäviksi/roskapostiksi, ja hardfail, joka hylkää muilta palvelimilta lähetetyt viestit. Softfail näkyy SPF:ssä merkintänä ~all, hardfail puolestaan -all.
SPF-tietueeseen tulee määrittää kaikki ne sähköpostipalvelimet, joiden kautta viestejä on tarkoitus domainin nimissä lähettää. Mikäli esimerkiksi domainin sähköpostit ovat Microsoftin M365-posteja, mutta Domainkeskuksen palvelimella sijaitsevalla sivustolla on sähköpostia lähettävä lomake, tulee SPF:ään määrittää sekä Microsoftin että Domainkeskuksen sähköpostipalvelin alla olevan esimerkin mukaisesti.
v=spf1 include:outbound.euronic.fi include: spf.protection.outlook.com ~all
DKIM (DomainKeys Identified Mail)
DKIM eli DomainKeys Identified Mail varmistaa että domainin kautta lähetettyjen sähköpostien sisältö on säilynyt luotettavana eikä sitä ole peukaloitu. DKIM perustuu digitaaliseen allekirjoitukseen, joka sisällytetään jokaisen lähetetyn sähköpostiviestin header- eli otsaketietoihin. Vastaanottajan sähköpostipalvelin saa varmistettua sähköpostiviestin aitouden julkisesta avaimesta, joka on lisätty lähettävän domainin nimipalveluun.
Allekirjoitus salataan yksityisellä avaimella, mikä mahdollistaa salauksen purun yksityisen avaimen parina toimivalla julkisella avaimella; tätä kutsutaan asymmetriseksi salaukseksi ja on tuttua esimerkiksi SSL/TLS-sertifikaattien toimintaperiaatteesta. Julkinen avain on saatavilla alidomainille lisätystä TXT-tietueesta.
DKIM käytännössä vahvistaa siis, että viesti on lähetetetty siitä domainista jonka vastaanottaja näkee lähettäjänä, ja että allekirjoitettuja tietoja ei ole muutettu sen jälkeen, kun viesti on lähtenyt alkuperäiseltä lähettäjältä. DKIM ei kuitenkaan onnistu tässä tehtävässä täydellisesti yksinään sillä koko viesti ei ole allekirjoitettuna, mikä mahdollistaa uusien kenttien lisäämisen välityksen aikana ilman, että allekirjoituksen validiteetti kärsii.
Esimerkki DKIM-tietueesta, joka on tehty kuvitteelliselle domainille esimerkkidomain.fi
default._domainkey.esimerkkidomain.fi IN TXT “v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDD4XQfxLd+VryFLdLJMqWveORb5KIWPMzQh6tm+sWZoy7stguFSagQISKkYA2eaYd95A7f2Pn8slEO21QDrmSMhNYb42JKbK4cX9Y+T1P48ZPD3oaUXMyHhsVUmvwt6KgmhjjO2eWFrCHNLONpKF6hMwgDuHEyANx5rUsVgQAZNwIDAQAB;”
Tietueen nimiosa sisältää selektorin, joka on verkkotunnuksen nimeen liitetty merkkijono jonka avulla julkinen DKIM-avain tunnistetaan. Se on osa DKIM-allekirjoitusta ja lisätään DKIM-allekirjoituksen otsikkokenttään. Selektorin avulla samalla domainilla voi olla useampi eri DKIM-tietue.
Tietueen arvo puolestaan sisältää seuraavat osat:
v=DKIM1: versio, jota käytetään. Tämä on oletusarvoinen versio, eli sen mukanaolo tietueessa ei ole välttämätöntä.
k=rsa: avaimen tyyppi. Oletusarvo on rsa, eli tämänkään ei ole pakko olla mukana tietueessa.
p: julkinen avain, joka koostuu merkkijonosta. Se generoidaan yhdessä sitä vastaavan yksityisen avaimen kanssa DKIMin käyttöönoton aikana.
DKIM-tietue luodaan palvelimella, jota käytetään sähköpostien lähettämiseen. Domainkeskuksen asiakkaat, jotka käyttävät postipalveluamme, saavat DKIM-tietueen suoraan Plesk-hallinnan kautta. Pleskin generoima tietue tulee syöttää domainin DNS:ään, minkä jälkeen DKIM on käytössä domainilla.
DMARC (Domain-based Message Authentication, Reporting and Conformance)
DMARC eli Domain-based Message Authentication, Reporting and Conformance sitoo yhteen SPF- ja DKIM-protokollat. DMARC toimii siis varmennusprotokollana, joka määrittelee mitkä kaikki varmennusmetodit domainin nimissä lähetetyn viestin tulee läpäistä ja miten näitä sähköposteja tulee käsitellä. DMARCin ’Reporting’-osio puolestaan viittaa DMARCin sisäänrakennettuun raportointimekanismiin, joka tuottaa XML-muotoisia raportteja sekä hylätyistä että onnistuneista lähetyksistä.
DMARC-tietue löytyy _dmarc-alidomainista ja näyttää esimerkiksi tältä:
v=DMARC1;p=reject;pct=100;rua=mailto:postmaster@dmarcdomain.com
Ainoastaan kaksi näistä tägeistä eli tietueen osista ovat pakollisia, ”v” ja ”p”. Yksinkertaisimmillaan DMARC-tietue voisi olla siis esimerkiksi ”v=DMARC1; p=none”
Esimerkkitietueen eri osat merkitsevät seuraavia asioita:
v: Protokollaversio. Tätä tägiä käytetään identifioimaan TXT-tietue DMARC-tietueeksi jotta sähköpostipalvelimet erottavat sen muista TXT-tietueista. Mikäli arvo ei ole tismalleen oikein tai v-tägi ei ole tietueen ensimmäinen osa, jättää vastaanottajan sähköpostipalvelin koko tietueen huomioimatta.
p: Käytäntö, jolla lähetetetyt viestit käsitellään, mikäli ne eivät läpäise DMARC-autentikaatiota. P-tägille on kolme eri vaihtoehtoa: p=none, p=quarantine ja p=reject. p=none kertoo ettei domainin omistaja ole määrittänyt käytäntöä, jolla tällaiset viestit tulee käsitellä. p=quarantine ohjeistaa vastaanottajan sähköpostipalvelinta käsittelemään DMARC-autentikaation läpäisemättömiä viestejä epäilyttävinä ja p=reject hylkäämään tällaiset viestit.
pct: Prosenttiosuus viesteistä, joihin DMARCia sovelletaan. Prosenttiosuuden määrittely mahdollistaa DMARCin käytön vaiheittaisen kasvattamisen, jolloin DMARCin käytännön vaikutusta saadaan hyvin testattua.
rua: Sähköpostiosoite, johon DMARC-raportit lähetetään.
DMARC on DKIM:n ja SPF:n jälkeinen todennuskerros, joka käytönnössä siis pakottaa viestit menemään sekä SPF- että DKIM-validoinnin läpi. Tämän lisäksi DMARC sisältää identifier alignment -ominaisuuden, jota SPF:ssä ja DKIM:ssä ei ole. DMARC estää ”header from” -osoitteen spooffaamista vertaamalla ”header from”-domainnimeä ”envelope from”-domainnimeen ja ”d=domain name”-domainnimeen. ”Envelope from”-domain määritellään SPF-tietueen tarkistuksen yhteydessä ja ”d= domain name” löytyy osana DKIM-allekirjoitusta. DMARC on olennainen osa spoofingin torjumista, mutta sen matala käyttöaste hankaloittaa spoofingin estoa.