DMARC-alignment in detail
Een bericht kan SPF halen, DKIM halen, en toch DMARC niet doorstaan. Dat verrast mensen de eerste keer — maar het is geen bug, het is alignment: de extra controle die DMARC toevoegt bovenop de eigen pass/fail-resultaten van SPF en DKIM.
Zie het als het matchen van een instapkaart met een ID-bewijs
DMARC-alignment is als het matchen van de naam op een instapkaart met de naam op je ID-bewijs: SPF en DKIM kunnen allebei technisch “geldig” terugkomen, maar als de naam die ze valideerden niet overeenkomt met de naam op de e-mail die mensen daadwerkelijk zien (het zichtbare “Van”-adres), telt het alsnog niet als match.
Waarom dit belangrijk is
SPF en DKIM authenticeren allebei een domein — maar niet per se hetzelfde domein dat een lezer daadwerkelijk ziet. SPF controleert de onzichtbare “envelope”-afzender die tussen mailservers wordt gebruikt; DKIM controleert welk domein dan ook de cryptografische handtekening heeft geplaatst, wat vaak een verzendplatform of leverancier is in plaats van jijzelf. DMARC zorgt ervoor dat welk mechanisme dan ook slaagde, hetzelfde domein controleert als wat in het zichtbare Van-adres van het bericht staat — het adres dat iemand daadwerkelijk leest. Zonder die extra controle zou het slagen van SPF of DKIM voor willekeurig welk domein al genoeg zijn, zelfs een domein dat niets te maken heeft met het bericht dat de lezer ziet.
Hoe het werkt: een uitgewerkt voorbeeld
Stel dat newsletter@marketing-vendor.com namens example.com een campagne verstuurt, en het zichtbare Van-adres van het bericht toont news@example.com.
- SPF slaagt voor
marketing-vendor.com(het envelope/return-path-domein) — maar dat is nietexample.com, dus dit is niet in alignment. - DKIM is ondertekend met de eigen sleutel van
example.com, en slaagt voorexample.com— wat overeenkomt met het zichtbare Van-domein, dus dit is wél in alignment.
Omdat minstens één mechanisme (DKIM) zowel slaagde als in alignment was met het zichtbare Van-domein, doorstaat dit bericht DMARC in zijn geheel — ook al faalde de alignment voor SPF. DMARC heeft maar één van de twee nodig die slaagt én in alignment is, niet allebei.
Ik wil meer weten
De uitleg en het voorbeeld hierboven dekken wat de meeste mensen dagelijks nodig hebben. De rest van dit artikel is de gedetailleerde naslag: precies hoe “pass” voor elk mechanisme is gedefinieerd, en hoe strikte versus relaxte alignmentmodus bepaalt wat als match telt.
Voorwaarde 1: een pass-resultaat
DMARC heeft eerst minstens één “pass” van SPF of DKIM op eigen voorwaarden nodig, vóórdat alignment überhaupt wordt overwogen:
| Resultaat | Betekenis |
|---|---|
| None | Het bericht was niet ondertekend. |
| Pass | De handtekening is succesvol geverifieerd. |
| Fail | De handtekening is niet geslaagd bij verificatie. |
| Policy | De handtekening was niet acceptabel onder het beleid van de ontvanger. |
| Neutral | De handtekening bevatte syntaxisfouten of kon niet worden verwerkt. |
| TempError | Een tijdelijke fout verhinderde verificatie; een latere poging kan wel slagen. |
| PermError | Een permanente fout verhinderde verificatie; een latere poging zal waarschijnlijk niet helpen. |
Alleen “Pass” telt als een geslaagde DKIM-check voor DMARC — elk ander resultaat hierboven wordt als fail behandeld.
| Resultaat | Betekenis |
|---|---|
| None | Het domein publiceerde geen SPF-record. |
| Neutral | Wordt hetzelfde behandeld als “None”. |
| Pass | De verzendende server is geautoriseerd om dat domein te gebruiken. |
| Fail | De verzendende server is niet geautoriseerd om dat domein te gebruiken. |
| SoftFail | Wordt behandeld als ergens tussen “Fail” en “Neutral” in. |
| TempError | Er trad een tijdelijke fout op tijdens de controle. |
| PermError | Het SPF-record van het domein kon niet correct worden geïnterpreteerd. |
Alleen “Pass” telt als een geslaagde SPF-check voor DMARC — elk ander resultaat hierboven wordt als fail behandeld.
Voorwaarde 2: identifier alignment
DMARC authenticeert het Header.From-domein — het domein in het zichtbare “Van”-veld dat een lezer ziet, en het veld dat het vaakst doelwit is van misbruik. Het vereist dat dit domein in alignment is met welk mechanisme (SPF of DKIM) dan ook slaagde:
- DKIM is in alignment wanneer het domein dat de handtekening plaatste overeenkomt met het Header.From-domein.
- SPF is in alignment wanneer het envelope/return-path-domein overeenkomt met het Header.From-domein.
Alignment kan op twee manieren worden gecontroleerd, per mechanisme in te stellen in je DMARC-record (adkim= voor DKIM, aspf= voor SPF):
- Strikte modus (
s) — het Header.From-domein en het authenticerende domein moeten exact overeenkomen. - Relaxte modus (
r, de standaard) — de twee domeinen hoeven alleen hetzelfde organisatiedomein te delen. In de praktijk is dit het topleveldomein plus één label (bijvoorbeeldmail.example.comenexample.comdelen het organisatiedomeinexample.com, dus deze zijn in alignment onder relaxte modus). Gebruik het ICANN-only gedeelte van de Public Suffix List om het juiste topleveldomein hiervoor te bepalen.
Goed om te weten
Het is de moeite waard om DMARC-alignment periodiek opnieuw te controleren, zelfs als je al p=reject handhaaft. Mailinfrastructuur verandert voortdurend — een nieuw marketingplatform, een gewijzigde leverancier, een gemigreerde mailserver — en elk daarvan kan stilletjes de alignment breken voor een verzender die voorheen wel slaagde.
Bronnen & verder lezen
- RFC 7489 – DMARC: datatracker.ietf.org/doc/rfc7489
- RFC 7208 – SPF: rfc-editor.org/rfc/rfc7208
- RFC 6376 – DKIM-handtekeningen: rfc-editor.org/rfc/rfc6376
- RFC 8601 – Message Header Field for Indicating Message Authentication Status: rfc-editor.org/rfc/rfc8601
