DMARC - Domain-based Message Authentication, Reporting, and Conformance

Ein großes Problem im Mailverkehr ist das Fälschen der dem Empfänger angezeigten Absenderadresse im From:-Header. Der Inhalt ist nicht relevant für den Transportvorgang und daher vom Absender beliebig setzbar. Für den Transport wird die Envelope-From-Adresse benutzt. Hier die Namen der verschiedenen Absenderadressen einer Email, die in der Literatur verwendet werden:

Envelope-From, 2822.From, RFC5322.From, Author Die während der Zustellung verwendete Absenderadresse, nicht sichtbar für den Empfänger
Header-From, 2821.mail_from, RFC5321.MailFrom Die sichtbare Absenderadresse, irrelevant für die Zustellung

Das Hauptziel von DMARC  ist es nun, die dem Empfänger sichtbare Absenderadresse im Header-From verifizierbar zu machen. Damit kann dem Empfänger signalisiert werden, ob diese Mail tatsächlich von der Organisation/Einrichtung/Firma des vermeintlichen Absenders kommt oder gefälscht wurde. Um dieses Ziel zu erreichen werden die Checkergebnisse von SPF und DKIM hinzugezogen. SPF kann den Envelope-From mit IP-Adressen der sendenden Mailserver verknüpfen, DKIM kann bestätigen, dass der Inhalt der Mail und damit auch des Header-From während des Transports unverändert blieb und verknüpft dies mit einer der Domains (DKIM-Domain) der absendenden Einrichtung.

Zusätzlich muss der Absender für seine Domain einen DMARC-DNS-Record aufsetzen, damit der DMARC-Check beim Empfänger auch aktiv wird. In ihm kann der Absender eine Policy festlegen, was der Empfänger mit einer Mail machen soll, deren DMARC-Check fehlschlägt:

Vorteile:

Nachteile:

Konsequenzen für Mailinglisten

Mailinglisten bekommen durch DMARC ein weiteres Problem der Zustellbarkeit. Sie können zur Mitigation drei Strategien fahren:

  1. Die Mails unverändert durchreichen (nur der Envelope-From wird modifiziert).
    Aber: Dies scheitert, wenn die Mails beim Empfang entweder keine DKIM-Signatur aufweisen oder diese bereits ungültig ist.
  2. Die Mails unverändert durchreichen (nur der Envelope-From wird modifiziert) und eine ARC-Signatur hinzufügen.
    Aber: Dies scheitert, wenn beim Empfänger ARC nicht unterstützt wird.
  3. Den Header-From auf sich umschreiben.
    Aber: Der Empfänger kann dann nicht mehr feststellen, wer der ursprüngliche Absender war und ob er gefälscht wurde.

Weitere Features von DMARC

Details

a. Abfragen eines DMARC-Records

Man setzt vor die Domain ein _dmarc und fragt den TXT-Record ab. Beispiel:

            $ dig +short txt _dmarc.gmail.com
"v=DMARC1; p=none; sp=quarantine; rua=mailto:mailauth-reports@google.com"
$
        

b. Validierung von DMARC-Records

Hierfür gibt es eine Reihe von Online-Diensten:

c. Suche nach DMARC-Records

Der DMARC-Algorithmus sieht vor, nach der Domain des Header-From zu suchen und bei Nichtexistenz nach der Organizational Domain. Diese Orgdomain bestimmt DMARC mit Hilfe der Mozilla Public Suffix List. Die Einträge sind freiwillig und enthalten alle Top-Level-Domains sowie Domain-Registrare, Web-Service-Provider und ähnliches, welche Subdomains an ihre Kunden delegieren.

Von der Domain werden rückwärts solange die Subdomains entfernt, bis der Rest in der Suffix-Liste auftaucht. Danach wird die letzte entfernte Subdomain wieder angefügt.

Beispiel: mx.srv.dfn.de. Nur de taucht in der Suffixliste auf, nicht aber dfn.de. DMARC sucht dann nur unter:

d. Policies

Folgende drei Policies kann man in seinem DMARC-DNS-Record setzen:

none Das Checkergebnis soll ignoriert werden
quarantine Die Mail soll in den Spamfolder oder die Quarantäne verschoben werden
reject Die Mail soll abgelehnt werden

Derzeit gibt es einige Strategien der Mailprovider, wie mit den Problemfeldern Weiterleitungen, Mailinglisten und Fehlkonfigurationen umgegangen wird:

e. Alignment

Der Vergleich des Header-From mit der DKIM-Domain oder der SPF-Domain (Envelope-From) kann in zwei Varianten stattfinden:

strict Die Domains müssen identisch sein.
relaxed

Die DKIM-Domain bzw der Envelope-From dürfen auch Subdomains der Header-From-Domain aufweisen.

 Das Alignment lässt sich für DKIM und SPF getrennt definieren.

f. Subdomains

Sendet man ausgehende Mails für verschiedene Subdomains, z.B. Institute, so sollte man entweder unterschiedliche Envelope-From (=> SPF) oder unterschiedliche DKIM-Domains verwenden sowie das Alignment auf strict setzen, damit DMARC eindeutig zwischen den Instituten unterscheiden und ein Institut nicht Mails im Namen eines anderen Instituts versenden kann.

Nutzung im DFN-MailSupport

Im DFN-MailSupport führt der Spamassassin die DMARC-Checks durch. Als Ergebnis setzt er folgende Checks in den X-Spam-Report-Header der Mail bzw. in die Amavis-Syslog-Zeilen:

Hit Score Bedeutung
DMARC_MISSING 0.01 Es wurde kein DMARC-DNS-Record gefunden
DMARC_PASS -0.01 Der Check war erfolgreich
DMARC_NONE 0.01 Der Check schlug fehl, die Policy lautet none
DMARC_QUAR 1.0 Der Check schlug fehl, die Policy lautet quarantine
DMARC_REJECT 2.0 Der Check schlug fehl, die Policy lautet reject

Nutzen Sie das ausgehende Filtern des DFN-MailSupports, so können Sie DMARC-DNS-Records für Ihre Domains aufsetzen, wenn Sie bereits SPF-DNS-Records veröffentlicht haben und Ihre Mails DKIM-signieren oder von uns DKIM-signieren lassen.

Zusätzliche optionale Konfigurationen

  1. Score-Anpassungen für beliebige Absender-Domains.
    Die Scores obiger Checks lassen sich beliebig anpassen.
  2. Score-Anpassungen für eigene Absender-Domains.
    Der DMARC-Check wird für die eigenen Domains mit erhöhten Scores versehen, um zB Phishing mit gefälschten Absendern abzulehnen. Die Liste der Domains muss über die Hotline konfiguriert werden. Hierfür muss ihr DMARC-Record zwar existieren, aber die Policy muss nicht auf reject gesetzt werden, es genügt auch die ansonsten gefahrlos verwendbare Policy none.
  3. DMARC-analoger Check ohne DMARC-DNS-Record.
    Hierbei wird die Mail abgelehnt, wenn eine der eigenen Domains im From:-Header verwendet wird. Wie unter Punkt 2 muss allerdings die Liste der Domains, für die dieser Check durchgeführt werden soll, über unsere Hotline konfiguriert werden

 Ein Whitelisting kann über die amavis_whitelist_spam_*-Listen erfolgen.