Moduuli 4 · 4.3
DKIM käytännössä: selectorit, avaimet ja palvelut
Moduuli 4: Toimitettavuus: SPF, DKIM ja DMARC käytännössä · Lukuaika: 12 minuuttia
Oppimistavoite: Tämän oppitunnin jälkeen osaat tulkita DKIM-Signature-otsikkorivin, ottaa DKIM:n käyttöön omalla domainillasi jokaisessa lähetyspalvelussa, tarkistaa toimiiko selector, ja selittää miten avaimet vaihdetaan turvallisesti.
Keskeiset käsitteet: DKIM-Signature, d= (allekirjoittava domain), s= (selector), h= (allekirjoitetut otsikkorivit), bh= ja b=, kanonisointi (c=), <selector>._domainkey.<domain>, TXT jossa p= tai CNAME palveluun, avaimen pituus 2048 bittiä (RFC 8301), 255 merkin pätkät, ed25519 (RFC 8463), avaimen vaihto, tyhjä p= (peruutettu), DKIM ja uudelleenohjaus
Miksi DKIM on kolmesta tärkein
SPF kertoo, mitkä palvelimet saavat lähettää postia, mutta hajoaa uudelleenohjauksessa ja katsoo Return-Pathia, joka monessa palvelussa ei ole sinun. DKIM asettaa allekirjoituksen itse viestiin. Tämä allekirjoitus säilyy uudelleenohjauksessa (kunhan viestiä ei muuteta) ja se on sidottu domainiin, jonka itse valitset. Siksi DKIM on käytännössä usein ainoa asia, joka saa DMARC:n läpäisemään uutiskirjeissä, kirjanpito-ohjelmasta tulevissa laskuissa ja uudelleenohjatussa postissa.
Perusteet (miten avain näkyy DNS:ssä, mikä selector on) löytyvät DNS-kurssin oppitunnilta 4.4. Täällä mennään pidemmälle: mitä allekirjoitus tarkalleen sisältää, ja miten DKIM otetaan käyttöön jokaisessa palvelussa?
Allekirjoituksen tulkitseminen
Avaa vastaanottamasi viestin otsikkorivit (oppitunti 1.5). Ylhäällä näkyy, jos viesti on allekirjoitettu, jotain tällaista:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=x;
t=1762588800; h=from:to:subject:date:message-id:mime-version:content-type;
bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;
b=Gm7yW3q...pitkä merkkijono...Qx9A==| Tunniste | Merkitys |
|---|---|
v=1 | DKIM-versio |
a=rsa-sha256 | Algoritmi: RSA-avain, SHA-256. Myös mahdollinen: ed25519-sha256 |
c=relaxed/relaxed | Kanonisointi: kuinka tiukasti pieniä muutoksia (välilyönnit, isot kirjaimet otsikkorivien nimissä) käsitellään, erikseen otsikkoriveille ja tekstille. relaxed on tavallinen ja sallivampi kuin simple |
d=example.com | Tämä on allekirjoittava domain. Tämä domain vastaa viestistä. DMARC vertaa tätä Lähde-osoitteeseen |
s=x | Selector: mikä kyseisen domainin avain on käytössä |
t= | Allekirjoitusajankohta (sekunteja vuodesta 1970) |
h= | Mitkä otsikkorivit on allekirjoitettu. from pitää aina olla mukana |
bh= | Viestin tekstin sormenjälki (hash) |
b= | Itse allekirjoitus |
Vastaanottaja hakee julkisen avaimen osoitteesta <s>._domainkey.<d>, tässä siis x._domainkey.example.com, ja tarkistaa vastaako b= kohdan h= otsikkorivejä ja sormenjälkeä bh=. Jos matkalla on muuttunut vaikka yksi kirjain tekstissä tai allekirjoitetussa otsikkorivissä, tarkistus epäonnistuu.
Authentication-Results-otsikkorivillä näet tuloksen, esimerkiksi dkim=pass header.d=example.com header.s=x. Viestillä voi olla useita allekirjoituksia, esimerkiksi yksi omalta domainiltasi ja yksi itse palvelulta. DMARC:n kannalta merkitsee vain allekirjoitus, jonka d= vastaa Lähde-domainiasi.
Jokaiselle palvelulle oma selector
Domainilla voi olla samanaikaisesti monta DKIM-avainta, kullakin oma selectorinsa. Juuri niin on tarkoitus: jokainen palvelu, joka lähettää postia puolestasi, allekirjoittaa omalla avaimellaan.
| Lähettäjä | Selector (esimerkki) | Miten se näkyy DNS:ssä |
|---|---|---|
| Hosting-sähköpostipalvelin | x tai default | TXT-tietue, jonka paneeli luo |
| Microsoft 365 | selector1, selector2 | kaksi CNAME-tietuetta Microsoftille |
| Google Workspace | google (oletus) | TXT-tietue avaimella, jonka luot hallintakonsolissa |
| Uutiskirjepalvelu | esimerkiksi k2, k3, mte1 | yleensä CNAME-tietueita palveluun |
TXT vai CNAME?
- TXT-tietueessa asetat itse julkisen avaimen DNS:ään. Jos palvelu haluaa uuden avaimen, sinun pitää päivittää tietue.
- CNAME-tietueessa osoitat selectorin palvelun nimeen, esimerkiksi
k2._domainkey.example.com CNAME dkim2.mailer.example.Palvelu hallitsee tällöin avainta itse ja voi vaihtaa sen ilman, että sinun tarvitsee tehdä mitään. Siksi suuret palvelut valitsevat CNAME:n, ja käyttävät usein kahta: näin ne voivat vaihtaa aktiivisen ja uuden avaimen välillä.
Huomaa: CNAME ei voi olla samassa nimessä kuin toinen tietue. Jos selector1._domainkey-nimessä on jo TXT-tietue, poista se.
Tärkeintä: ota DKIM käyttöön palvelussa
Monessa palvelussa DKIM omalla domainillasi ei ole oletuksena päällä. Ne allekirjoittavat tällöin omalla domainillaan (d=mailer.example). Viesti on tällöin kyllä allekirjoitettu, mutta ei kohdistettu Lähde-osoitteeseesi. DMARC:n kannalta tämä ei merkitse mitään. Palvelun hallinnassa tämä kutsutaan usein "domainin vahvistamiseksi", "domain-vahvistukseksi", "autentikoinniksi" tai "omaksi lähettäjädomainiksi". Vasta kun olet lisännyt tietueet JA ottanut asetuksen käyttöön palvelussa, se allekirjoittaa d=example.com:lla.
Avaimet: pituus, pätkät ja algoritmi
- Pituus. RFC 8301 sanoo: vähintään 1024 bittiä, ja lähettäjien pitäisi käyttää vähintään 2048 bittiä. Käytä 2048 bittiä. 512-bittinen avain katsotaan vastaanottajien toimesta virheelliseksi.
- 255 merkin pätkät. TXT-tietue koostuu merkkijonoista, jotka ovat enintään 255 merkkiä pitkiä. 2048-bittinen avain on noin 400 merkkiä pitkä, eikä mahdu yhteen jonoon. Tietue koostuu silloin kahdesta tai useammasta peräkkäisestä jonosta (
"v=DKIM1; k=rsa; p=MIIBIj..." "...IDAQAB"), jotka vastaanottaja liittää yhteen. Useimmat paneelit tekevät tämän automaattisesti. Jos tämä menee pieleen, saat katkenneen avaimen ja jokainen allekirjoitus epäonnistuu. Kopioi avain siis aina kokonaisuudessaan, ilman ylimääräisiä välilyöntejä tai lainausmerkkejä keskellä. - ed25519 (RFC 8463) on moderni algoritmi lyhyillä avaimilla. Kaikki vastaanottajat eivät vielä tarkista sitä. Siksi sen käyttäjät allekirjoittavat kahdella allekirjoituksella: RSA:lla ja ed25519:llä.
Avaimen vaihtaminen
On hyvä vaihtaa avain silloin tällöin, ja ehdottomasti jos epäilet, että yksityinen avain on vuotanut (esimerkiksi palvelimen murron tai lähteneen ylläpitäjän jälkeen). Toimi näin:
- Luo uusi avain uudelle selectorille, esimerkiksi
s2026, ja aseta julkinen avain DNS:ään. - Odota, että tietue näkyy kaikkialla (TTL, katso DNS-kurssin oppitunti 6.1).
- Anna palvelimen allekirjoittaa uudella selectorilla.
- Jätä vanha avain vielä pariksi päiväksi: matkalla jo ollut tai uudelleen tarkistettava posti viittaa siihen vielä.
- Peruuta vanha avain tyhjentämällä
p=(v=DKIM1; p=), tai poista tietue kokonaan.
CNAME-tietueita käyttävissä palveluissa palvelu tekee tämän itse.
Mikä saa DKIM:n epäonnistumaan
- Viesti muuttuu matkalla: postituslista joka lisää
[listan nimi]aiheeseen tai lisää alatunnisteen, virustentorjuntaohjelma joka liittää rivin viestin alle, uudelleenohjauspalvelin joka muuttaa muotoilun. - Väärä tai katkennut avain DNS:ssä.
- Selectoria ei ole olemassa: kirjoitusvirhe nimessä, tai
selector1._domainkey.example.com.example.com(domainin nimi kahdesti, koska paneeli lisää sen itse perään). - Avain peruutettu (tyhjä
p=), mutta palvelin allekirjoittaa yhä kyseisellä selectorilla.
Toimivuuden tarkistaminen
- Lähetä viesti palvelusta Gmail- tai Outlook.com-osoitteeseen.
- Avaa otsikkorivit ja etsi
DKIM-Signature: kirjaa ylösd=jas=. - Katso
Authentication-Results-kentästä onko siinädkim=pass, ja onkoheader.d=oma domainisi. - Etsi selector:
dig TXT s._domainkey.example.com(tai verkkotyökalulla). Siellä pitää ollap=pitkällä avaimella, tai CNAME joka johtaa tällaiseen tietueeseen.
Käytännössä: miltä tämä näyttää paneelissa
WebOkén hosting-paketissa DKIM on oletuksena päällä, selectorilla x: tietueen nimi on x._domainkey.<oma domainisi>. DirectAdminissa näet sen DNS Administration -osiossa; jos DNS on toisella palveluntarjoajalla, kopioi tietue sinne. Oma WebOkéssa kortti Set E-mail näyttää, mikä arvo pitäisi olla ja löytyykö se. Muilla palveluntarjoajilla selector on eri (default, mail, dkim), mutta löydät sen samalla tavalla: paneelista tai allekirjoitetun viestin s=-kentästä.
Yhteenveto
- DKIM on tarkistus, joka säilyy uudelleenohjauksessa ja jonka sidot palvelukohtaisesti omaan domainiisi; DMARC:n kannalta merkitsee vain allekirjoitus, jonka
d=on oma domainisi. DKIM-Signature-kentästä löydätd=(domain) jas=(selector); avain sijaitsee osoitteessa<s>._domainkey.<d>.- Jokainen palvelu saa oman selectorin; CNAME-tietueet antavat palvelun vaihtaa avaimet itse. Muista ottaa DKIM omalla domainillasi tosiaan käyttöön palvelussa.
- Käytä 2048 bittiä; varo katkenneita avaimia kopioinnin yhteydessä.
- Vaihda avain uudella selectorilla ja peruuta vanha vasta sen jälkeen.
Tietovisa
Tehtävä
Tehtävä Z4.3: DKIM-selectorin tarkistaminen. Lähetä viesti omalta domainiltasi (tai palvelusta, joka lähettää postia puolestasi) omaan osoitteeseesi toisella palveluntarjoajalla. Avaa otsikkorivit ja täytä DKIM-Signature-kentän d=- ja s=-arvot, sekä mitä Authentication-Results-kentässä lukee dkim=-kohdassa. Ohjelma hakee selectorin elävästi, seuraa mahdollista CNAME:a, tarkistaa avaimen (läsnä, ei tyhjä, pituus) ja kertoo onko d= kohdistettu domainiin, jonka olet ilmoittanut lähettäjäksi.
Lue lisää
Näissä artikkeleissa kuvatut vaiheet koskevat WebOkén paneeleja; muilla palveluntarjoajilla toiminta on vastaavaa.
- Ilmainen DNS-kurssi 4.4: DKIM: allekirjoitus sähköpostisi alla
- DirectAdmin-ohje 5.8: DKIM:n käyttöönotto ja tarkistaminen
- DKIM:n määrittäminen, kun DNS on ulkoisella palvelimella
- WebOké-käyttöopas 6.7: Sähköpostiasetukset-kortti (MX, SPF, DKIM, DMARC)
- RFC 6376 (DKIM), RFC 8301 (avaimen pituus ja algoritmit), RFC 8463 (ed25519)
