[ DKIM ]

Diagnose van DKIM fouten door wijzigingen in MIME en overdrachtscodering

Vergelijk geserialiseerde berichten om visueel identieke inhoud te onderscheiden van de bytes DKIM feitelijk verifieert.

Door het EmailAuth -onderzoeksteam

[ Kernpunten ]

  • DKIM hasheert de gecodeerde lichaamsrepresentatie, niet de gedecodeerde inhoud van de bijlage.
  • De headers en grenzen MIME onderdelen zijn bodybytes; buitenste headers gebruiken op h gebaseerde dekking.
  • Voltooi MIME -serialisatie vóór de laatste geschikte ondertekeningsbewerking.
Op deze pagina

Twee berichten kunnen er in een e-mailclient identiek uitzien en toch verschillend zijn DKIM lichaam hash. DKIM verifieert de verzonden representatie nadat deze is gespecificeerd canonicalisering, niet de gedecodeerde weergave van de lezer. Het opnieuw opbouwen MIME , conversie van inhoudoverdracht en grenswijzigingen horen daarom vroeg in het onderzoek, wanneer een bericht pas mislukt na een verwerkingsservice.

Scheid schijn van representatie

Een MIME bericht kan platte tekst, HTML, bijlagen en geneste meerdelige structuren bevatten. RFC 2046 §5.1.1 plaatst MIME onderdeelkoppen en grensscheidingslijnen binnen de meerdelige hoofdtekst. Het opnieuw coderen van een tekstgedeelte van quoted-printable naar base64 kan behouden wat een gebruiker leest, terwijl de bytes worden gewijzigd die aan DKIM worden gepresenteerd. Het opnieuw inpakken van gecodeerde regels kan deze bytes ook wijzigen. Ontspannen canonicalisering is een gedefinieerde witruimtetransformatie, geen MIME decoder of een gelijkwaardigheidstest voor weergegeven inhoud.

RFC 6376 §5.3 adviseert conversie naar een geschikte MIME -overdrachtscodering vóór ondertekening om transportconversies te verminderen. Het vereist specifiek dat lokale representaties die vóór verzending zullen veranderen, worden genormaliseerd vóór ondertekening. Het principe is operationeel eenvoudig: onderteken het formulier dat de ontvanger geacht wordt te zien.

Zoek de wijziging in de serialisatie

Verkrijg onbewerkte berichten bij de uitvoer van de ondertekenaar, de vermoedelijke gateway-uitvoer en de uiteindelijke ontvanger. Bewaar originelen zonder ze te openen en op te slaan via een editor die regeleinden normaliseert. Let op de verzamelmethode, want een exporttool kan zelf de weergave wijzigen.

Vergelijk de velden Content-Type en Content-Transfer-Encoding bij het buitenste bericht en bij elk relevant MIME onderdeel. Controleer grensreeksen, bijlagecodering, gevouwen lijnen en tekensetconversie. Bepaal of een gewijzigde buitenste koptekst in h is opgenomen en of gewijzigde onderdeelkopteksten in de ondertekende hoofdtekst zijn opgetreden. Behandel de twee locaties afzonderlijk: een buitenste header kan ervoor zorgen dat de handtekeningverificatie mislukt, terwijl een MIME onderdeelheader normaal gesproken deelneemt aan de lichaam hasj.

Werk een coderingsvoorbeeld door

Illustratieve testspecificatie: een tekstgedeelte dat een niet-ASCII-teken bevat, wordt voorbereid met behulp van quoted-printable voordat de applicatie het bericht ondertekent. Een downstream-service decodeert dat onderdeel en serialiseert het als base64. De weergegeven zin blijft hetzelfde, maar de gecanoniseerde tekst kan verschillen en de originele handtekening kan mislukken. Voer dit alleen uit met gecontroleerde inhoud en inspecteer de werkelijke byteverschillen in plaats van aan te nemen dat elke service deze conversie uitvoert.

