Hello Hannah,

I understand the time constraints. But this makes the exchange circular: you ask for a specific constructive alternative and a working implementation (which can be found on GitHub), while refusing to consult the draft that contains both. DarkChain is precisely that implementation – written in C, in production on Sendmail – and the data I cite come from its actual operation, not from theoretical speculation. It is also the "draft implementation" you yourself encouraged me to try.

For me, MIME _is_ in the game. Many MTAs handle MIME in some ways. E.g. for 8BITMIME related transforms - or in mail analysis for spam scoring etc. And I can tell you, MIME is a beast, even when looking only on what's needed for those transforms
MIME and RFC5322 are complex, but they are content the MTA has to handle anyway. That is not an argument for adding JSON on top for header changes, where a tag=value declaration does the same job.

I'd personally not hesitate to re-implement the needed JSON subset parsing/generation manually, with much less qualms than things like RFC5322 address header parsing (harder than you might think and also showing behavior differences between implementations),
In a security protocol that is the concern, not the reassurance. If each implementer writes their own subset, you get exactly the “parser differentials” you'd want to avoid - divergent parsing of the same input, which here is the vulnerability.

So let's stay realistic with "the internet is for everyone" and not assume "everyone" includes computing constraints from low- to mid-end consumer hardware from more than a decade ago (or the expectation that someone who arbitrarily limits themselves to a small Z80
   microcontroller would run an MTA specifically on that)?
The point was never vintage hardware - it was resource exhaustion under volume. A flat tag=value parser drops malformed input with near-zero allocation; a structured format has to build the object just to discover the payload is garbage. On a 2GB VPS under a flood of malformed messages, that is the difference - the "whose CPU" question, not a C64.

You talked about logging. Not about the original representation in the mail. Or did
   I misunderstand you?
I was of course also referring to the headers themselves - self-descriptive headers are, for system administration, a form of detailed logging that shows how the routing evolved.

   (e.g. for assessing whose reputation you need to take into account)
I understood DKIM2 to be about moving past trust, that is what made it interesting to me. Yet for two days now the discussion has kept returning to trust: the null recipe (unavoidable, as I have been saying for months) and now the asynchronous reputation assessment you mention. For a model whose premise was evidence over trust, that is telling.

On header correlation, which you raise in your reply to Richard: gathering is a protocol requirement, so a JSON solution has to correlate the same data for the seal. But it correlates more, and worse: every hop produces its own JSON recipe, so a verifier must load and reconcile all of them in memory before it can check anything and there is no way to work from only the relevant headers. This is presumably why the mainline leans on light synchronous checks with heavier verification deferred to an asynchronous back-end. A tag=value like DKIM2-Mod, by contrast, lets me roll back one step to i-1 on the fly, checking that the predecessor did not misdeclare its header changes, without preloading a tree of recipes or pushing work downstream. The envelope signature correlates the rt values by i= in both cases, and the specification does not put rt in JSON (base64 tag=value, Section 8.6); that part is common ground.

I take your "not keen to revisit this" - fair enough. I'd only note that "it would work" and "the base64 is an annoyance," in your own words, are on the record as the case for the alternative. Whether it's revisited is the WG's call.

Regards,
Vittorio

_______________________________________________
Ietf-dkim mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to