DKIM kanonisering definerer, hvordan meddelelsesbytes forberedes til hashing og signaturverifikation. Det tillader specifikke normaliseringer; det gør ikke vilkårlig meddelelsesredigering harmløs. Diagnostiser den faktiske signaturs indstillinger og råindhold, før du ændrer afsenderens konfiguration.
Læs de to indstillinger hver for sig
Signaturens c= tagnavne header og body kanonisering i den rækkefølge. f.eks. afslappet/simpelt bruger afslappet forarbejdning til headers og enkel behandling for kroppen. RFC 6376 §3.5 definerer simpel/simpel som standard, når tagget er fraværende; hvis kun header-algoritmen er angivet, er body-algoritmen som standard simpel.
Optage c=, den underskrevne overskriftsliste h=, den kropshash bh= og enhver kropslængdegrænse l= ved siden af d= og s=. Et body-hash-mismatch, et header-signatur-mismatch og en manglende offentlig nøgle kræver forskellige undersøgelser. Udled ikke kanoniseringsindstillingen ud fra det, mailklienten viser.
Forstå den tilladte normalisering
Enkel header-kanonisering bevarer header-felter som præsenteret for algoritmen. Afslappet overskriftsbehandling med små bogstaver i feltnavne, udfolder fortsættelseslinjer og normaliserer specificeret mellemrum. Det gør ikke feltværdier med små bogstaver eller autoriserer ændring af et emnes ord.
Simpel krop kanonisering fjerner tomme linjer i slutningen og sikrer den nødvendige endelige CRLF, samtidig med at andet kropsindhold bibeholdes. Afslappet kropsbehandling reducerer også antallet af mellemrum og tabulatorer inden for en linje og fjerner mellemrum ved linjeender, før du håndterer efterfølgende tomme linjer. Den kombinerer ikke vilkårlige linjer, omskriver URL'er, fjerner MIME grænser eller ignorerer tilføjet tekst. RFC 6376 §3.4 specificerer den nøjagtige rækkefølge og kanttilfælde, herunder forskellig behandling af en tom krop.
Brug en overensstemmende implementering til nøjagtige tests. En håndredigeret tilnærmelse, der ændrer linjeafslutninger før verificering, kan skabe den fejl, den skal undersøge.
Anvend et kontrolleret eksempel
Overvej den syntetiske kropslinje Betal<SP><SP>nu<SP><CRLF>, hvor etiketterne i parentes angiver bytes i stedet for bogstavelig tekst. Afslappet krop kanonisering producerer Betal<SP>nu<CRLF> for den linje. Enkel kropsbearbejdning bevarer de indre og bageste rum. En ændring af denne art med kun blanke mellemrum kan derfor have forskellige udfald under de to kropsalgoritmer.
Tilføj nu en ny sætning efter den underskrevne besked. Afslappet behandling afviser ikke denne indholdsmæssige tilføjelse. Forudsat dækning af hele kroppen og ingen anden ændring i testen, adskiller den kanoniserede krop sig, og det samme gør dens forventede kropshash. En sidefodsregel kan ikke erklæres sikker, blot fordi afsenderen bruger afslappet/afslappet.
Eksemplet forklarer forventet normalisering, ikke en registreret hændelse eller en udført test. I produktionen skal du tage højde for MIME kodning, signerede overskrifter og signaturens faktiske længdebehandling. To meddelelser kan gengives identisk, mens deres signerede bytes er forskellige.
Find transformationen, før du ændrer politik
Bevar den originale råmeddelelse, og indhent derefter godkendte sammenligningsprøver før og efter mistænkte modifikatorer. Brug kopier til analyse. Sammenlign en ellers tilsvarende test med og uden den formodede sidefod, linkomskrivning eller genkodningsfunktion, og hold transportruten den samme.
Hvis den understøttede arkitektur tillader det, skal du udføre de nødvendige indholdsændringer før det relevante sidste signeringstrin. Hvis en mellemmand underskriver igen, skal du evaluere dens nye identitet og justering. Deaktiver ikke beskyttende gateway-behandling eller svække domænepolitikken udelukkende for at gøre én diagnostisk test grøn.
Som RFC 6376 §8.2 advarer, en kropslængde l= begrænse ændringer, hvor meget kanoniseret krop er dækket. Det er ikke en generel løsning for ændring af eftersignering og kan efterlade tilføjet indhold uden for den signerede del. Gennemgå sikkerhedsimplikationerne og udbydersupport i stedet for at tilføje det for at undertrykke en fejl.
Bevis rettelsen på byte- og ruteniveauer
Behold den oprindelige fejl, kanoniseringsindstillinger, kontrolleret sammenligning og et modtaget resultat fra den korrigerede rute. Hvis ændring af kanonisering er det valgte understøttede middel, skal du bekræfte, at den faktiske ændringshandling falder inden for dens tilladte transformationer. En ny afslappet signatur kan tolerere nogle hvide mellemrumsændringer, mens den forbliver sårbar over for den oprindelige indholdsmæssige omskrivning. Luk kun problemet, når den observerede ændring og verifikationsresultatet stemmer overens.
Tjek den tomme kantkasse
Under RFC 6376 §3.4.3, en helt tom eller manglende krop bliver til en CRLF eller to oktetter i simpel krop kanonisering. Under RFC 6376 §3.4.4, afslappet krop kanonisering producerer nul oktetter for en tom krop. Et værktøj, der hasheser CRLF i begge tilfælde, vil være uenig med standarden, selvom begge meddelelser vises tomme. Dette er et specifikationseksempel, ikke en komplet DKIM verifikation eller en udført mailtest.
Relateret læsning
DKIM public-key syntaks: Identificer trunkerede eller misdannede DNS værdier · Flere DKIM -signaturer: Find den tilpassede passerende signatur.