Maak een kleine testset met alleen platte tekst in ASCII, niet-ASCII-tekst, meerdelige HTML en een kleine bijlage. Stuur ze allemaal via een direct controlepad en het productie-equivalente verwerkingspad. Als alleen de laatste de representatie verandert, identificeert de grensvergelijking de component die moet worden onderzocht. Als beide niet werken, onderzoek dan eerst de serialisatie en normalisatie van de ondertekenaar zelf.

Repareer de grens

Geef de voorkeur aan de definitieve MIME constructie en selectie van overdrachtscodering vóór ondertekening. Als een beveiligingsdienst inhoud moet herschrijven, zorg dan voor een geautoriseerde ondertekeningsstap na de definitieve serialisatie. Bevestig het ondersteunings- en eigendomsmodel voor aangepaste domeinen; een handtekening onder een niet-gerelateerd servicedomein kan DKIM doorgeven zonder uit te lijnen DMARC onder RFC 9989 §4.4.1.

Repareer een monster niet op zijn plaats en presenteer het niet als bewijs dat de productie vaststaat. Een gewijzigde steekproef toetst alleen een hypothese. Wijzig de verantwoordelijke configuratie, stuur nieuwe gecontroleerde berichten en leg de oorspronkelijke ontvangerresultaten vast. Vermijd brede omzeilingen van inhoudsinspectie uitsluitend om een ​​handtekening te behouden zonder de gevolgen voor de beveiliging te beoordelen.

Bewaar een nuttig incidentoverzicht

Leg de eerste grens vast waar geserialiseerde inhoud uiteenloopt, het betrokken MIME veld of -onderdeel, de ondertekenaar en keuzeschakelaaren resultaten voor elke testvariant. Houd de testberichten vrij van klantgegevens. Voer de suite opnieuw uit na gateway-upgrades en wijzigingen in de verwerking van bijlagen. De voltooide oplossing legt uit waarom de oude weergave faalde en laat zien dat nieuw verzonden e-mail de volledig ondersteunde route overleeft.

Vergelijk een concreet gecodeerde representatie

Voor de UTF-8 bytes C3 A9 die é vertegenwoordigen, is een afdrukbare weergave tussen aanhalingstekens =C3=A9; een base64-representatie is w6k=. Met de juiste MIME headers decoderen beide naar hetzelfde teken, maar de gecodeerde tekenreeksen verschillen. RFC 2045 §6.7 En RFC 2045 §6.8 definieer de coderingen; RFC 6376 §3.7 vereist hashing na overdrachtscodering en vóór decodering tijdens verificatie. Dit geïsoleerde representatievoorbeeld is geen volledig MIME bericht of een uitgevoerde handtekeningtest. Als er een lichaamslengtelimiet wordt gebruikt, bepaal dan of de gewijzigde bytes binnen het bereik vallen, in plaats van ervan uit te gaan dat elk onderdeel beschermd is.

[ Afhaalmaaltijden ]

DKIM hasheert de gecodeerde lichaamsrepresentatie, niet de gedecodeerde inhoud van de bijlage. De headers en grenzen MIME onderdelen zijn bodybytes; buitenste headers gebruiken op h gebaseerde dekking. Voltooi MIME -serialisatie vóór de laatste geschikte ondertekeningsbewerking.

[ Per rol ]

Wat dit voor jou betekent

Kies jouw rol voor praktische vervolgstappen.

IT/Mailbeheerder

Vergelijk geserialiseerde formulieren

Identificeer het eerste gewijzigde MIME onderdeel in plaats van te vertrouwen op schermafbeeldingen.

Volgende stappen

  1. Behoud de export van grondstoffen.
  2. Test de overdrachtscoderingen voordat u ondertekent.

CISO / SecOps

Houd inspectie en authenticiteit bij elkaar

Kies een ontwerp dat de inhoud inspecteert vóór de definitieve ondertekeningsgrens.

Volgende stappen

  1. Beoordeel elke voorgestelde bypass.
  2. Beperk de toegang tot vastgelegde berichten.

Oprichter / Niet-technisch

Bescherm rijke klantberichten

Een eenvoudige test-e-mail dekt niet de formaten die worden gebruikt door facturen en rapporten.

