Email Protection & DomainKeys Identified Mail DKIM

Share

Sicherstellung der Authentizität von E-Mail-Sendern 

 Mit DKIM werden E-Mail-Header und Body digital signiert um die
Authentizität des Absenders zu garantieren. Mails werden 

also nicht verschlüsselt oder deren Inhalt digital unterschieben, sondern es wird  im Header ein Hashwert  (DKIM-Signature) hinterlegt, der vom Empfänger dekodiert werden kann. Diesen Artikel  dazu lesen. Dadurch wird die Echtheit des Senders (also des Smarthosts/Mailservers) und des Inhaltes (Manipulationsschutz) bestätigt.
Die Sophos UTM 9 Astaro unterstützt das Verfahren DomainKeys Identified Mail (DKIM) und kann bei ausgehenden Mails dem Header automatisch die digitale Signatur hinzufügen. Das Verfahren X-Provags-ID ist ein anderes und hat nichts mit DKIM zu tun.

Email MX Domainkey Sophos UTM

Enlarge Image

DKIM ist ein weiteres Verfahren um E-Mail Versand und Empfang sicherer zu machen, lesen Sie dazu auch:
Eigener MX
SPF
DMARC

Der Mail-SMTP-Proxy muss natürlich in der Sophos UTM Astaro konfiguriert sein.

Das Verfahren läuft wie folgt ab:
- Es wird ein private und public Key erstellt (einmalig)
- Der public Key wird im DNS der Domain unter einem speziellen Namen veröffentlicht
- Der Mailproxy signiert die Mail durch einen Hashwert und gibt Domain und  public Key im DNS an (s=)
- Der Empfänger ließt den public Key und rechnet den Hashwert zurück, um die Echtheit der Mail zu prüfen.

 

Die Erzeugung der Keys geht mit OpenSSL für Windows verhältnismäßig einfach:

Konsole CMD "als Administrator ausführen" und wechseln in das Verzeichnis 'C:\OpenSSL\Win32\bin'

Generieren des private Keys:
openssl genrsa -out dkimkey.private 1024 Keys ab 1024 bis 2048 bit sind ab RFC 4871 für DKIM gültig
Dadurch wird eine Datei mit dem Namen 'dkimkey.private' in dem gleichem Verzeichnis erstellt.

Beispiel: -----BEGIN RSA PRIVATE KEY-----kRLfrThbiwgVP1prOUPGzYOFipZinVTWt .... -----END RSA PRIVATE KEY-----

 

Generieren des public Keys:
openssl rsa -in dkimkey.private -out dkimkey.public -pubout -outform PEM
Dadurch wird eine Datei mit dem Namen 'dkimkey.public' in dem gleichem Verzeichnis erstellt.

Beispiel: -----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQU... -----END PUBLIC KEY-----
Die Teile -----BEGIN PUBLIC KEY----- und -----END PUBLIC KEY----- werden nicht im DNS veröffentlicht.

Der public Key wird im DNS als TXT Record veröffentlicht, der private Key wird in der Sophos UTM Email protection hinterlegt.

Der Key sollten beim kopieren in nur einer Zeile stehen, bei dem public Key nur Zeile 2 verwenden. Vorhandene Zeilenumbrüche müssen entfernen werden, der Editor Proton eignet sich gut dazu.

Proton OpenSSL Win32 dkimkey public Sophos UTM

 

In der UTM unter:
Email Protection -> SMTP |Advanced| "DomainKeys Identified Mail (DKIM)" 'Private RSA key'

wird der private Key hinterlegt, die Datei dkimkey.private  im Editor Proton öffnen und den Inhalt in das Feld kopieren.
Den Key komplett und unverändert, auch mit -----BEGIN RSA PRIVATE KEY----- und -----END RSA PRIVATE KEY----- in das Feld kopieren.
Keine Zeilenumbrüche entfernen oder Zeilen löschen, nur STRG-A und STRG-C.

Der "Key selector" wird dazu verwendet im DNS den Namen des TXT Records mit dem public Key anzugeben. Die Verwendung von "Jahreskeys" halte ich für ausreichend, den Key für 2013 hab ich key2013 genannt. Unter "DKIM domains" wird die MailDomain angegeben.

