Mailinglisten DKIM-konform betreiben

Abstract

Mailinglisten-Manager wie Mailman zerstören DKIM-Signaturen, die in der Abwehr von Spam und Phishing eine bedeutsame Rolle spielen. In diesem Beitrag zeige ich, wie Mailman konfiguriert wird, damit die DKIM-Signaturen intakt bleiben, und was ein Postmaster unternehmen kann, um seinen Abonnenten den Abschied von liebgewonnenen Gewohnheiten zu erleichtern.

Mailinglisten-Manager wie Mailman zerstören DKIM-Signaturen, die in der Abwehr von Spam und Phishing eine bedeutsame Rolle spielen. In diesem Beitrag zeige ich, wie Mailman konfiguriert wird, damit die DKIM-Signaturen intakt bleiben, und was ein Postmaster unternehmen kann, um seinen Abonnenten den Abschied von liebgewonnenen Gewohnheiten zu erleichtern.

Bevor es aber, fast am Ende, zur Sache gehen wird, ein paar DKIM-Grundlagen, damit verständlich wird, warum Mailinglisten heute DKIM-konform betrieben werden sollten.

DKIM 101

Mit DomainKeys Identified Mail (kurz: DKIM) kann die Senderdomain eines E-Mail-Absenders identifiziert werden. Dazu wird ein kryptographisches Signierverfahren angewendet, das zwei Signaturen erstellt – eine über einige Header der Nachricht und die andere über ihren Body. Die Prüfsummen werden in einem eigens dafür standardisierten DKIM-Signature:-Header der E-Mail vermerkt.

Gültige DKIM-Signatur einer Mail von python.org

Ist die Signatur gültig, ist der Originator eine Nachricht zweifelsfrei etabliert. Dies kann im nächsten Schritt entscheiden helfen, ob die Nachricht angenommen werden soll oder nicht. Das kann z.B. über eine Bewertung auf Grundlage einer mit dem Sender (Identität) verbundenen Reputation stattfinden oder über eine Prüfung einer in der Senderdomain veröffentlichten DMARC-Policy.

Eine DMARC-Policy ergänzt DKIM. Der DKIM-Standard regelt, wie Signaturen anzubringen und zu prüfen sind, damit eine Identität digital etabliert werden kann. DMARC sagt, wie mit DKIM-signierten Mails verfahren werden soll, wenn sie nicht vorhanden, vorhanden und gültig oder vorhanden und ungültig sind. Sie kann z.B. vorschreiben – und das ist die empfohlene Einstellung – eine Nachricht abzulehnen (REJECT), wenn die Signatur ungültig ist.

Important

Selbst wenn DMARC noch nicht per RFC in den Rang eines IETF-Standards erhoben wurde, werden heute bereits knapp 60% des weltweiten Mailverkehrs unter Zuhilfenahme von DMARC-Policies verarbeitet!

Der Erhalt des gegebenen Zustands einer DKIM-Signatur – gleich ob sie vor Eingang in den MLM gültig oder ungültig war – ist also von entscheidender Bedeutung, ob die Nachricht auf Empfängerseite angenommen werden wird oder nicht.

Der Screenshot oberhalb zeigt einen Authentication-Results:-Header, in dem die Unversehrtheit (dkim=pass) einer DKIM-Signatur bestätigt wird. Stünde dort dkim=fail, müsste der Empfänger davon ausgehen, dass der Inhalt der Nachricht manipuliert wurde – absichtlich oder unabsichtlich. Absichtlich meist mit dem Ziel, Empfänger zu schädigen (Spam, Phishing etc.) – unabsichtlich meist, wenn ein mailverarbeitendes Programm die Mail während der Verarbeitung so modifiziert, dass dabei die Signaturen der Nachricht ungültig werden.

Mailinglisten-Manager – heute

Gültige DKIM-Signaturen werden z.B. dann zerstört, wenn ein Mailinglisten-Manager (kurz: MLM) wie Mailman mit den aktuell gültigen Standardeinstellungen betrieben wird. Die sehen heutzutage vor, die Betreffzeile einer ausgehenden Nachricht zu verändern und auch einen Footer anzuhängen.

Beide Maßnahmen dienen dazu, die Mailingliste, über welche die Nachricht verbreitet wird, besser kenntlich zu machen:

  • In der Betreffzeile wird der Name der Mailingliste in eckigen Klammern vorangestellt.
  • Der Footer enthält meist Hinweise auf den Zweck der Maillingliste und einen Verweis auf die administrative Weboberfläche der Liste.

Diese Informationen werden von Endanwendern geschätzt, weil sie, sichtbar in der Nachricht angebracht, den Umgang mit Listenmails vereinfachen. Postmastern sind sie eher ein Dorn im Auge, weil die Veränderung der Betreffzeile und des Footers sowohl die Header- als auch die Body-Signatur zerstört.

Mailinglisten-Manager – DKIM-konform

Ein MLM, der DKIM-Signaturen intakt belässt, verändert weder den Subject:-Header noch fügt er einen listenspezifischen Footer an. Wer von Null auf anfängt oder ab sofort nur noch DKIM-konforme Listen erstellen möchte, fügt folgende Konfigurationsangaben in Mailmans mm_cfg.py ein:

# Do not break existing DKIM signatures
DEFAULT_SUBJECT_PREFIX  = ""
DEFAULT_MSG_HEADER = ""
DEFAULT_MSG_FOOTER = ""

Mehr Arbeit ist erforderlich, wenn bereits bestehende Mailinglisten DKIM-konform konfiguriert werden sollen. Über das Webinterface entfernt der MLM-Administrator unter General Options zuerst den Inhalt des Feldes subject_prefix.

Das subject_prefix-Eingabefeld muss leer sein.

Anschließend dann im Bereich Non-digest options auch den Inhalt von msg_header und msg_footer.

Auch die Felder msg_header und msg_footer müssen geleert werden.

Nach dem Speichern sind diese Änderungen sofort aktiv, und DKIM-Signaturen werden unverändert durchgeschleift.

Change Management für Gewohnheitstiere

Bleibt noch den Personen, die gewohnt sind, ihre Mailingliste anhand des vom MLM modifizierten Subject:-Headers zu erkennen oder gar zu filtern, einen Ersatz für den nun unveränderten (lies: unbrauchbaren) Header an die Hand zu geben.

E-Mails von Mailinglisten auf Grundlage des Subject:-Headers oder des From:-Headers zu filter ist beliebt, aber beide Filter-Kriterien sind nicht immer so stabil wie der Empfänger sich das wünscht. Filter wie z.B. SIEVE arbeiten wesentlich zuverlässiger, wenn bei Mailinglisten der List-Id:-Header als Trigger für Aktionen herangezogen wird.

Für die Mailingliste postfix-users@de.postfix.org lautet der Wert des List-Id:-Header postfix-users.de.postfix.org. Eine Regel, die auf den Wert triggert und E-Mails in die Mailbox ml/postfix/users/de ablegt, lautet so:

if anyof (header :contains "List-Id" "postfix-users.de.postfix.org") {
    fileinto "ml/postfix/users/de";
}

Dort abgelegt, erkennt der Empfänger anhand des Ablageortes, dass es sich um eine E-Mail von einer Mailingliste handelt. Das ist einfach zu realisieren, und DKIM-konformen Mailinglisten steht nichts mehr im Weg.

Patrick Koetter, 11. August 2013

   Mailman    DKIM    E-Mail