DKIM Selectoren
Im Gegensatz zu SPF und DMARC können wir DKIM-Einträge bei Domains nicht wissen, sondern allenfalls raten. Welcher DKIM-Eintrag per DNS für die Prüfung einer Mail relevant ist, steht in der Mail selbst drin. Aber wer viele Mails vieler Domains empfängt oder sogar einen Spamfilter wie NoSpamProxy entwickelt und vertreibt, prüft natürlich viele Mails auf DKIM und bekommt damit auch die Selektoren einer Domain. Mich hat interessiert, ob es hier Muster oder Erkenntnisse geben kann.
DKIM im Header
Wenn ein Spamfilter die IP-Adresse des einliefernden Systems anhand eines SPF-Eintrags bewerten will oder die DAMRC-Richtlinie abfragen will, dann sucht er nach folgenden beiden TXT-Records im DNS
<domain> TXT v=spf1..... _dmarc.<domain> TXT
Per NSLOOKUP oder Resolve-DNSName ist das sehr einfach möglich.
(resolve-dnsname -Type TXT -Name msxfaq.net).strings | where {$_.startswith("v=spf1")}
(resolve-dnsname -Type TXT -Name _dmarc.msxfaq.net).strings
Für die MSXFAQ ergibt sich folgendes (Stand Mai 2026)

Wenn ich aber die DKIM-Prüfung machen will, muss ich den Header der Mail mit dieser Absenderdomain prüfen:
Im Header sollte sich dann mindestens eine DKIM-Signatur finden. Interessant ist hier die Domain "d=msxfadev.de", die zum Absender passen muss und der Selector "s=selector1" Mit dem wissen kann ich nun eine DNS-Anfrage auf den DKIM-Schlüssel machen, mit dem ich die Signatur prüfen kann

Die Informationen sind nicht geheim. Es ist ja nur der öffentliche Schlüssel zur Prüfung der DKIM-Signatur. Der private Schlüssel ist hoffentlich beim Absender sicher verwahrt.
Selektoren in der Welt
Bei der Wahl des Selektor-Namens sind Administratoren und Anbieter frei. Wer DKIM mit Office 365 einsetzt, wird wissen, dass Microsoft die Namen "selector1" und "selector2" vorgibt.

Quelle: Einrichten von DKIM zum Signieren von E-Mails aus
Ihrer Clouddomäne
https://learn.microsoft.com/de-de/defender-office-365/email-authentication-dkim-configure
Wobei dies noch die alte Schreibweise ist. Microsoft ändert dies auf ein neues Format. Der Selector bleibt weiterhin gleich aber der CNAME muss dann auf einen Namen verweisen.
Mich hat interessiert, welche Selectoren von den verschiedenen Domains genutzt werden.
Also habe ich mir die Mühe gemacht, per Graph mein Postfach abzufragen
Get-DKIMSelectors.PS1
get-dkimselectors.ps1
Verbindet sich per MSGraph mit dem Postfach des ausführenden
Benutzers und dem Scope "Mail.Read" und holt die Mails mit
externen Absendern der letzten 30 Tage um zu ermitteln, ob
und welche DKIM-Signaturen enthalten sind und schreibt eine
Liste in eine CSV-Datei. Die Domains werden in die Pipeline
ausgegeben.
- Graph: Nachricht abrufen
https://learn.microsoft.com/de-de/graph/api/message-get
Die Ausgabe ist dann eine Liste der Domain mit den gefundenen Selektoren:

