DKIM2
An original song by Inbox Senders Club
Ali G(mail) is back on da mic to break down DKIM2 — the IETF draft rebuilding email authentication around a signed chain of custody, where every hop signs, every change is declared, and every bounce goes home. Five minutes of hip-hop spec exegesis straight from IETF DKIM2 Daft Specs.
5:00
Duration
Intro
(Spoken)
Aiii. Restecp.
Checkin' da signature, checkin' da chain.
D-K-I-M — da sequel. Still a draft, innit.
Booyakasha. Check it.
Verse 1
Back in da day it was six-three-seven-six
DKIM one — solid, but it had a glitch
Add a footer to da body? Dat's your body hash
Touch da subject line? Header hash crash
Legit mail get binned in wid da trash
Den arc turn up sayin' "trust me, it was nice"
Experiment concluded — now we do it precise
Change da text or da envelope, you sign what you done
Only a see-through relay get to skip dat one
Verse 2
Chain of custody, dat's da headline act
"m-f" is da MAIL FROM, base sixty-four, exact
"r-t" is da RCPT TO, every place it go
Angle brackets included, dat's da envelope, bro
Last man's "r-t" gotta carry da next man's "m-f"
Domain match only — strip da labels from da left
Da live envelope gotta match da top one exact
Local part and all, dat's da replay contract
"i equals one" is da Originator hop
Every forward add one more, da numbers never stop
Receive on one domain, send out on anuvva?
"n-d" name da next one — imaginary cover
No "m-f", no "r-t" when da "n-d" is dere
But da next "d" better match, or da chain go bare
Chorus
Hash da body, hash da head, sign da chain
D-K-I-M two — every hop again
"i", "m", "t", "d", "s" — dem is mandatory
Replay leave a trail all down da chain of custody
Wicked.
Hash da body, hash da head, sign da chain
D-K-I-M two — every hop again
"i", "m", "t", "d", "s" — dem is mandatory
Replay leave a trail all down da chain of custody
Booyakasha.
Verse 3
Message-Instance, dat's da other header field
"m" is da instance number, count 'em as dey build
"h" hold da hashes, S.H.A. two-five-six
Header hash, colon, body hash — dat's da mix
Forwarder touch nuffink? Da old signature ring
Add a footer line and now you is a different ting
You is a Reviser — "r" hold da recipe
JSON, base sixty-four, tell 'em what it used to be
"c" mean copy lines from here to dere
"d" mean here's da literal I stuck in dere
Header fields count up from da bottom of da pile
Body lines count down — opposite style
Wreck da body and you cannot rewind?
Put a null, own it, hope dey still be kind
Verse 4
Some header fields don't count, dem invisible
"Received", "Return-Path" — trace, dat's da principle
"Delivered-To", "Auth-Results" — dat's local chat
"DKIM-Signature", "arc-dash" — ignore all dat
Anything startin' "X-dash" is a private affair
Don't sign it, don't count it, act like it ain't dere
Message-Instance and da DKIM2 fields? Skip dem too
Dey get signed separate — don't count nuffink twice, dat's da rule
Lowercase da names, unfold da fold
Header hash squash da spaces down to one, A to Zed
Signature canon kill every space instead
Cos da signature only sign da DKIM2 line
Everyting else ride inside da hash — dat's da design
Bridge
S.H.A. two-five-six, dat's da hash you gotta hold
Verifier MUST do R-S-A and Ed twenty-five-five-one-nine, I'm told
Key live in da D-N-S, same as it always been
Selector, underscore-domainkey, dot da domain
R-S-A one-oh-two-four bits, exponent sixty-five-five-three-seven
Ain't no "v equals" — version numbers weren't heaven
Break it in da future? Dey don't renumber, no
Dey just call it DKIM three. Dat's how it go.
Verse 5
"t" is da timestamp, seconds since seventy
Fourteen days on any hop? Dat's a drop, generally
"n" is a nonce, sixty-four char max
Only mean sometin' to da man who signed, dem's da facts
"f" hold da flags — dey report and dey request
"exploded": went to many. Mailin' list. Not a pest.
"donotmodify": hands off da body and da head
"donotexplode": one recipient, is what da signer said
"feedback": tell me how it land
"feedhere": route it back through me, understand?
Ignore da request cos your policy say so? Fine —
But dat copy never leave your house. Dat's da line.
Verse 6
Now da bounce go back one hop, not to some random address
To da "m-f" of da man dat handed you da mess
"m-f" is empty? Angle bracket, bracket, done —
Den you don't send nuffink. Not to no one.
No more backscatter on a geezer who never knew
PASS, FAIL, PERMERROR, TEMPERROR — dem is da four
Fail da check inbound? No D-S-N no more
So reject five-five-oh while da S-M-T-P still run
Key server down? Four-five-one. Crypto fail? Dat's done.
Chorus
Hash da body, hash da head, sign da chain
D-K-I-M two — every hop again
"i", "m", "t", "d", "s" — dem is mandatory
Replay leave a trail all down da chain of custody
Wicked.
Hash da body, hash da head, sign da chain
D-K-I-M two — every hop again
"i", "m", "t", "d", "s" — dem is mandatory
Replay leave a trail all down da chain of custody
Wicked.
Outro
(Spoken)
Every hop dat change it, signs. Every change declared. Every bounce go home.
Big up da I-E-T-F massive. Big up da D-K-I-M workin' group.
DKIM one ain't dead — DKIM two just don't look at it. Run bofe, innit.
West Staines Massiv is signin' every hop.
Respek.
Credits
Song: “DKIM2” — Inbox Senders Club
Songwriter: Inbox Senders Club
Producer: Inbox Senders Club
© Inbox Senders Club. All rights reserved.