When calling to have a wg adopt a draft, it is worth reviewing comments on that draft beforehand Apologies for not responding to this semi-official response to my unofficial review of the draft in January.

I will note that Allen's was the only response to my detailed review.  And it was only to my summary comments.

On the average, that speaks poorly both for group engagement and for advocate engagement.

So...


On 3/12/2025 7:51 AM, Allen Robinson wrote:

Thanks for the thorough review. There's quite a bit to reply to here, and I've done my best to group replies by common themes. I read through but did not reply to the protocol comments for now because I think it's more productive to come to consensus on the problems and how a new protocol could address them before debating what the protocol looks like.


> Replay is just a sender infrastructure problem


Replay is called out as a potential problem in the DKIM RFC, so it doesn't feel unreasonable to try to solve it in some way.

The mere fact of being mentioned does not say anything about the observation that DKIM replay happens because a platform has inadequate controls on vetting, monitoring, and/or controlling its own /authorized/ users.

Hence, creating a mechanism to be supported throughout the Internet, to deal with this problem, is a pretty classic case of externalizing a problem, and making everyone else pay for it.

I'm not saying let's not do it, but I AM saying we need to be clear about the actual source of the problem and, perhaps, consider ways to limit its requirements, where possible.



In an ideal world every system that generates mail could have complete certainty that every message sent through it is non-malicious. I don't think we live in a world that's anywhere close to this.

This seems to seek to dismiss the concern.  But the issue is not 'every' system.  The issue, in fact, is relatively few systems. The ones with a business model that acquires a great many, unveted users, resulting in their having no accountability.




> Feedback as a separate work item


Mentioning feedback mechanisms in passing in a DKIM2 overview document but leaving specification of who gets reports and what those reports contain to a separate document makes sense to me.

It is more than an overview document.

*But now that you raise it, it's worth wondering what it means for the wg to adopt it, given its apparently-multiple roles.*



> Backscatter/forging of origin


The "origin" in this context is the 821.From, and not the original author of the message.

How is the reader to know that?

While yes, the name of the command could lead to that interpretations, it's actual an error-returns message address -- same as upper left-hand corner on a postal envelope -- current pressure to force it to be the same as the *22.From notwithstanding.



Forging of the origin means using that identity in an unauthorized way. The proposal does intend on preventing one system from directing return traffic to another system, because that's what backscatter is.

Specifying an alternate address for error response is not 'forging'.

(There is a reason I keep referring to many of these assertions and the resulting conventions as Procrustean.  They reduce email flexibility and the reductions should be treated with concern, not the casual dismissal they usually get.)



The relationship between 821.From and 822.From does change a little bit under DKIM2.

DKIM has no relationship with 821.From.  None.  Zero.  Zilch.

DKIM has no relationship with 822.From, other than including it in the hash, with no semantic of that inclusion.  None. Zero. Zilch.



For originating systems, DKIM2 expects alignment (for now, proposing reuse of DMARC alignment definition) between 821.From, 822.From, and DKIM2 signature. For further hops, there is expected alignment between signature header and 821.From but no relationship to 822.From is required.

The requirement for alignment makes this new thing actually be a new DMARC.  Not obviously a new DKIM.


> Definition of forwarding


In the context of DKIM2, this is the act of accepting a message with some 821.To <http://821.to>address and resending it to some number of other 821.To <http://821.to>addresses, potentially after modifying the message.

Note that this is a very basic, very important definition and it was not in the document.

Generally, I think RFC5598 is friendly to that interpretation, but since that doc isn't being used and especially since people generally use that word very inconsistently, it should be formally defined or its definition formally cited.



This definition covers most MTAs, if I understand correctly.

In terms of Internet Mail architecture, an MTA does not do the function you described.

Lots of software providing MTA functions do that, of course, but they are doing more than an MTA function.

Networking architecture is not the same as software architecture.



Needing to change the 821.From in this case is certainly a large change for the ecosystem as a whole, but one that we feel provides sufficient value to justify the cost.

Please explain, in a cost-benefit manner.

Making major changes to a global infrastructure should warrant some careful due-diligence.



I think an argument could be made that this definition doesn't apply to all relays.

bingo.



Systems that don't need to change 821.From or 821.To and don't modify the message being transferred would probably be able to operate without attaching their own signatures.

So, actual MTAs do not need changing.



> Why declare the next destination?


It is believed that this will mitigate the valuable aspect of malicious DKIM replay, which is delivery of a single authenticated message to many different recipients. DKIM2 does not mitigate repeated delivery to the same address, but the value of doing this maliciously is pretty low, between a desire to cast a wide net with whatever bad content is being sent and the likelihood of deduplication on the recipient meaning that at most one copy makes it to the recipient anyway.

This line of thinking confuses me.