Schon hier merke ich zwei Dinge an:
- Eine Domain, mehrere Selektoren
Sie können z.B. an der Domain "microsoft.com" gut sehen, dass eine Domain durchaus mehrere Selektoren haben kann. Das ist erwartet, denn für eine Domain kann es ja mehrere Mailversender, interne wie externe, geben und anstatt den gleichen Schlüssel zwischen allen Diensten zu nutzen, kann jeder Server seine eigene Signatur addieren. Auch beim Mittelstand passiert das, wenn Sie ihre primäre Domain per DKIM signieren aber z.B. ein Newsletter mit der gleichen Domain über einen anderen Massenversanddienstleister sendet. - Nichte alle DKIM Domains sind auch
Absender
Das Skript sucht alle DKIM-Signaturen in einer Mail. Eigentlich sollte eine DKIM-Signatur immer nur von dem System aufgebracht werden, welches auch autoritativ für diese Domain ist. Speziell Exchange Online ist sich aber nicht zu schade, auch eine Signatur mit seiner Domain aufzubringen, die aber vom Empfänger ignoriert werden sollte.
Ich habe meine letzten 1000 Mails ausgewertet und folgende 82 Selektoren gefunden:
hs2-26290363 s2048 1455217041.mtmta mte1 selector1 s31663417 brevo2 v1 icontact.k2 s29768273 dkim1e selector1 DKIM001 selector1-igaazureadnotificationsge-onmicrosoft-com hse1 mail mailjet p2024 61913 selector1 sokbgaaqhfgd6qjht2wmdajpuuanpimv selector1-spoemeaeop-onmicrosoft-com acdkim1 amseuprodelq selector1 default selector1 mscom pp-dkim1 mail3 eo selector2 mc0 20251104 sm mailjet xansl36zxalufv5kyto3b5biirs7psg6 mail4 selector1 v1 prv2019 secureserver2 selector2 selector1 20251104 selector2-miele365-onmicrosoft-com 214340684 hs1 sophos051eb2ad6db24d749d7b76a9c0f49128 amseuprodelq s1-ionos 20241105 k1 acdkim1 selector2-mstechdiscussions-onmicrosoft-com 20240516-RWTH dkim1r yyzcaprodelq selector1-azurecomm-prod-net namkey1 sokbgaaqhfgd6qjht2wmdajpuuanpimv default email0517 m1 secureserver1 20221110 dk2016 selector1 mc1 mte1 s1024-meo selector2 m1 selector2 ix-hosting2 eo selector1 crsend Progress mail1
Man kann wohl sehen, dass es mehrere Vorkommen von "selector1/selector2" gibt, die sehr zuverlässig auf Exchange Online als Absender hinweisen. Auch einige Hoster wie "SecureServer". "Brevo" oder "Mailjet" lassen sich ausmachen. Aber es gibt auch sehr viele wilde Namen, bei denen ich mich dann schon frage, wie diese zustande kommen.
So gibt es Namen, die eher wie ein GUID aussehen, wenn sie von AMAZONSES kommen:
"From","Domain","Selector" "privaterelay.appleid.com","privaterelay.appleid.com","prv2019" "privaterelay.appleid.com","amazonses.com","sokbgaaqhfgd6qjht2wmdajpuuanpimv" "bolt.eu","bolt.eu","xansl36zxalufv5kyto3b5biirs7psg6" "bolt.eu","amazonses.com","sokbgaaqhfgd6qjht2wmdajpuuanpimv"
Genaugenommen sehen wir hier zwei Mails.
- Mail 1: über Apple Private Relay
Hier sehen Sie eine Mail, die über Apples Privaterelay gekommen ist. Ich habe zu dem Zeitpunkt ein Konto bei bolt.eu angelegt und wollte erst einmal nicht meine echte Mailadresse hinterlegen. Die eingehende Mail hatte als Absender eine ""privaterelay.appleid.com"-Domain und auch eine passende DKIM-Signatur. Allerdings hatte die Mail auch noch eine DKIM-Signatur von Amazonses, die aber nicht zur Absenderdomain passt - Mail 2: von bolt.eu
Dann habe ich das Konto auf meine echte Mailadresse umgestellt und wir sehen schön, dass die Mail durch BOLT.EU mit einer DKIM-Signatur versehen wurde. Allerdings hat auch das vermutlich als Relay oder Service genutzte Amazonses.com auch eine Signatur aufgebracht. Die interessiert mein Empfänger aber nicht, da die Domain nicht passt.
Die DKIM-Signatur von Amazonses kann aber zukünftig einmal z.B. für ARC - Authenticated Received Chain relevant werden. Als Empfänger könnte ich ja pauschal der amazonses-Signatur vertrauen. Ich finde interessant, dass Apple aber wohl die Signatur von bolt.eu entfernt, sonst wäre sie hier auch zwei mal aufgetaucht. Das ist allerdings nicht bewiesen, denn ich sehe nur die Mail bei mir und nicht, was zwischen bolt.eu und Apple angewendet wurde.
Statistik
Zuerst habe ich erst einmal 1000 Mails meines Postfachs per Graph geladen und ausgewertet.
1000 Mails total 283 Mails mit DKIM-Signatur 275 RSA-SHA265 2 ED25519-SHA256 1 RSA-SHA1
Das erscheinen mir doch recht wenig DKIM-Signaturen. Wobei ich nicht nach intern/Extern unterschieden und nicht nach dem Empfangsdatum absteigend sortiert habe. Ich habe dann noch einmal die Auswertung über mein komplettes Postfach laufen lassen. Ich hatte erst einmal erwartet, dass es noch weniger DKIM-Anteile werden, da früher noch viel weniger DKIM-Signaturen angefügt wurde. Aber ich hatte mich geirrt
43990 Mails total 20296 DMARC-Signaturen 1977 einmalige DMARC-Signaturen d.h. einige Domains haben mehrere Mails gesendet 512 ED25519-SHA256 31 RSA-SHA1 19753 RSA-SHA256
Anscheinend war die erste Anfrage wirklich über viel mehr interne und alte Mails erfolgt. Fast 50% Mails mit DKIM-Signatur ist ziemlich viel. Da musste ich meine Anfrage dann doch etwas konkretisieren und einen Filter auf z.B. die letzten 30 Tage anlegen:
-Filter "sentDateTime ge $($(Get-Date).AddDays(-30).ToString(""yyyy-MM-ddTHH:mm:ssZ""))" `
In dem Postfach fand ich:
2157 Mails total 619 DMARC-Signaturen 145 einmalige DMARC-Signaturen d.h. einige Domains haben mehrere Mails gesendet 7 ED25519-SHA256 2 RSA-SHA1 610 RSA-SHA256
Die Werte sind hier wieder schlechter geworden. Also brauche ich doch einen Filter nach externen Mails. Dazu eignet sich das "FROM"-Feld, welches mit Get-MgUserMessage auch standardmäßig mitkommt. Allerdings kann ich nicht direkt schon mit "SEARCH" oder "FILTER" und "endswith('eigene domain'" filtern. Ich habe auch kein direktes Flag gefunden, in dem ich sehen kann, ob eine Mail von extern gekommen ist. Die InternetMessageHeader wollte ich nun nicht nach einem Kriterium wie Exchange Intern/Extern, External Sender Identification, X-Message-Flag, X-OriginatorOrg oder X-MS-Exchange-Organization-AuthAs durchsuchen. Ich habe einfach die Domain in der FROM-Adresse mit meinen internen Domains verglichen.
2222 Mails total 641 von extern 525 DMARC-Signaturen 150 einmalige DMARC-Signaturen d.h. einige Domains haben mehrere Mails gesendet Davon 7 ED25519-SHA256 2 RSA-SHA1 621 RSA-SHA256
Die Zahlen machen dann schon mehr her. In meinem Postfach waren in der fraglichen Zeit 525 DKIM-signierte Mails von 641. Da eine Mail mehrere DKIM-Signaturen enthalten kann, sind 621xRSA-SHA256 auch mit 525 Mails möglich.
Über 80% aller Mails waren schon DKIM-signiert. Langsam können Spamfilter wohl Absender ohne DKIM-Signatur als "weniger professionell" einschätzen.
- Use the $filter query parameter
https://learn.microsoft.com/en-us/graph/filter-query-parameter?tabs=http
Zwischenstand
Ich habe mir eigentlich etwas mehr Zusammenhänge erwünscht. Wenn Microsoft per Default immer "selector1/selector2" nutzt, habe ich bei anderen Versendern ähnliche Muster erwartet. Allerdings lässt sich wirklich jeder Admin oder Dienstleister ein eigenes Namensschema für den DKIM-Selector einfallen und entsprechend wenig kann man damit ermitteln. Zuerst habe ich gedacht, dass AmasonSES vielleicht für jede Mail einen eigenen Selector verwendet und so über die DNS-Anfrage indirekt erkennen könnte, welche internen Server und Weiterleitungen vielleicht über die DNS-Abfrage identifizierbar sind. Allerdings konnte ich das nicht belegen. Wenn so etwas funktionieren würde, dann wäre es für Werbeversender eine weitere, wenngleich schwache Trackingmöglichkeit.
Weitere Links
- SPF, DKIM, DMARC, ARC - Kurzfassung
- SPF, DKIM und DMARC jetzt!
- Spam und UCE - Filter: DKIM
- Spam und UCE - Filter: SPF, SenderID
- DKIM ohne Exchange Online - Es gibt viele Wege DKIM auch ohne Exchange Online zu nutzen
- DMARC einführen - So sichern Sie in fünf Schritten ihre Domain per DMARC ab
- DKIM mit Office 365
- Google blockt Domain ct.de wegen Microsoft?
- Umleitung/Weiterleitung mit SPF/DKIM/DMARC/SRS
- DMARC
-
DKIM mit Office 365
Exchange Online kann Mails per DKIM signieren und das sollten Sie möglichst auch tun. -
Google blockt ct.de wegen Microsoft?
Google nimmt keine Mails von ct.de an und verweist auf Microsoft - Eine Analyse -
Einrichten von DKIM zum Signieren von E-Mails aus Ihrer Clouddomäne
https://learn.microsoft.com/de-de/defender-office-365/email-authentication-dkim-configure -
Authentifizierung Ihrer E-Mails mit DKIM in Amazon SES
https://docs.aws.amazon.com/de_de/ses/latest/dg/send-email-authentication-dkim.html -
Graph: Nachricht abrufen
https://learn.microsoft.com/de-de/graph/api/message-get -
Sender Reputation and Email Security – Part
3: DomainKeys Identified Mail (DKIM)
https://www.nospamproxy.de/en/domainkeys-identified-mail-dkim/ -
DKIM keys
https://docs.nospamproxy.com/Server/15/Suite/en-gb/Content/email-authentication/dkim-keys.htm -
BSI–Technische Richtlinie: BSI TR-02102-1 :
Kryptographische Verfahren: Empfehlungen und
Schlüssellängen
https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/TechnischeRichtlinien/TR02102/BSI-TR-02102.pdf?__blob=publicationFile -
Difference between SHA1 and SHA256
https://www.geeksforgeeks.org/computer-networks/difference-between-sha1-and-sha256/















