DKIM mit Office 365

DKIM ist ein sehr effektives Verfahren, wie ein Absender einer Mail gegenüber dem Empfänger belegen kann, dass der auch das Recht hat, mit dieser Domäne zu senden. Würden alle Mailversender mit DKIM arbeiten, wäre das Thema Spam zwar dennoch nicht gelöst aber die Fälschung von Absendern wäre Geschichte. Es dient also primär dazu, dass ein Absender seinen "Namen" schützen kann und Veränderungen der Mails erkannt werden. Es ist aber kein Ersatz für Verschlüsselung und richtige Signaturen. Dennoch nutzt Office 365, oder genauer Exchange Online, die Möglichkeiten von DKIM um eingehende Mails zu verifizieren und ausgehende Mails entsprechende zu kennzeichnen

Vorarbeiten für DKIM Versand

Wenn Sie über Office 365 Mails mit DKIM-Signatur versenden wollen, dann müssen Sie der Welt natürlich mitteilen, dass ihre Domain per DKIM gesichert wird. Ohne Office 365 müssten Sie nun Schlüsselpaare erstellen, von denen sie den privaten Schlüsseln in ihrem Mailserver einbinden und den öffentlichen Schlüssel in den DKIM-Einstellungen im DNS hinterlegen. Mit Office 365 übernimmt Microsoft für Sie diese komplette Einstellung. Sie müssen nur zwei Dinge tun.

  1. DNS-Einträge in ihrer Domain eintragen
  2. DKIM auf der Domain aktivieren

Da Microsoft eigentlich für Kunden keine DNS-Server und Webseiten bereit stellt, werden die meisten Office 365 Kunden diese Einträge in ihrer DNS-Zone bei einem anderen Provider durchführen. Ich habe bislang noch keinen Kunden gehabt, der als Nameserver für seine Zone die Office 365-DNS-Server eingetragen hat. Daher lasse ich diesen Sonderfall einmal weg.

Achtung:
Am Ende dieser Konfiguration MÜSSEN sie alle Mails Über Office 365 versenden. Da Sie keinen Zugriff auf die privaten Schlüssel haben und der DKIM-Eintrag im DNS die Signatur fordert, wird jeder andere Empfänger mit DKIM-Prüfung Mails ohne DKIM-Signatur ablehnen. Sie sollten also Mails aus ihrer On-Prem-Umgebung über Office 365 in das Internet versenden. Dabei hilft ihnen natürlich der Exchange Hybrid-Mode mit einem lokalen Connectorserver. Ansonsten sollten Sie in der Cloud einen "Inbound Connector" anlegen, der Mail von ihren "vertrauenswürdigen" Hosts annimmt und als Relay weiter versendet.

DNS-Einträge addieren

Sie gehen also auf die Verwaltungsseite bei ihrem DNS-Hoster und addieren dort folgende beiden DNS-Einträge:

selector1._domainkey   CNAME 3600  selector1-msxfaq-com._domainkey.msxfaq.onmicrosoft.com
selector2._domainkey   CNAME 3600  selector2-msxfaq-com._domainkey.msxfaq.onmicrosoft.com

Ich habe hier im Beispiel meine "msxfaq.com"-Zone genommen. Ich muss zwei CNAME-Einträge in meiner Zone anlegen, die auf die von Microsoft bereitgestellten DNS-Einträge meines Office 365 Tenants verweisen. Das Ergebnis können Sie mit NSLOOKUP einfach verifizieren:

nslookup -q=CNAME selector1._domainkey.msxfaq.com.
nslookup -q=CNAME selector2._domainkey.msxfaq.com.

Hier die Ausgabe von meinem DSL-Anschluss zu Hause.

Die Einträge, auf die Sie verweisen enthalten dann die DKIM-Einstellungen, die einfache TXT-Records sind.

Damit ist es aber allein nicht getan.

DKIM auf Domain aktivieren

Nun ist es an der Zeit die Einstellungen im Tenant zu aktivieren. Das können Sie einfach per Browser im Admin-Portal unter "Admin - Exchange – Schutz – dkim" vornehmen.

Hier sehen Sie auch die Meldung, wenn die Einträge im DNS noch nicht von Microsoft abgefragt werden konnten. Sobald die DNS-Einträge von ihrem Provider aber veröffentlicht wurden, wird die Domäne ohne weitere Meldung aktiviert. Alternative geht es natürlich auch per PowerShell mit ihrer Domain:

New-DkimSigningConfig -DomainName msxfaq.com -Enabled $true

Damit ist die Einrichtung abgeschlossen. Es obliegt nun Microsoft die Schlüssel bei bedarf zu tauschen und die DNS-Einträge zu aktualisieren, auf die ihre CNAMEs verweisen.

Kontrolle der Aussendung

Office 365 übernimmt die Einstellungen sehr schnell. Ich habe ein paar Minuten per Outlook Web App einfach eine Mail versenden und auf der Empfängerseite den Header inspiziert. Oben steht der aktuellste Eintrag und sie sehen hier die internen Exchange Server, über die die Mails dann zugestellt wurden. Wer genua hinschaut, sieht einmal ein "DMARC validation: Pass;" und dann auch die DKIM-Signatur von Office 365.

Received: from E2016.netatwork.de (10.1.1.1) by E2016.netatwork.de
 (10.1.1.1) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.32 via Mailbox
 Transport; Mon, 27 Feb 2017 15:07:35 +0100