DKIM private key Domain Sophos UTM 9

 

Der DNS TXT Record für den Domainkey neise.de setzt sich wie folgend zusammen:

Es wird ein DNS Eintrag Typ TXT erstellt (bei einigen Providern muss auch eine Subdomain erstellt werden und dann der DNS TXT Record), der aus dem Key Selector (frei wählbarer Name, hier 'key2013') und '._domainkey' zusammengesetzt wird = key2013._domainkey
Bei meinem DNS Provider Alfahosting sieht das dann so aus:Sophos UTM DKIM DNS Record
Die Domain unter der DNS TXT DKIM zu finden ist, wird im Mail-Header als d=MailDomain.de angegeben
Der Key Selector wird im Mail-Header als s= angegeben und zwar ohne den Teil '._domainkey'

Als Beispiel eine Mail von PayPal:

DKIM Signature PayPal Sophos UTM 9

d=paypal.de -> Der DNS TXT Record mit dem public Key ist bei PayPal.de zu finden (die Absenderdomain ist auch PayPal.de, dass schafft Vertrauen)

s= pp-dkim1 -> Der DNS TXT Record mit dem public Key hat den Namen 'pp-dkim1._domainkey.paypal.de'.

Der Vollständige Eintrag wird dann noch um diese Angaben ergänzt:

v=DKIM1; k=rsa; p=publicKey

Hier abzufragen:
http://www.whatsmyip.us/txt:pp-dkim1._domainkey.paypal.de

Hier kann man den public Key auf richtige Decodierung checken lassen:
http://dkimcore.org/c/keycheck

Achtung:
Wenn Ihr interne Domain = Maildomain ist, dann müssen Sie den DNS TXT Record auch in ihrem internen DNS-Server anlegen.

interner DNS DKIM Sophos UTM
Lesen Sie dazu auch DNS Einrichtung der Sophos UTM.

 

Bei Neise.de sieht das dann so aus:
Key selecor = key2013
Domain = neise.de

DNS TXT mit public Key:
key2013._domainkey.neise.de

Hier zu abzufragen:
http://www.whatsmyip.us/txt:key2013._domainkey.neise.de

 

balken-oben

 Wenn alle DNS Einträge gesetzt sind, senden Sie eine Mail an eine externe Adresse und lesen den Header aus,
dort sollte dann der Hashwert unter DKIM-Signature stehen und ungefähr so aussehen:

v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=neise.de; s=key2013; h=Content-Type:MIME-Version:Message-ID:Date:Subject:To:From; bh=E2/hCOAEsaV7aIhSkNpTxMzrh+Laq4jGuiB6hs/gIB0=; b=KQGKZdhlUGjTw+hNuaMLlldjdg6KsrFC59+fF4JyDDc9HfJYjWzABacDdBcudg615mCPBGRtGtcFiSnb+QEBOZ/DOdnLQ/0j2NGsdoEso/K6Mdg7TU1CD6Dt9f+fsdg/iSIGLdM=;

 balken-unten

 

Falls das nicht der Fall ist, öffnen Sie den SMTP LiveLog und senden Sie eine Mail nach Extern. Falls folgende Fehler auftreten (DKIM signing failed RC 101 RC 102), ist entweder der interne DNS bei gleicher interner Domäne falsche konfiguriert oder der private Key nicht richtig übernommen worden:

Sophos UTM SMTP LiveLog -> "DKIM: signing failed (RC -101)" oder "DKIM: signing failed (RC -102)"

Testen Sie DNS in der UTM:
Support -> Tools |DNS Lookup|
Hostname = meinKeySelector._domainkey.MeineMaildomain.de
"Enable verbose output" = Ja

Dort sollte dann der public Key inkl. dem "Prefix"  'v=DKIM1; k=rsa; p=' korrekt ausgegeben werden.

 

Wenn SPF und DKIM konfiguriert sind, kann man auch DMARC einrichten

 

Münster AD 2013

Share