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.
Beachten Sie dazu auch die Seite: EXO Antispam-Support zu Exchange Online und SPF, DKIM, DMARC, ARC, SRS, u.a.
Achtung:
Diese Seite nicht nicht aktuell. Am 1. Jan 2021 sind die
DKIM-Einstellungen ins Security und Compliance Center auf
https://protection.office.com/dkimv2 gewandert und Ende
2021 wird auf
https://security.microsoft.com/dkimv2?rfr=scc_dkimv2
weitergeleitet. Die
grundlegende Funktion ist aber immer noch korrekt.
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.
- DNS-Admin: DNS-Einträge in ihrer Domain eintragen
Hinweis: Einige DNS-Tools prüfen die Gültigkeit der Zieladresse, die aber erst angelegt wird, wenn Sie in Exchange einmal versucht haben DKIM zu aktivieren - Exchange Admin: 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 Connector-Server. Ansonsten sollten Sie in der
Cloud einen "Inbound Connector" anlegen, der Mail von ihren "vertrauenswürdigen"
Hosts annimmt und als Relay weiter versendet.
Diese "Muss"-Aussage können Sie relativieren, wenn Sie die Mail mit 3rd Party Produkten verändern und einen anderen Selector auswählen. Jeder Mailserver signiert die Mail mit seinem eigenen Key und im DNS gibt es entsprechend dann auch mehrere Selektoren.
DNS-Einträge addieren
Eigentlich sehen die DNS-Einträge für DKIM bei Microsoft immer gleich aus. Allerdings sollten Sie dennoch die aktuellen Einstellungen per Exchange Online PowerShell abfragen
PS C:\> Get-DkimSigningConfig uclabor.de | fl sel* Selector1KeySize : 1024 Selector1CNAME : selector1-uclabor-de._domainkey.fcarius.onmicrosoft.com Selector1PublicKey : v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCklDvN/oSarkjPao5SHNxqYavUpW3jpAGP 77dKDX+Lp6XTIZHN/QAkex6LTkjvKoWDzJNvQuuOJBtO3mZxofTmHlFJCcX8TK/zsTWqo6N1U2xKVonRU3OTAnvuzg K1qemgG0VPL3n6CxkqbpsLLTRLJ2n/w7TYUOcNCADhVK7ZBQIDAQAB; n=1024,1472531624,1488256424 Selector2KeySize : 1024 Selector2CNAME : selector2-uclabor-de._domainkey.fcarius.onmicrosoft.com Selector2PublicKey : v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCb/+5N3AIJ/YseXYY9rUb1BsmPQDq9Jcmh 5lhF38AbCx+OnHKtgtaMDKbz3hQXzOGKmCEeBBsQWQUniw/4EmrGUfQlQZ/f4ARxSxqtPjrhwQmBPuJUHoz0oUgw8O jseNE412Sfx07ZfMRJeDjsBgeb4FXfZ2RHwKm3qUGzeZSc3QIDAQAB; n=1024,1472531624,1488256424 SelectorBeforeRotateOnDate : selector2 SelectorAfterRotateOnDate : selector1
Interessant ist hier der "Selector1CNAME" und "Selector2CNAME". Die werden von Microsoft angelegt und verwaltet. Sie sollten diese auch erst einmal per NSLOOKUP erfragen.
PS C:\> Resolve-DnsName -Type TXT selector1-uclabor-de._domainkey.fcarius.onmicrosoft.com| fl Name : selector1-uclabor-de._domainkey.msxfaq.onmicrosoft.com Type : TXT TTL : 3600 Strings : {v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCklDvN/oSarkjPao5SHNxqYavUpW3jpAGP77dKDX+Lp6XTIZHN/Q Akex6LTkjvKoWDzJNvQuuOJBtO3mZxofTmHlFJCcX8TK/zsTWqo6N1U2xKVonRU3OTAnvuzgK1qemgG0VPL3n6CxkqbpsLLTRLJ2n/w7TYUOc NCADhVK7ZBQIDAQAB; n=1024,1472531624,1} PS C:\> Resolve-DnsName -Type TXT selector2-uclabor-de._domainkey.fcarius.onmicrosoft.com| fl Resolve-DnsName : selector2-uclabor-de._domainkey.fcarius.onmicrosoft.com : Der DNS-Name ist nicht vorhanden
In meinem Beispiel gibt es nur den ersten Eintrag. Der zweite Eintrag muss aber dennoch erstellt werden, denn irgendwann läuft der öffentliche Schlüssel ab und es findet ein "Rollover" statt. Dann wird von Microsoft der bislang nicht genutzte Selector aktiviert.
Sie gehen also auf die Verwaltungsseite bei ihrem DNS-Hoster und addieren dort 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.
Es kann durchaus einige Minuten oder sogar Stunden dauern, bis diese neuen Einträge im Internet "bekannt" sind.
Das Ergebnis sollten Sie dann per NSLOOKUP oder Resolve-DNSName einfach verifizieren:
PS C:\> Resolve-DnsName -Type cname selector1._domainkey.uclabor.de | fl Name : selector1._domainkey.uclabor.de Type : CNAME TTL : 3592 Section : Answer NameHost : selector1-uclabor-de._domainkey.fcarius.onmicrosoft.com PS C:\> Resolve-DnsName -Type cname selector2._domainkey.uclabor.de | fl Name : selector2._domainkey.uclabor.de Type : CNAME TTL : 3600 Section : Answer NameHost : selector2-uclabor-de._domainkey.msxfaq.onmicrosoft.com
Ich habe mittlerweile fast alle Domains entsprechend gesichert.
Hinweis:
Microsoft selbst veröffentlicht normal nur einen der beiden
CNAME-Ziele. Es ist also normal, dass eine Abfrage eines
CNAME auf einen nicht existierenden Eintrag verweist. Nur
wenn ein KeyRollover passiert, wird der fehlender Eintrag
mit dem neuen Key aktiviert und der alte Eintrag einige Zeit
später entfernt.
Damit ist es aber allein nicht getan.
DKIM auf Domain aktivieren
Nun ist es an der Zeit die Einstellungen im Tenant zu aktivieren.
Achtung:
Diese Seite nicht nicht aktuell. am 1. Jan 2021 sind die
DKIM-Einstellungen ins Security und Compliance Center auf
https://protection.office.com/dkimv2 gewechselt, welches
aber schon wieder auf
https://security.microsoft.com/dkimv2?rfr=scc_dkimv2
weiterleitet. Die
grundlegende Funktion ist aber immer noch korrekt.
Früher konnten Sie die Einstellungen per Browser im Exchange Admin-Portal unter "Admin - Exchange – Schutz – dkim" vornehmen.
Mittlerweile sehen Sie dort folgenden Hinweis, obwohl die Einstellungen immer noch da sind
An der im Nov 2021 aktuellen Stelle unter https://security.microsoft.com/dkimv2 können Sie nun auch DKIM für jede einzelne Domain ein und ausschalten.
Mehr können Sie nicht nicht einstellen und Microsoft zeigt ihnen hier nicht die erforderlichen DNS-Einträge. Die müssen Sie, wie oben beschrieben, anderweitig ermitteln und setzen. Hier sehen Sie nur die Warnung , wenn die geforderten Einträge im DNS 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 ` -Identity 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 genau 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 Allowlist: 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.
Sonderfall "Routing"-Domain
Für das interne Routing von Mails bei Hybrid-Bereitstellungen nutzt Microsoft zusätzlich die Domain "<tenantname>.mail.onmicrosoft.com". Normalerweise kann damit nie eine Mail in das Internet versendet werden, denn sie sollte nie als primäre Adresse bei einem Objekt auftauchen. Daher ist auch die DKIM-Einstellung für diese Domain nicht nutzbar:
Sie könnten die Domain in Exchange Online sogar aktivieren aber es kann nicht funktionieren: Sie sind nicht der Domain-Inhaber für "mail.onmicrosoft.com" und könnten daher dort auch keine DKIM-Einträge einbinden.
DMARC und onmicrosoft.com
Wenn Sie nun schon DKIM über ihre "<tenantname>.onmicrosoft.com"-Domain aktiviert haben, dann können Sie auch DMARC aktivieren. Den entsprechenden TXT-Record können Sie im Microsoft Admin Portal einfach addieren:
Der Eintrag ist normalweise nicht vorhanden aber kann addiert werden.
- DMARC
- DMARC bricht SPF mit SRS
- DMARC-Validation
- Einrichten von DMARC zum Überprüfen der
Absenderdomäne für Absender in Microsoft 365
https://learn.microsoft.com/de-de/defender-office-365/email-authentication-dmarc-configure - How to set the DMARC Record for
.onmicrosoft.com Address
https://blog.icewolf.ch/archive/2022/09/15/how-to-set-the-dmarc-record-for-tenant-onmicrosoft-com/ - Schritte zum Hinzufügen von DMARC für
Ihre onmicrosoft.com-Domäne
https://powerdmarc.com/de/set-up-dmarc-dkim-onmicrosoft/
Weitere Links
-
EXO Antispam-Support zu Exchange Online und SPF, DKIM, DMARC, ARC, SRS, u.a.
- DMARC
- DKIM
- Mailingliste mit DMARC, DKIM, SPF, ARC
- Verteiler und SPF/DKIM/DMARC
- X-MS-Exchange-SenderADCheck und DKIM
-
DKIM Verwaltung seit Jan 2021
https://protection.office.com/dkimv2 -
Verwenden von DKIM zum Überprüfen
ausgehender E-Mails, die von Ihrer
benutzerdefinierten Domäne gesendet werden
https://docs.microsoft.com/de-de/microsoft-365/security/office-365-security/use-dkim-to-validate-outbound-email?view=o365-worldwide -
Use DMARC to validate email
https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/use-dmarc-to-validate-email?view=o365-worldwide#troubleshooting-your-dmarc-implementation
Mit Flussdiagramm der Entscheidungen in Exchange Online - Verwenden von DKIM zum Überprüfen ausgehender E- Mails, die von Ihrer
benutzerdefinierten Domäne in Office 365 gesendet werden
https://technet.microsoft.com/de-de/library/mt695945(v=exchg.150).aspx - Weitere Informationen zum Verwenden von DKIM mit Ihrer benutzerdefinierten
Domäne in Office 365
https://technet.microsoft.com/de-DE/library/ms.exch.eac.DKIMDisabled(EXCHG.150).aspx - DomainKeys Identified Mail (DKIM)
http://dkim.org/ - DKIM Test: How to test DKIM signature
https://www.appmaildev.com/en/dkim