Received: from E2016.netatwork.de (10.1.1.1) by E2016.netatwork.de
 (10.1.1.1) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.32; Mon, 27
 Feb 2017 15:07:35 +0100
Received: from mail.netatwork.de (10.1.1.2) by E2016.netatwork.de
 (10.1.1.1) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.32 via
 Frontend Transport; Mon, 27 Feb 2017 15:07:35 +0100
X-NoSpamProxy-Tests: Realtime Blocklist filter: 0; Reverse DNS lookup: 0; Spam
 URI Realtime Blocklist filter: 0; CYREN spam protection: 0; Character set
 filter: 0; Require external sender in headers: 0; Word filter: 0; CSA
 Whitelist: Pass; DMARC validation: Pass; Validate and/or decrypt mail: Pass;
 CYREN virus protection: Pass; Filebased virus scanner: Pass; ICAP Antivirus
 scanner: Pass; : Pass; 
X-NoSpamProxy-Rating:
X-NoSpamProxy-TrustedMail: no
X-NoSpamProxy-CYRENID: str=0001.0A0C0204.58B432A6.02F6,ss=1,re=0.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0
X-NoSpamProxy-Scl: -7.20
X-NetatworkMailGateway-Sender: user1@msxfaq.com
X-NoSpamProxy-Rule: All other inbound mails
X-NoSpamProxy-Gateway: 124.17.2.42:50880
X-NoSpamProxy Encryption-EncryptionAlgorithm: None
X-NoSpamProxy Encryption-SignatureAlgorithm: None
X-NoSpamProxy Encryption-SignatureStatus: None
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=msxfaq.com;
 s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;
 bh=S+iXvEFDj3f6JXKMaDNWb/kRKVwXxM9dDGz/COkegK4=;
 b=B6E0wUV+XQANDKd7+wd3VLC2rfmEhP+qB3q47HwSIxwny1EHRPMMRHPZMc5+1zqTp3r+uEd/ttrWySnrL91yKRqiy+64Gh+KcekVTnd21Y2eDkQ4csKhfkAH5Ps/TuCVly4BJma9CQEXeIPL2X/qEpTAe7c5UOgfxSjDA5x8UBY=
Received: from AMSPR06MB086.eurprd06.prod.outlook.com (10.242.90.142) by
 AMSPR06MB086.eurprd06.prod.outlook.com (10.242.90.142) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id
 15.1.919.13; Mon, 27 Feb 2017 14:07:23 +0000
Received: from AMSPR06MB086.eurprd06.prod.outlook.com ([169.254.15.158]) by
 AMSPR06MB086.eurprd06.prod.outlook.com ([169.254.15.158]) with mapi id
 15.01.0919.018; Mon, 27 Feb 2017 14:07:23 +0000
From: User1 <user1@msxfaq.com>
To: "Frank.carius.test@netatwork.de" <Frank.carius.test@netatwork.de>
Subject: Test Office 365 DKIM
Thread-Topic: Test Office 365 DKIM
Thread-Index: AQHSkQxxxxxxx39FqMkywsg==
Date: Mon, 27 Feb 2017 14:07:22 +0000
Message-ID: <AMSPR06MB0865D0xxxxxxx70@AMSPR06MB086.eurprd06.prod.outlook.com>
Accept-Language: de-DE, en-US
Content-Language: de-DE
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=user1@msxfaq.com; 
x-originating-ip: [62.159.244.133]
x-ms-office365-filtering-correlation-id: 37b188a9-5c5d-4d3e-23b7-08d45f19f385
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:AMSPR06MB086;
x-microsoft-exchange-diagnostics: 1;AMSPR06MB086;6:7ADl0r5CsWVVbMV/v2P...IdQ==
x-microsoft-antispam-prvs: <AMSPR06MB086CEFAF6753667FFB3DF60CA570@AMSPR06MB086.eurprd06.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(6040375)(601004)...(6043046);SRVR:AMSPR06MB086;BCL:0;PCL:0;RULEID:;SRVR:AMSPR06MB086;
x-forefront-prvs: 02318D10FB
x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6009001)...
 (25786008)(5660300001);DIR:OUT;SFP:1101;SCL:1;SRVR:AMSPR06MB086;H:AMSPR06MB086.eurprd06.prod.outlook.com;
 FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en;
received-spf: None (protection.outlook.com: msxfaq.com does not designate
 permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative;
 boundary="_000_AMSPR06MB0865Dxxxxx570AMSPR06MB086eurprd_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Feb 2017 14:07:22.9022
 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMSPR06MB086
Return-Path: user1@msxfaq.com
X-MS-Exchange-Organization-Network-Message-Id: ef92dea4-6592-430d-d15f-08d45f19faf3
X-MS-Exchange-Organization-AVStamp-Enterprise: 1.0
X-C2ProcessedOrg: 1191ecb5-aafb-41d5-a616-52a314c7d5db
X-MS-Exchange-Organization-AuthSource: E2016.netatwork.de
X-MS-Exchange-Organization-AuthAs: Anonymous
X-MS-Exchange-Transport-EndToEndLatency: 00:00:00.2969301

Wichtig ist, das die DKIM-Signatur enthalten ist und die Empfängerseite diese Information auch korrekt auswerten kann.

Weitere Links