If the originator does a DKIM signature that covers author and recipient -- and, really, only recipient is important to the classic Replay problem, and if the receiver has access to the 'current' RCT-TO address, to feed into its calculation of the DKIM signature, then why is anything else needed?



> Why do DSNs go to the previous hop instead of the originator?


DSNs should already follow the return path, so I don't think that changes under DKIM2. What DKIM2 proposes to change is that the return path must mirror the forward path. For example, if a message went through A->B->C, system B would not be allowed to reuse A's 821.From to make the return path be C->A.

If I recall, the document had some basic justification for this requirement, having to do with backscatter, not Replay.  But it is, really, a massive infrastructure change.

/**** I think it also is a change to RFC5321, not to DKIM. ****/



> Intermediary trust when modifications can't be recorded


The intent here is to support things like security gateways.

That term sounds interesting.  I have no idea what it refers to, though I could invent a number of plausible guesses.

If an infrastructure change is being proposed 'to support' something that does not have a common definition, it might be wise to provide a definition, get widespread support for it, get agreement that it needs supporting, and get agreement that this mechanism is the bast -- most effective, least impactful -- method of supporting it.



A common feature for these products is filtering out content, and recording the removed content somewhat defeats the purpose of removing it.


This can be broken down further into inbound and outbound cases. For inbound, whatever system the gateway is passing the mail to would probably need to implicitly trust the gateway. For outbound, recipients can't be expected to trust the gateway, so the gateway needs to be able to (re)sign as if the content being sent was unmodified.


There's quite a bit of unknown complexity around further forwarding of mail modified by these gateways. This may end up needing to treat the forwarded message as if the forwarding domain originated it, requiring a new DKIM2 chain and potentially a rewrite of the 822.From address.

Without commenting further on the specific, additional details you've provided I will note that this seems like an issue likely best factored out of basic mail handling is, possibly layered on top of it.

For use among the network of 'security gateways' that need it. Without bother the rest of the infrastructure.

Just a thought.



> Specifying a list of headers


In my opinion this is an opportunistic attempt to simplify the common case, while still allowing expansion of the signed headers list via the h= tag. I don't think it's a critical feature because, as you point out, a minimum list could be mandated without requiring DKIM2's h= tag to have a different meaning than DKIM's h= tag.

Developing a set of common header fields to sign might be fine, but it is an operational convention in the realm of BCP, not a protocol revision. Unless it violates the current DKIM spec, which I believe it does not.



> Sender-suggested uniqueness idea


I agree that this seems less than useful on the surface, and needs some very strong supporting evidence if it is going to be added.


I'm reasonably confident that the senders that think they want this will quickly realize that they don't, and we will have built it out for no reason. I'm guessing that senders asking about this are actually worried about addressing replay-like attacks, which DKIM2 already addresses.

It's been awhile.  Any evidence of this change, so far?



> Sync vs async (delayed) bounces


There's a pretty big difference between rejecting a message in the SMTP transaction, and accepting the message but later deciding it is undeliverable. Notably, backscatter is impossible for synchronous rejection since the recipient of the rejection is the other end of the socket and can never be some unrelated system.

I suspect the problem with your model this comment is derived from is that it is one-hop, rather than multi-hop.

Not all email is one-hop across the open Internet.

No matter how much Procrustes wants to believe otherwise.

However the sync/async terminology is not helpful.  Call if rejection during-vs-after an SMTP session.



DKIM2's addition of authentication for the return path makes asynchronous bounce handling more resilient against backscatter.

There is some experience with authentication chains, such as for DNSSec.  I seem to recall some challenges...



> Improved privacy for forwarders


I think you've accurately interpreted the goal. The 821.From used by the mailing list service to send messages to subscriber addresses should not be the 821.From of the SMTP transaction that submitted the message to the mailing list. Bounces would (and already should) go to whatever 821.From the mailing list used for sending out the message.

As with you, I think it is already a convention.  After all, the mailing list is posting a new message, so creating a new error return address has always been a good idea.

Making a BCP that makes it normative doesn't require a change to DKIM.  (It isn't really DKIM-related, anyhow, is it?)



> DMARC breakage in mailing lists


You refer to existing mitigations. What mitigations are these?

ARC.

And, somewhat more interesting: Having mailing lists just bypass DMARC protections by changing the *22.From address.  (This, of course, does nothing about the Display-Name, there, which is what recipients see -- and they usually do not see the address.  And it does nothing about the phishyness of the Body, which is where the actual danger lies.)



d/

--
Dave Crocker

Brandenburg InternetWorking
bbiw.net
bluesky: @dcrocker.bsky.social
mast: @dcrocker@mastodon.social
_______________________________________________
Ietf-dkim mailing list -- ietf-dkim@ietf.org
To unsubscribe send an email to ietf-dkim-le...@ietf.org

Reply via email to