DKIM (DomainKeys Identified Mail) verwendet eine digitale [[kryptographie|Signatur]], die der [[EMail]] hinzugefügt wird, um zu überprüfen, ob sie von einer vertrauenswürdigen Quelle stammt und während der Übertragung nicht verändert wurde. Der Absender signiert die E-Mail mit einem [[pki|privaten Schlüssel]], und der Empfänger kann die Signatur mit dem [[pki|öffentlichen Schlüssel]] überprüfen, der im [[DNS]]-Eintrag der Domain des Absenders hinterlegt ist.
{{dkim-example-entry.png}}
nslookup -type=txt selector._domainkey.domain.local
=====Selektor=====
K1 im FQDN ist dabei der sogenannte Selector. Im Email-Header wird dieser hinterlegt, damit das überprüfende System weiss, welcher Key (falls mehrere vorhanden sind) für die Signatur verwendet worden ist. So lässt sich auch der Mailserver eines Massenmail-Versenders einbinden, indem dessen Public Key mit dem entsprechenden Selector in der DNS-Zone der Email-Domäne hinterlegt wird. Der lange String hinter p= ist der öffentliche Schlüssel, welcher die Validierung der Signatur erlaubt.
Vorteile gegenüber [[sender_policy_framework|SPF]]
* Die Signatur bleibt auch bei Weiterleitungen gültig und lässt eine Verifikation zu
* Neben der Herkunft kann auch die Nachricht selbst geschützt werden
=====Auflösung=====
Beim Versand einer Mail wird sie vom Mailserver des Absenders mit einer DKIM Signatur versehen. Diese Signatur steht im E-Mail-Header.
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=example.com; s=mx1; ...
* d=example.com - die Domain, für die DKIM gilt
* s=mx1 - der Selector, der zum DNS-Eintrag gehört
Um die Signatur zu verifizieren, ruft der empfangende Mailserver folgenden TXT DNS Eintrag ab:
mx1._domainkey.example.com
* Selector (s=mail1)
* _domainkey
* Domain (d=example.com)
mx1._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3..."
Dieser enthält den öffentlichen Schlüssel, mit dem der empfangende Mailserver die Signatur verifizieren kann.
=====Links=====
* {{dkim-signer-for-exchange.pdf}}
* [[https://github.com/Pro/dkim-exchange|Exchange DKIM Signer]]