Dies ist eine alte Version des Dokuments!
DKIM - Domain Key Identified Mail
Zur Sicherstellung der Authentizität von E-Mail-Absendern wurde in 2004 von Yahoo ein Identifikationsprotokoll entwickelt, mit welchem die Authentizität von E-Mail-Absendern sichergestellt werden kann. Dies wurde vor allem mit dem Wunsch zur Eindämmung unerwünschter eMail wie Phishing und/oder Spam konzipiert.
Ursprünglich wurde DomainKeys unter dem Titel Domain-Based Email Authentication Using Public Keys Advertised in the DNS (DomainKeys) im RFC 4870 veröffentlicht. Im RFC 4871 wurde dies unter dem Titel DomainKeys Identified Mail (DKIM) Signatures weitergeführt.
DKIM basiert auf asymmetrischer Verschlüsselung, bei der eMails mit zwei Signaturen versehen werden, die erste über ein paar Header-Zeilen der Nachricht und die zweite über den Mail-Body, also dem Inhalt einer eMail. Die zugehörigen Prüfsummen werden in standardisierten DKIM-Signature-Headern in der eMail eingetragen.
Der empfangende Mail-Server ist nun in der Lage, an Hand des öffentlichen Schlüssels diese Daten, der im TXT-Record des Domain Name System (DNS) der Domäne abrufbar ist, die Daten zu verifizieren. Ist diese Signatur gültig, ist der Absendeserver der eMail zweifelsfrei festgestellt. Bei einem negativen Ergebnis hat nun der empfangende MTA1) die Möglichkeit, die Annahme der eMail zu verweigern bzw. die empfangene Nachricht auszusortieren. Wie bereits erwähnt ist dies möglich, da der sendende MTA jede versendete E-Mail im sogenannten „DomainKey-Signature-Header“ mit einer digitalen Signatur des Inhaltes der E-Mail versieht.
Installation von AMaVIS
Zur Signierung und Überprüfung der empfangenen Daten nutzen wir bei unserem Mailserver-Postfix die Möglichkeiten von AMaViS. Die Grundinstallation von AMaViS ist im Kapitel SPAM- und Virenschutz Mechanismen mit Greylisting, policyd-weight, ClamAV, SpamAssasin und AMaVIS beschrieben. In unserer Postofficeumgebung nutzen wir den AMaVis-Daemon in der Version amavisd-new-2.8.0. Neben diesem Perl-Programm benötigen wir noch die beiden Pakete perl-Mail-DKIM und perl-Crypt-OpenSSL-RSA welche bei der Installation von amavisd-new automatisch mitinstalliert wurden.
Bei der nachfolgenden Konfigurationsbeschreibung gehen wir davon aus, dass bereits ein funktionierender Mailserver wie auch der Viren- und SPAM-Schutz mit Hilfe von AMaViS zur Verfügung steht.
Konfiguration
Wertvolle Hinweise zur Konfiguration und Nutzung von DKIM entnimmt man am besten der original AMaViS-Dokumentation Setting up DKIM mail signing and verification.
Überprüfung der DKIM-Signaturen
Damit unsere AMaViS-installation die Überprüfung von DKIM-Signaturen im Mailheader vornimmt bedarf es keiner großen Konfiguration. Wie in der Originaldoku von Marc Martinec zu entnehmen ist, müssen wir lediglich die Variable $enable_dkim_verification setzen, in dem wir ihr den Wert 1 zuweisen.
# vim /etc/amavisd.conf
... $enable_dkim_verification = 1; # enable DKIM signatures verification ...
Anschließend starten wir den Dämon einmal durch.
# service amavisd condrestart
Shutting down Mail Virus Scanner (amavisd): [ OK ] Starting Mail Virus Scanner (amavisd): [ OK ]
Bekommen wir nun eine eMail mit einer DKIM-Signatur im Mail-Header, so können wir diese Headerzeile im Quelltext der Nachricht sehen:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nausch.org; h= content-transfer-encoding:content-type:content-type:subject :subject:mime-version:user-agent:from:from:date:date:message-id :received:received; s=140224; t=1393867197; x=1395681598; bh=sCU xtMjFEZ3m2MycmeHx9n/S11f5YgqlMUgftS5R4gg=; b=NoF26JrAH2qzT1u+xVp mIOxrFZDt6BYSff5t0wF1LAQxYTcjCun/FageediXMTzOYFeX644/PZ3TCjsEeow AXjPbpXTNCVODBzh2elVHhtwHCmbOfbqISCBrd6xBVlzOHloYJB/UVd8ilAw7Bdr G51wyKxZS5UyWKpd0l8KXijMQSZUcAY8RYk+glKWEl3D3aZTiKH4O0YhvsvM30YC 0qW+k4uTph+gNJkyxxRHLQOGkD6xlaoiHOrTutTCapRJp25TJWKMHBmg6qcNrZFH Pfh6GUMfqISKnjjVQ6VOKISLLmz+bRnWoPWEiPw07LFL91XAkMtKzEhsDT6uaVsr 9or/xKARDL6Yhlbi23nT/mrWA0mWrkmnIZxDHnYOTHhWVeU1Pa3gVqJV5AWS7QNF h5szXnn1M3poFEBh9nhqo8hyZaYLHbP1gGctmajftkGmHruGfxULwhitacpCbGa0 iYeoI9RY9uETcN6EuKd9dguSm3oOVPO77J69fp1CiPCItgtBL9CpoD3YZyQ/fMas IZPH1w7fC1XZZW5KQSHUO0sPbhBup3vn9Gjany70sZwnFNqA9qs7gEOsWA9mFACw 6TOst7Q781eMkfWNlIo39v75OspUxGteOFZ4VZSthhN/QXBvndBOhYpOGYVuYZKv +AI/2fSj9BuLnp+nVem2aL4Y=
Unser AMaViS-Daemon kann nun mit Hilfe des Public-Keys des absendenden Mailservers überprüfen, ob dieser Eintrag gültig, die Nachricht also nicht manipuliert wurde. Bei einem positivem Prüfungsergebnis vermerkt unser AMaViS-Daemon dies mit einer entsprechenden neuen Header-Zeile.
Authentication-Results: mx1.piratenpartei-bayern.de (amavisd-new); dkim=pass (4096-bit key) header.d=nausch.org
Generierung von DKIM-Signaturen
Wie Eingangs bereits erwähnt, wird bei den DKIM-Signaturen auf asymmetrischer Verschlüsselung zurück gegriffen. Wir benötigen also ein Schlüsselpaar aus public- und private-key. Bevor wir diese erzeugen, legen wir uns das Zielverzeichnis für unseren privaten Schlüssel an und passen die Berechtigung so an, dass dieses Verzeichnis unserem User amavis „gehört“:
# mkdir /var/amavis/dkim
# chown amavis:amavis /var/amavis/dkim
Im nächsten Schritt erstellen wir uns nun unser Schlüsselpaar. Dazu benutzen wir die Option genrsa des Befehls amavisd:
amavisd genrsa file_name [nbits]
Beim Dateinamen vermerken wir dabei am einfachsten das Erstellungsdatum YYMMDD (Jahr+Monat+Tag, z.B. 140228 für 28. Februar 2014). So haben wir es später einfacher, die einzelnen Schlüssel auseinander zu halten, wenn wir mehrere benötigen, oder einzelne Schlüssel für ungültig erklären (revoke'n).
# amavisd genrsa /var/amavis/dkim/dkim-key-140228.pem 4096
Private RSA key successfully written to file "/var/amavis/dkim/dkim-key-140228.pem" (4096 bits, PEM format)
Alternativ können wir auch openssl zum Erstellen des Schlüssel verwenden.
# openssl genrsa -out /var/amavis/dkim/dkim-key-140228.pem 4096
Generating RSA private key, 4096 bit long modulus ...................++ ...................................++ e is 65537 (0x10001)
Haben wir unseren Schlüssel mit Hilfe von openssl erzeugt, passen wir die Dateiberechtigungen und Rechte unseres erstellen Schlüssels an.
# chmod 600 /var/amavis/dkim/dkim-key-140228.pem
# chown amavis:amavis /var/amavis/dkim/dkim-key-140228.pem
In unserem zuvor Schlüssel-Verzeichnis befindet sich nun der erstellte private Schlüssel.
# ll /var/amavis/dkim/
-rw------- 1 amavis amavis 3243 Feb 28 21:53 dkim-key-140228.pem
In dieser Datei befindet sich nun der private key.
# cat /var/amavis/dkim/dkim-key.pem
-----BEGIN RSA PRIVATE KEY----- MIIJKQIBAAKCAgEAuJ3/CruOs3fCU0ujOStcNN85TJh+5HvMa9m99C5XuRBlxOr+ fp5BeIEtiPO0szKvvPojwrueCq0oOuEzjR/i2ObpRkzKRUXmAa0qVezUZwQIbKei uKII0PnpQclDrmQrzSXcQWPT57tkPg17Q9WamFUUaHeN3+pVGtMyjYekRaAoRlV+ a1gD111kXMPhiaFTMIncoRBS/gYN8FjfekH+ezqbLHLB8DLJQBZEGUILvJjAHX07 22XyqYtkn1qfv63nPRGw/qqAW1072Gchq4ZS4ZPQ89SrK4KcHt/XptSlztXMWtmR FQriHdvbjr1Fx7ZwXdTQ+ik2AUZLMdhMrQe6/1GujQiMD6po81NpYbrjnfd+QF4s Ubus4wPQKVNzsctiuzGlWsFexSHP4dAZtKnImJhVDnzZODQy0nSafedlr5g4VR36 vgm0YPWjSyRNnC/APHyw0DtHIrzTqfKuDeGv80uMPbEdujrw9gLbK3H8ow42iTic mgPgT3J5j70ZOo4o4FMtpZ/AEQw+VnWpSfw7bkMjufLc29XHbtp22wfgq2Lmarr3 +psaHokFaQrImkMbzdSL9CdabkLptanAilLScvq8UaKVC+G1+vHDgaweq3BhXD5+ YcJnJlp4msUqqxGYlnx4RSvv8PipMU2DsVFbNJSH5NJuS7GuzplNg+f20ysCAwEA AQKCAgAY4qM4TSPlKSV2mOF9mUyqi9RrcLraDZ32g7lJKt4EQiOVsZ9wbeChX7hF l6Qp65Eoxgb//s5E3iZoGWcbhMrNNgMHyN4TDGL+otrsDiprYG3KR6Z1gNHzaVx5 06ld3n7Q/mN8JPqxZ98RRjvxXt+h3QYNNuBW6H1kSkesMDaCdB45rNiHm6uY4ivf HUBPjwFpr4uf4lVtjF9goHovPqoQ7ktwaF+gAxiBnP688NwoJebvkqv43Psiw3li yZJzAfwDjVjwWwdGSYEBoJU3S7nsUkJ+O5J/IPHub3ngMRXQlZ0gOeeGkJr+L16f FQBM9VicLU2mCtwOu+zy4Rck07/u4/Xkqnq5cNLbc0a1AYU6UDikB3yrG1QeupGg /0M11D/4qDJ8hVK8Sl72SEWMnbkLh5YZEOoKE83C4uQ79yMnbSADXHJfUHmnO6O8 aDlCaMoRKw+Dj4n90/d3R-m4i153rV3R-gURu+p8UXtpz19zXK9nxsBsI1bl/63M 4y0VMba8UjgtSz2rzrjO2BkN4g/p3k1wmgyxAorJeyZRcNpG+HdBf4jMo5j8f+Jd BlZgjFx0d69v3hToHfWd6Un4yc1+KDsyB1uNwuA1zs5lVX5QGba5LgYhNPUWmhQ/ 3Vj2hG7Pp4FpK1UcnwoyX8YqK0/NJICqkwu+kDUDLHapgnVawQKCAQEA2YR/pVc4 CXEyxwwCfV5Q6qtHdgHGXwKfMikQl86YmDy2DLGTSojQW8BZmlCAxDqmaWit0DN8 TEGoM+hkVenz5ebG+SVFGGdQEh+urrRCHkrBIAGiNMHhh0ecKud2z7Pc+nxSDdKS 8QPko+wnAzG/WKNkl73Wvx06UqnbBqMSiG6SKjdtH2Kh2wXb5KT5PQYY112W4JIi 53PVQMbgwFdRaJyy1WmCro0OaIs/6bJPWIKuKdSw35fC6/lgQsC7elD5p0XrdcpN MuYJJOg0L8GYvIqO5+AIR5tCkutbd5yAEmLoHN6/IwDrt69YV1yLg27N09a/RJbI uTkQmtpaJBgzcQKCAQEA2UdrNeaoz9jaRxm6HJgGtIbO8RJM/9bGYMxgSP+KAGIY nQIEF/rxySdzIrkBuewIiWgKdjFiP+1DCi7M6IDu3YNxYik6f1Pp2HlZ7MUmT3XF 3Tm2RjnR33eCknoicohzEj5tSKFzshCqDDlv1sm9e32+eO5xjgx59EpxvjqQnP/4 PR3gxSIOGfYwAaHJnV3n/YAKKhM52f09+IMouk0javOYDg96Se6acnZszcLOv8vQ FiwtRTAWiV6wbY1H7SFwWb2fMINsmh9E4eOz17cmwVHDSjxOnCvwUpFsAAqqWRBa jqFxumSApErGEW97E1ucAdeZemqtki0yY3mnu6wqWwKCAQEAwjVNCsDu5W9OWO3e IzVcpcm7ih9XkGj03oJPsFrjX7mFCZxa2AeDkQgSeHc8IPgEsMSnu+bcKfHNTltF infSLgh4yuZ95KYJlcT34EBNcGJqQDt1KgmZZYGIa74yFIyQ1oy9bl3+mHZTZBBr XKzEHU31eI4k+IoOEtRZHHnpCCtBEbRfF9CmlrmKdYDej5+r+k4zcdrIk0KWurlW 3iSYKQEPowALj/GdVbZOoEd2FJ7JBcxDB7+mZ65GRhNy0GkQHkuNSaQQfUtqCqvQ PHtr9Zr4sQsUGWsEa8z747W1m7T3bR9sJMKjs2M5Svb0EauS1ns8Vu8R1F6g9sHS DbwV4QKCAQEAiMguFOOdOCNy3jmy8Rc/eVw4YIi90n05q2xd3PaJwM4AYq8HNrVy ish78cr37DxL73yAwYE7MbVCc+Gce23XcbmyojIEMm34E5/pXWWLRZCFvEv9lF4H 4h8RIvcidB3qglse0N6IQ/9gUrCHywypsGOV5DRvZhYym/hVfITPzxZRBuCNRGy4 5d0WwaBBFQEt72cwfuZVkAadgZnIBOhUuJqbCZbyzCIaNp6Yxjux/gnneF3dLeYk +duTQ5QiSIS5frUhxt+leazfpzi6Wb1h92dqgoxOjIAYrVIA5FHShXkHGS1HNCja 1xJ/eDBvEXOlVX+NjgQkOpabVwYZ8spiawKCAQAI30WzWHPLcFHOhaIIRr7VlUv5 IR96T95H+c0a5JzNFhSOwxnqCWOtTmUnlaJcFwbREYl2mrImjht44Tz3bNjQlGqr 04WUf1VExh1WRfRGlT8LWuSLgVDHrI6M5yl5sefzILqogHaiEAvKbaTlIowD8hbR MJGE0QdJKZNU/+dPO5w/0Rnq2kY54OJhSWZE0Z6zWqMQa3komnqQAXnlvHaUshjy 0M8oJ2zG8LEvqJllsjIU3orVPPfkuenWkn3cGQhx1xZIEEaLo1YC8eyAGW2OkKMP OMrxmovD66O4MuPCnnPfcftE1e80Gi/UgxiVrdGOqx8BZ/AmChdWFZx5ZrVF -----END RSA PRIVATE KEY-----
Den ersten Teil unserer Konfiguration haben wir schon erledigt. Nun weisen wir unseren AMaViS-Daemon an unsere ausgehenden Nachrichten mit einer DKIM-Signatur zu versehen. Hierzu tragen wir folgende Zeilen ein.
... $enable_dkim_signing = 0; # load DKIM signing code, keys defined by dkim_key dkim_key('nausch.org', '140228', '/var/amavis/dkim/dkim-key-140228.pem '); # Nausch.org's Mailserver key @dkim_signature_options_bysender_maps = ( { '.' => { ttl => 21*24*3600, c => 'relaxed/simple' } } );
Die Variable $enable_dkim_signing setzen wir erst noch auf den Wert 0, da wir unseren public-key erst noch auf dem für uns zuständigen Nameserver einen entsprechenden DNS-Eintrag hinterlegen müssen. Dies werden wir gleich im Anschluß machen!
In unserer AMaViS-Konfiguration hinterlegen wir nun die sowohl die Möglichkeiten der Signierung wie auch Überprüfung der DKIM-Funktionalitäten. Am Anfang unserer Konfigurationsdatei hinterlegen wir demnach folgende Definitionen.
# vim /etc/amavisd.conf
- amavisd.conf
$enable_dkim_verification = 1; # enable DKIM signatures verification $enable_dkim_signing = 0; # load DKIM signing code, keys defined by dkim_key dkim_key('nausch.org', 'main', '/var/amavis/dkim/dkim-key.pem'); # Nausch.org's Mailserver key @dkim_signature_options_bysender_maps = ( { '.' => { ttl => 21*24*3600, c => 'relaxed/simple' } } );
Bei diesem Beispiel gehen wir davon aus, dass wir nur eine Domäne auf unserem Mailserver haben und diese Nachrichten signieren wollen.
Haben wir noch weitere virtuelle Mailserver am laufen, können wir durch nachfolgende exeplarische Zeilen erreichen, dass auch diese Nachrichten mit unserem DKIM-Signatur versehen werden können.
- amavisd.conf
dkim_key('nausch.org', 'main', '/var/amavis/dkim/dkim-key.pem'); # Nausch.org's Mailserver key dkim_key('lists.nausch.org', 'main', '/var/amavis/dkim/dkim-key.pem'); # Nausch.org's Mailserver key dkim_key('ebersberger-liedersammlung.de', 'main', '/var/amavis/dkim/dkim-key.pem'); # Nausch.org's Mailserver key
Im ersten Schritt aktivieren wir nur die DKIM-Verifizierung, noch nicht die DKIM-Signierung! Solange wir unseren öffentlichen Schlüssel noch nicht via DNS-TXT-Record veröffentlich haben, verhindern wir so, dass von uns signierte Nachrichten am Zielserver abgewiesen werden, weil ohne dem öffentlichen Schlüssel, die Signierten Daten nicht decodiert werden können.
Damit AMaVis nun Kenntnis von unseren Änderungen erfährt, starten wir diesen einmal durch.
# service amavisd restart
Shutting down Mail Virus Scanner (amavisd): [ OK ] Starting Mail Virus Scanner (amavisd): [ OK ]
öffentlichen Schlüssel
Damit wir den unseren öffentlichen Schlüssel via DNS veröffentlichen können, geben wir den Key am Bildschirm aus.
# amavisd showkeys
; key#1, domain nausch.org, /var/amavis/dkim/dkim-key.pem main._domainkey.nausch.org. 3600 TXT ( "v=DKIM1; p=" "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWypzomx/COZmYML/9j/MRNH9C" "hw652qzbHjM4RdzpeWzainKC+kyYP+VuoJWMtUX2KSo+kTuWaH4AUgwWSxKq4IBq" "34MgWsDi3h/mFekOqtnIHTZM16CLtouQDlkUYdatXLcMTlhIO/AH9eNB2F9qbRFR" "B4WWJyuCF6GNQLX9jQIDAQAB")
Auch hier können wir mittels openssl den public-key erstellen und auf die Platte schreiben lassen.
# openssl rsa -in dkim-key.pem -out public.pem -pubout -outform PEM writing RSA key
Die Dateiberechtigung passen wir entsprechend an:
# chmod 600 /var/amavis/dkim/public.pem
Die Schlüsseldatei enthält nun den public-key für unsere DKIM-Konfiguration.
# cat /var/amavis/dkim/public.pem
-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWypzomx/COZmYML/9j/MRNH9C hw652qzbHjM4RdzpeWzainKC+kyYP+VuoJWMtUX2KSo+kTuWaH4AUgwWSxKq4IBq 34MgWsDi3h/mFekOqtnIHTZM16CLtouQDlkUYdatXLcMTlhIO/AH9eNB2F9qbRFR B4WWJyuCF6GNQLX9jQIDAQAB -----END PUBLIC KEY-----
Diesen Schlüssel stellen wir nun als TXT über die Subdomain main._domainkey.nausch.org zur Verfügung.
v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWypzomx/COZmYML/9j/MRNH9Chw652qzbHjM4RdzpeWzainKC+kyYP+VuoJWMtUX2KSo+kTuWaH4AUgwWSxKq4IBq34MgWsDi3h/mFekOqtnIHTZM16CLtouQDlkUYdatXLcMTlhIO/AH9eNB2F9qbRFRB4WWJyuCF6GNQLX9jQIDAQAB
Tests
Schlüssel
Nachdem der TXT zur Verfügung steht, können wir mit Hilfe von amavisd diesen Überprüfen.
# amavisd testkeys
TESTING#1: main._domainkey.nausch.org => pass ... ... ... TESTING#16: main._domainkey.c3n705.guru => pass
Wollen wir nur den Schlüssel einer bestimmten Domain testen, so verwenden wir folgenden Aufruf.
# amavisd testkey domain omni128.de
TESTING#1: main._domainkey.omni128.de => pass
Das folgende Beispiel zeigt eine Abfrage, die die Fehlermeldung invalid (public key: OpenSSL error: bad base64 decode) nach sich zieht.
# amavisd testkey domain ebersberger-liedersammlung.de
TESTING#6: main._domainkey.ebersberger-liedersammlung.de => invalid (public key: OpenSSL error: bad base64 decode)
Die Fehlermeldung bad base64 decode weißt direkt auf einem Typo-Fehler im Schlüsseldaten hin!
Das nächste Beispiel zeigt eine Abfrage, die eine weitere Fehlermeldung nach sich zieht:
# amavisd testkey domain ebersberger-liedersammlung.de
TESTING#6: main._domainkey.ebersberger-liedersammlung.de => fail (OpenSSL error: data too large for key size)
Erhalten wir die Fehlermeldung fail (OpenSSL error: data too large for key size), so liegt es meist nicht an einem vermeintlich zu großen DKIM-Schlüssel, den wir verwenden, sondern schlichtweg an einem Typo-Fehler beim DNS-Eintrag unseres DKIM-Schlüssels!
Wurde der public DKIM-Schlüssel revoked, also zurückgezogen, zeigt dies nachfolgende Fehlermeldung.
TESTING#6: main._domainkey.piraten-it.guru => invalid (public key: revoked)
Möchte man einen DKIM-Schlüssel zurückziehen (revoke), dann löscht man im DNS-Eintrag einfach den Teil hinter dem p=:
main._domainkey.piraten-it.guru IN TXT "v=DKIM1; p="
Wir können natürlich auch direkt den TXT-Record eines Hosts abfragen:
# host -t TXT main._domainkey.nausch.org
main._domainkey.nausch.org descriptive text "v=DKIM1\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWypzomx/COZmYML/9j/MRNH9Chw652qzbHjM4RdzpeWzainKC+kyYP+VuoJWMtUX2KSo+kTuWaH4AUgwWSxKq4IBq34MgWsDi3h/mFekOqtnIHTZM16CLtouQDlkUYdatXLcMTlhIO/AH9eNB2F9qbRFRB4WWJyuCF6GNQLX9jQIDAQAB"
local
Für die abschließenden Test aktivieren wir nun in der AMaViS-Konfigurationsdatei /etc/amavisd.conf die anfänglich gesperrte Option enable_dkim_signing.
# vim /etc/amavisd.conf
$enable_dkim_signing = 1; # load DKIM signing code, keys defined by dkim_key
Zur Aktivierung der DKIM-Signaturfunktion starten wir den AMaViS-Dämon 1x durch.
# service amavisd restart
hutting down Mail Virus Scanner (amavisd): [ OK ] Starting Mail Virus Scanner (amavisd): [ OK ]
Schicken wir nun eine Test-eMail so findet der Empfänger im Mailheader die entsprechende DKIM-Signatur:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nausch.org; h= content-transfer-encoding:content-type:content-type:subject :subject:mime-version:user-agent:from:from:date:date:message-id :received:received; s=main; t=1392116699; x=1393931100; bh=wKew4 HSbA6sPw6t20KKJq4BJloWj/gx+FxejGNDKe4s=; b=SY5VgOrZ96JkrXrte9SJQ 5FvtveuL9D64c0snDhqNNH/QeaYUGQRKPeNvkkLRMoC+pZpSUL4jcsNm3R3cIrKb vPxz94JSm2cSh8cMXjDLcqxfbTd0CEv3lh2VrCSZVVwyoknH/+Z6BHYcJuaMJIrj DRI//gty7R70y6q4IJvskA=
Der empfangende Mailserver ist mit Hilfe des Authentication-Results:-Header in der Lage festzustellen, ob die eMail unverändert angekommen und somit nicht manipuliert wurde:
Authentication-Results: mx1.piratenpartei-bayern.de (amavisd-new); dkim=pass (1024-bit key) header.d=nausch.org
Wurde die Nachricht hingegen verändert, so schlägt die Überprüfung fehl und wird entsprechend quittiert:
Authentication-Results: amavis.dmz.nausch.org (amavisd-new); dkim=fail (1024-bit key) reason="fail (message has been altered)" header.d=controlc.de
Die Veränderung der Nachricht passierte in dem obigen Beispiel dadurch, dass die Nachricht aus einer Mailingliste vom Mailinglisten verändert wurde, da am ende ein Listenspezifischer Mailfooter angefügt wurde.
WEB-online
Eine sehr gute und einfache Möglichkeit die DKIM-Konfiguration zu testen, stellt die DomainKeys, DKIM, SPF, SpamAssassin Email Validator von Brandon Checketts dar. Die angegebene temporäre eMailadresse kopieren wir uns und schicken an diese eine Testnachricht.
Über die Schaltfläche [View Results] erhalten wir dann die Prüfungsergebnisse unserer Testnachricht präsentiert.
Original Message:
Return-Path: <michael@nausch.org> X-Original-To: zSQ3lX8C5X@www.brandonchecketts.com Delivered-To: spamapp@www.brandonchecketts.com Received: from mx1.nausch.org (mx1.nausch.org [88.217.187.21]) by www.brandonchecketts.com (Postfix) with ESMTP id 2AB933091E for <zSQ3lX8C5X@www.brandonchecketts.com>; Sat, 18 Jul 2009 06:49:59 -0400 (EDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by mx1.nausch.org (Postfix) with ESMTP id 392E71158615 for <zSQ3lX8C5X@www.brandonchecketts.com>; Sat, 18 Jul 2009 12:49:58 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nausch.org; h= x-mailer:mime-version:message-id:date:date:organization :content-transfer-encoding:content-type:content-type:reply-to :from:from:subject:subject:received:received:received; s=main; t=1247914197; x=1249728597; bh=E1isxuEic/sUmYbroqFvuC/23yyUX53a HS/Xwkrnr3I=; b=EEIoq4COIkREvU+Oil+f0Qg0yrwdYX0mZFEtnlqRR06ck6HV Oap6CURctdOqHqlFhkG4TXJtgDKNNhaAbDqG8wXlYFxhbQ+s1dY+TIBQDhVy445z D4NWWQ1UtbHocHrCHl0j1yPHVCSgWNIlRR7w4By1LsuNhTbY/sqnULNldJk= X-Virus-Scanned: amavisd-new at nausch.org Received: from mx1.nausch.org ([127.0.0.1]) by localhost (amavis.nausch.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zUoWGqr6KT3G for <zSQ3lX8C5X@www.brandonchecketts.com>; Sat, 18 Jul 2009 12:49:57 +0200 (CEST) Received: from buero.nausch.org (office.nausch.org [192.168.10.20]) by mx1.nausch.org (Postfix) with ESMTP for <zSQ3lX8C5X@www.brandonchecketts.com>; Sat, 18 Jul 2009 12:49:57 +0200 (CEST) Received: by buero.nausch.org (Postfix, from userid 500) id 5F1722DC040E; Sat, 18 Jul 2009 12:49:57 +0200 (CEST) Subject: Testmessage From: Michael Nausch <michael@nausch.org> Reply-To: michael@nausch.org To: zSQ3lX8C5X@www.brandonchecketts.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Organization: nausch.org Date: Sat, 18 Jul 2009 12:49:57 +0200 Message-Id: <1247914197.4249.2.camel@office.nausch.org> Mime-Version: 1.0 X-Mailer: Evolution 2.12.3 (2.12.3-8.el5_2.3) HI, ist nur ein Test f=C3=BCr's Dokuwiki ttyl, Django
DKIM Information:
DKIM Signature Message contains this DKIM Signature: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nausch.org; h= x-mailer:mime-version:message-id:date:date:organization :content-transfer-encoding:content-type:content-type:reply-to :from:from:subject:subject:received:received:received; s=main; t=1247914197; x=1249728597; bh=E1isxuEic/sUmYbroqFvuC/23yyUX53a HS/Xwkrnr3I=; b=EEIoq4COIkREvU+Oil+f0Qg0yrwdYX0mZFEtnlqRR06ck6HV Oap6CURctdOqHqlFhkG4TXJtgDKNNhaAbDqG8wXlYFxhbQ+s1dY+TIBQDhVy445z D4NWWQ1UtbHocHrCHl0j1yPHVCSgWNIlRR7w4By1LsuNhTbY/sqnULNldJk= Signature Information: v= Version: 1 a= Algorithm: rsa-sha256 c= Method: relaxed/simple d= Domain: nausch.org s= Selector: main q= Protocol: bh= E1isxuEic/sUmYbroqFvuC/23yyUX53a HS/Xwkrnr3I= h= Signed Headers: x-mailer:mime-version:message-id:date:date:organization :content-transfer-encoding:content-type:content-type:reply-to :from:from:subject:subject:received:received:received b= Data: EEIoq4COIkREvU+Oil+f0Qg0yrwdYX0mZFEtnlqRR06ck6HV Oap6CURctdOqHqlFhkG4TXJtgDKNNhaAbDqG8wXlYFxhbQ+s1dY+TIBQDhVy445z D4NWWQ1UtbHocHrCHl0j1yPHVCSgWNIlRR7w4By1LsuNhTbY/sqnULNldJk= Public Key DNS Lookup Building DNS Query for main._domainkey.nausch.org Retrieved this publickey from DNS: v=DKIM1; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWypzomx/COZmYML/9j/MRNH9Chw652qzbHjM4RdzpeWzainKC+kyYP+VuoJWMtUX2KSo+kTuWaH4AUgwWSxKq4IBq34MgWsDi3h/mFekOqtnIHTZM16CLtouQDlkUYdatXLcMTlhIO/AH9eNB2F9qbRFRB4WWJyuCF6GNQLX9jQIDAQAB Validating Signature result = pass Details:
SPF Information:
Using this information that I obtained from the headers Helo Address = mx1.nausch.org From Address = michael@nausch.org From IP = 88.217.187.21 SPF Record Lookup Looking up TXT SPF record for nausch.org Found the following namesevers for nausch.org: ns2.m-online.net ns1.m-online.net Retrieved this SPF Record: v=spf1 ip4:88.217.187.21/32 a mx include:nausch.org ?all (TTL = 7200) Result: Pass (Mechanism 'ip4:88.217.187.21' matched) Result code: pass Local Explanation: nausch.org: 88.217.187.21 is authorized to use 'michael@nausch.org' in 'mfrom' identity (mechanism 'ip4:88.217.187.21' matched) spf_header = Received-SPF: pass (nausch.org: 88.217.187.21 is authorized to use 'michael@nausch.org' in 'mfrom' identity (mechanism 'ip4:88.217.187.21' matched)) receiver=xpgrinders.com; identity=mfrom; envelope-from="michael@nausch.org"; helo=mx1.nausch.org; client-ip=88.217.187.21
Links
~~DISCUSSION~~