DKIM-signatur: Vad är det, varför du behöver det och hur fungerar det?
Domännycklar identifierad post (DKIM) är en metod för autentisering av e-post som gör att en organisation kan ta ansvar för ett skickat meddelande. Den använder kryptografi med offentliga nycklar för att digitalt "signera" e-postmeddelanden, vilket bevisar för mottagarna att meddelandet skickades av domänägaren. Mottagarna kan kontrollera signaturen mot domänens publicerade offentliga nyckel för att verifiera signaturen.
I den här artikeln kommer DKIM att granskas i detalj och du får en översikt över hur denna metod för autentisering av e-post fungerar.
Vad är DKIM-signatur?
DKIM står för DomainKeys Identified Mail. Det är ett system för autentisering av e-post som ger integritet och icke-avvisande genom att använda kryptografiska signaturer. Det tillsammans med DMARC kan bidra till att bygga upp en robust infrastruktur för skydd mot förfalskning av din e-post.
DKIM-protokollet skapar en kryptografisk signatur för varje meddelande som skickas till mottagare, samt en domän-signatur som läggs till i meddelandehuvudet.
Denna signatur används av mottagaren för att kontrollera att meddelandet faktiskt skickades av domänägaren och inte av någon annan. Den verifierar också att meddelandet inte har manipulerats på vägen från avsändare till mottagare.
Om det inte stämmer, ska du antingen:
- Meddelandet ändrades under överföringen, eller
- Meddelandet skickas på uppdrag av någon annan som har tillgång till den avsändande serverns privata nyckel.
I sådana fall där signaturerna inte stämmer överens förhindrar DKIM att e-postmeddelandena levereras till de avsedda mottagarna, eftersom de inte kan bekräfta att de är legitima meddelanden från ditt varumärke.
Hur fungerar en DKIM-signatur?
DKIM-signaturer fungerar genom att en digital signatur infogas i e-postmeddelandets rubrik. Signaturen kan verifieras av den mottagande servern och användas för att avgöra om ett e-postmeddelande har manipulerats under transporten eller inte.
DKIM använder kryptografi med offentliga nycklar, som bygger på ett par nycklar: en privat och en offentlig. Den offentliga nyckeln delas ut till alla som vill ha den, medan den privata nyckeln hålls hemlig (vanligtvis av ägaren).
När du signerar ett e-postmeddelande med DKIM används din privata nyckel för att skapa en hash av meddelandets innehåll och sedan kryptera denna hash med mottagarens offentliga nyckel. Denna krypterade hash infogas sedan i huvudet på ditt meddelande, där den kan valideras av mottagaren.
Nycklarna i DKIM-signaturen
DKIM-signaturer genereras med hjälp av två kryptografiska nycklar, en offentlig och en privat. Den offentliga nyckeln publiceras i DNS, medan den privata nyckeln hålls hemlig.
När ett e-postmeddelande signeras används den privata nyckeln för att generera en hash av meddelandet. Denna hash krypteras sedan med den offentliga nyckeln och skickas tillsammans med själva meddelandet.
När mottagaren får denna information använder han/hon sin privata nyckel för att dekryptera hashkoden och kontrollera att den stämmer överens med meddelandets ursprungliga innehåll.
Delar av DKIM-signaturen
En DKIM-signatur består av två delar: en rubrik och en kropp. Huvudet innehåller information om avsändarens identitet, inklusive e-postadress och offentlig nyckel. Kroppen innehåller det faktiska meddelandet som skickades.
- För att beräkna en DKIM-signatur tar du först en MD5-hash av ditt domännamn (till exempel "example.com"), som är din offentliga nyckel.
- Sedan sammanfogar du ditt domännamn med en SHA1-hash (till exempel "sha1(example.com)") och lägger till det i det ursprungliga meddelandet som skickades.
- Du tar sedan en annan MD5-hash av den kombinerade strängen (t.ex. "md5(sha1(example.com))") och bifogar den som en rubrik i början av ditt meddelande innan du skickar det för leverans.
Stegen i DKIM-signering
Kom igång med DKIM:
- Det första steget är att skapa en privat nyckel som används för att signera meddelandet.
- Det andra steget är att skapa en offentlig nyckel som används för att verifiera signaturen.
- Det tredje steget är att generera två DNS TXT-poster: en för den offentliga nyckeln och en för selektornamnet.
- Det fjärde steget är att publicera dessa poster i din DNS-zonfil.
Stegen för DKIM-signering:
1. Avsändaren genererar ett meddelande med en unik identifierare som kallas en kryptografisk hashfunktion (vanligtvis SHA-256). Denna unika identifierare kallas ett DKIM-signaturhuvudfält och innehåller information om vem som har signerat meddelandet och när de gjorde det.
2. Avsändaren lägger till ytterligare rubrikfält i meddelandet som innehåller information om:
- hur länge meddelandet ska anses vara giltigt
- hur ofta signaturen bör kontrolleras på nytt för att kontrollera att den är giltig
- om signaturer ska valideras med hjälp av en extern tjänst som SPF (Sender Policy Framework)
- Vilka nycklar användes för att signera meddelandet.
3. Mottagare som vill verifiera dessa signaturer använder slutligen sin kopia av avsändarens offentliga nyckel från sina DNS-poster eller en mellanliggande tjänst som SenderID eller Mailgun, och använder den sedan för att validera meddelanden med DKIM-huvuden.
Förstå de taggar som används i DKIM-signaturen
Detta är ett exempel på hur en DKIM-signaturpost kan se ut:
DKIM-signatur: v=1; a=rsa-sha256; s=jun2005.eng; c=relaxed/relaxed; d=example.com; s=dkim; t=1526555738; bh=mhU6OJb5ldZf+z/pX9+0Nc4tj/lmyYHWbR8LgI2Q=; h=To:From:Subject:Date:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding; b=s1sdZCzdX9vxocsMSlT7cOrYixl1g8wfkdzrVe7BGN6ZdPV9xu2A |
v= Den här taggen anger DKIM-versionen.
a= Här anges den algoritm som undertecknaren använder för att generera sin offentliga nyckel. Den kan vara en av RSA1_5, RSA-SHA1 eller RSASSA-PSS. Om denna markering saknas antas RSA-SHA1.
c= Specificerar den kanoniseringsalgoritm som används för att generera hash från rubrikfält enligt kraven i [BCP14]. Detta följs av en kommaseparerad lista med 1 eller flera kanoniseringsalgoritmer (t.ex. "c=relaxed"). Om denna tagg utelämnas antas avslappnad kanonisering.
d= Anger vilket domännamn som ska användas när signaturer genereras för meddelanden som skickas av den här servern (eller en annan mottagare).
s= "s"-taggen är en valsträng som används av en mottagande server för att avgöra vilken offentlig nyckel som ska användas för att verifiera signaturen.
t= Tidsstämpeltaggen används för att registrera när signaturen skapades och representeras vanligtvis som en Unix-tidsstämpel (antalet sekunder sedan den 1 januari 1970).
bh= Den här taggen representerar hash-koden, som är en krypterad version av meddelandets innehåll (inklusive rubriker). Detta hjälper till att förhindra att meddelanden manipuleras efter att de har signerats av DKIM och innan de når sina avsedda mottagare.
h= Hashvärdet för rubriker innehåller alla rubriker i sin helhet (inklusive de som är signerade av Sender Policy Framework eller DomainKeys Identified Mail) utom de som uttryckligen har uteslutits genom att de har inkluderats i en lista över uteslutna rubriker. Detta värde måste beräknas med hjälp av SHA-1 eller MD5.
b= Taggen "b" är den base64-kodade representationen av en kryptografisk hashfunktion för den kanoniserade kroppen av meddelandet (dvs. efter att MIME-kodningen har tagits bort).
Generera en DKIM-signatur
- Generera en offentlig och en privat nyckel.
- Generera en DKIM-rubrik och en DKIM-fot.
- Signera e-postinnehållet med din privata nyckel med den valda algoritmen, till exempel RSA-SHA256 eller RSA-SHA512.
- Komprimera meddelandet med den valda algoritmen, till exempel deflate eller ingen.
- Infoga DKIM-rubrikerna i början av meddelandet före eventuella MIME-rubriker.
- Sätt in DKIM-footer efter eventuella MIME-footers.
Säkerställande av DKIM-signaturens giltighet
Vissa åtgärder kan vidtas för att säkerställa att DKIM-signaturen är giltig:
- Bestäm om du vill använda en traditionell DKIM-signeringsalgoritm eller en optimerad algoritm.
- Beräkna ett hashvärde för meddelandets rubrik och kropp (vanligtvis SHA-256).
- Välj en lämplig signeringsalgoritm (t.ex. RSA eller ECDSA).
- Kontrollera att din offentliga nyckel matchar den väljare som du angav tidigare i steg 1 (detta görs med hjälp av DNS).
- Signera ditt meddelande med din privata nyckel och lagra den som en ASCII-sträng i Base64-format i huvudet på ditt e-postmeddelande (förutom att placera den i DNS).
Verifiera en DKIM-signatur
DKIM-signaturverifiering är komplicerat. Det krävs mycket expertis för att konfigurera och underhålla den, och den används ofta tillsammans med andra system som SPF, som också är komplicerade.
Därför använder de flesta e-postmarknadsförare ett verktyg för verifiering av DKIM-signaturer som t.ex. DKIM-postkontrollant för att kontrollera sina DKIM-signaturer. Detta verktyg kontrollerar de DKIM-nycklar som har lagts till i ett e-postmeddelande och verifierar dem mot en offentlig databas. Om nycklarna är giltiga och betrodda kan e-postmeddelandet betraktas som legitimt.
Detta är viktigt av flera skäl: för det första säkerställer det att din e-post inte flaggas som skräppost av internetleverantörer eller deras kunder, för det andra kan du undvika att din domän svartlistas av andra domäner (detta kallas domänförgiftning) och slutligen säkerställer det att din e-post inte hamnar i någon form av man-in-the-middle-attack.
Slutsats
DKIM är en lovande lösning som gör det möjligt för en organisation att validera legitimiteten hos e-postmeddelanden, särskilt från externa avsändare. När den tillämpas konsekvent i en meddelandemiljö ger den mottagarna en hög grad av säkerhet om att ett e-postmeddelande skickades av en auktoriserad representant för avsändarens domän. Det är dock viktigt att notera att även om DKIM tillhandahåller en verifieringsmekanism är det inte tillräckligt för att skydda mot bedrägeriangrepp via e-post, t.ex. spoofing och phishing. För att en DMARC-policy som avvisas är obligatorisk.
Behöver du hjälp?
E-postautentisering är en nödvändig del av alla företags digitala marknadsföringsstrategi. Med så många e-postmeddelanden som skickas och tas emot varje dag är det lätt att ditt varumärke försvinner i mängden. Men med e-postautentiseringstjänster från PowerDMARC kan du se till att dina e-postmeddelanden ses av rätt personer.
Vår lösning för autentisering av e-post hjälper dig:
- Öka leveransbarheten för e-post genom att verifiera ditt domännamn och DKIM-signatur.
- Förbättra din varumärkesimage genom att visa mottagarna att du är ett legitimt företag.
- Förbättra kundernas upplevelse genom att se till att de endast ser legitima meddelanden från dig.
- Webbsäkerhet 101 - bästa praxis och lösningar - 29 november 2023
- Vad är e-postkryptering och vilka är dess olika typer? - Den 29 november 2023
- DMARC Black Friday: Stärk dina e-postmeddelanden denna semestersäsong - November 23, 2023