Volgende stappen

  1. Voeg echte berichtformaten toe met synthetische gegevens.
  2. Wijs een eigenaar toe voor de verwerkingsservice.

[ Veelgestelde vragen ]

Veelgestelde vragen

Kan identieke weergegeven tekst een andere body-hash hebben?

Ja. MIME serialisatie en overdrachtscodering kunnen verschillen, zelfs als een e-mailclient dezelfde tekst weergeeft.

RFC 6376 §3.7

Hasht DKIM bijlagen?

DKIM werkt op de weergave van de berichttekst na canonicalisatie, niet op een afzonderlijk gedecodeerd bijlagebestand.

RFC 6376 §3.7

Zijn MIME onderdeelkoppen inbegrepen?

Ze komen voor in de berichttekst en nemen deel aan de gecanoniseerde bytes. Bij volledige lichaamsdekking zijn ze inbegrepen; Een l-limiet kan ervoor zorgen dat latere delen buiten de dekking vallen.

RFC 2046 §5.1.1 RFC 6376 §3.7

Decodeert de ontspannen modus base64?

Nee. De transformaties ervan zijn gedefinieerde witruimteregels; het decodeert geen MIME overdrachtscoderingen.

RFC 6376 §3.4.4

Wanneer moet codering worden gekozen?

Vóór ondertekening, nadat het bericht is genormaliseerd in de representatie die bij verzending wordt verwacht.

RFC 6376 §5.3

Waarom de export van grondstoffen behouden?

Een gerenderde weergave verbergt MIME en coderingsverschillen, terwijl een editor zijn eigen wijzigingen kan aanbrengen.

Kunnen we de beveiligingsgateway omzeilen?

Een gecontroleerd vergelijkingspad kan het probleem diagnosticeren, maar voor een productiebypass is een afzonderlijke beveiligingsbeslissing nodig.

Welke regressiemonsters zijn nuttig?

Platte tekst, niet-ASCII-inhoud, meerdelige HTML en bijlagen laten verschillende serialisatiepaden zien.

[ Bronnen ]

Bronnen

  1. RFC 6376

    Secties §1 · §3.4 · §3.4.4 · §3.5 · §3.7 · §5.3

  2. RFC 9989

    Secties §4.4.1

  3. RFC 8601

    Secties §1.2

  4. RFC 2045

    Secties §1 · §6.7 · §6.8

  5. RFC 2046

    Secties §5.1.1

[ Glossarium ]

Glossarium

MIME
Berichtformaten die gestructureerde delen en coderingen vertegenwoordigen.

RFC 2045 §1 RFC 2046 §5.1.1

Codering overbrengen
De gecodeerde representatie die wordt gebruikt om de hoofdinhoud over te dragen, zoals quoted-printable of base64.

RFC 2045 §6.7 RFC 2045 §6.8

Meerdelige grens
Een scheidingsteken dat scheidingen tussen MIME -lichaamsdelen identificeert.

RFC 2046 §5.1.1

Canonicalisering
DKIM bytevoorbereiding, die MIME overdrachtscodering niet decodeert.

RFC 6376 §3.4 RFC 6376 §3.7

Herkomst onderneming

Waarom top financiële instellingen en overheden hebben hun e-mailbeveiligingsdashboards stopgezet.

Traditionele platforms voor e-mailauthenticatie verkopen u een dashboard en vragen uw technici om het werk te doen. In omgevingen waar veel op het spel staat, betekent handmatig toezicht vertraagde handhaving, configuratieafwijking en niet-gecontroleerde schaduwdomeinen.

EmailAuth is het agentische e-mailherkomstplatform. Onze agenten handhaven p=reject, houd externe afzenders op één lijn en verplaats uw domeinen naar vol RFC 9989 compliance, de nieuwe DMARC standaard, met 'human-in-the-loop'-auditeerbaarheid.

Regeringen Grote ondernemingen Tier-1 financiële instellingen

SaaS · Toegewijde huur · Air-gapped on-premise · BYOK-encryptie

Kennisbank