STEPHANMUND.de

Mail

ePub

2008-07-16: DKIM- und DomainKeys Policies

Einleitung

In einem früheren Artikel habe ich beschrieben, wie man DKIM- und DomainKeys-Signaturen unter Debian mit Postfix integriert.
Damit nun auf Grund verschiedener Faktoren, wie zum Beispiel dem Fehlen der Signatur bei bestimmten Mails, der Signatur von Mails auf Basis des Senders statt des Author oder möglicher Signaturfehler in der Implementierungsphase, die Mails nicht von den empfangenden Mailservern abgelehnt werden, lässt sich mit Hilfe von Policies ziemlich genau festlegen, welche Signaturen der empfangende Mailserver zu erwarten hat und wie er bei Fehlern mit der Mail umgehen soll.

Allgemeines

DKIM- bzw. DomainKeys-Policies werden, ebenso wie der PublicKey, über DNS bereitgestellt. Es lassen sich globale Policies und Selektor-spezifische Policies definieren.
Für jede Domain kann es, im Gegensatz zu Selektoren, nur eine globale Policy geben.

Domainkeys-Policy

Globale Policies
Die Policy für DomainKeys wird im DNS als TXT-Eintrag für die Subdomain _domainkey.example.org angelegt, wobei statt example.org natürlich die eigene Domain eingesetzt werden muss. Es gibt folgende Parameter:
Tag Wert
o (Outbound Signing policy) "-": JEDE Mail von dieser Domain wird signiert
"~": Es können Mails von dieser Domain signiert werden
r (Reporting Email adress) Email-Adresse, an die eventuelle Fehler bei der DomainKeys-Überprüfung mitgeteilt werden können
t (Testing mode) "y": Test-Modus ist aktiviert. Falsch signierte Mails dürfen nicht als unberechtigt behandelt werden
"n": Test-Modus ist deaktiviert.
n (Notes) Freitext-Felt für Informationen, die für eine Person bezüglich der Signatur interessant sein können. Wird nicht von Systemen ausgewertet.
Ein kompletter Eintrag sieht zum Beispiel wie folgt aus:
_domainkey.example.org IN TXT "t=y; o=~; r=postmaster@example.org; n=http://www.example.org/policy.htm"
Erläuterung: DomainKeys befindet sich noch in der Testphase, es werden nicht alle Mails signiert. Bei Fehlern kann man postmaster@example.org informieren, weitere Informationen findet man unter http://www.example.org/policy.htm.
Selektor-Policies
Die Policy für einen einzelnen Selektor wird im selben TXT-Eintrag definiert, in dem auch der PublicKey festgehalten wird. Es gibt folgende Parameter:
Tag Wert
g (Granularity) "local_part": Dieser Wert (sofern angegeben) legt fest, wer diesen Selektor als Signatur verwenden darf. Der Local Part des Absenders muss exakt mit dem angegebenen Wert übereinstimmen.
n siehe globale Policies
t siehe globale Policies
k (Key-Type) Standard ist "rsa". RSA wird von allen Systemen unterstützt, daher sollte man diese Einstellung auch verwenden
Ein um eine Policy erweiterter Selektor kann also so aussehen:
sign._domainkey.example.org IN TXT "k=rsa; p=MIGfMA[...]kQIDAQAB; n=http://www.example.org/policy_sign.htm; t=y; g=info"
Erläuterung: Nur die Email-Adresse "info@example.org" darf diesen Selektor verwenden. Der Key-Typ ist "rsa", des Selektor befindet sich noch im Test-Modus, weitere Informationen findet man unter http://www.example.org/policy_sign.htm.

DKIM-Policy

Globale Policies
Für DKIM gibt es noch keine finalen global Policies. Es existieren nur Entwürfe für DASP bzw. ADSP Die Entwürfe stehen unter folgenden URLs zur Verfügung: Da es sich hier, wie gesagt, um Entwürfe handelt, ist nicht davon auszugehen, dass diese Policies bereits breit unterstützt werden. Außerdem sind in diesem Bereich noch einige Änderungen zu erwarten.
Selektor Policies
Die Policy für einen einzelnen Selektor wird im selben TXT-Eintrag definiert, in dem auch der PublicKey festgehalten wird. Es gibt folgende Parameter:
Tag Wert
v (Version) "DKIM1", muss, wenn angegeben, der erste Wert des Eintrags sein.
g (Granularity) "local_part": Dieser Wert (sofern angegeben) legt fest, wer diesen Selektor als Signatur verwenden darf. Der Local Part des Absenders muss exakt mit dem angegebenen Wert übereinstimmen. Standard-Wert ist "*". Es ist zu beachten, dass ein leerer Wert NIE zutrifft.
h (Acceptable hash algorithms) Doppelpunkt-separierte Liste von unterstützten Hash-Algorithmen (z.B. sha1, sha256, md5)
k (Key type) Key-Typ. Standard ist "rsa" und sollte wegen der breiten Unterstützung auch verwendet werden.
n (Notes) Weitere Informationen. Wie bei DomainKeys.
s (Service type) Doppelpunkt-separierte Liste von Service-Typen. Standard ist "*", der einzige definierte Typ ist "email"
t (Flags) Doppelpunkt-separierte Liste von weiteren Flags:
"y": DKIM-Signatur befindet sich im Testbetrieb. Falsch-Signaturen sollten nicht negativ gewertet werden
"s": In der Signatur müssen der Domain-Teil in "i=" und die definierte Domain in "d=" übereinstimmen. D.h. dass Signaturen für Emails aus Subdomains nicht gültig sind.
So sähe ein DKIM-Selektor-Eintrag im DNS aus:
dkim._domainkey.example.org IN TXT "v=DKIM1; g=*; h=sha256:sha1; k=rsa; n=http://www.example.org/dkim_policy.htm; s=email; t=s:y; p=MIGfMA[...]kQIDAQAB"
Erläuterung: Es wird DKIM in der Version 1 verwendet, verwendete Hash-Algorithmen sind SHA1 und SHA256, der Keytyp ist RSA und darf nur für Emails verwendet werden. Es wird im Testbetrieb gearbeitet und Subdomain-Signaturen sind unzulässig. Weitere Informationen sind unter http://www.example.org/dkim_policy.htm zu finden.

ePub

Kommentare

Kommentieren
Bisher keine Kommentare.
Wegen eines übermäßigen Spam-Aufkommens ist die Kommentar-Funktion bis auf weiteres deaktiviert.
Zurück zu Technik | Mail
Hat Ihnen der Artikel weitergeholfen? Sie wollen sich in irgendeiner Art für die geleistete Hilfe erkenntlich zeigen? Schauen Sie doch einmal auf meiner Amazon-Wunschliste vorbei, ich freue mich immer über eine kleine Sachspende:
Zur Wunschliste