While I repeat that there is a surfeit of candidates at which to point
a finger in this case, we may not yet have gone deep enough. Let me be
the first to say that at least part of the problem here may be in the
MIME standard itself.
To the extent this is a problem in MIME itself, it is due to the fact that
multipart/signed and the rules for handling it aren't in the base
specification. This left the door open for perfectly valid implementations to
completely ignore the need to handle mutipart/signed with the care it deserves.
Like it or not, list processors are going to alter message content in
a variety of ways. You can debate whether or not this is "right" or
"legal" or "correct" or whatever all you wish and it will change exactly
The problem here is that a list processor has to make various choices when
processing content, and one of those choices should be how to balance the need
to alter content with the need to preserve signatures. An implementation that
is multipart/signed-aware can make that choice (although perhaps it won't make
it in the way you'd like), whereas one that treats multipart/signed as
multipart/mixed won't take the signature into consideration. And we allow
legitimate implementations to be multipart/signed-unaware. And worse still, it
is a much too late to change this rather basic bit of MIME. (I personally chalk
much of it up to a scheduling issue: The meetings where much of MIME's
structure was debated tended to conflict with the meetings on PEM, so a certain
corpus of security folk weren't present. Their presence wouldn't have led to
recognition of the value of multipart/signed - we spotted that fairly early on
- but might have led us to understand the need for this to be in the base
I will also point out that this sort of activity is closely related to gateway
handling of MIME objects, which I wrote an RFC about: RFC 2480.
And FWIW, when I've implemented this stuff I let the system administrator
select whether or not multipart/signed objects are handled.
Finally, as far as lines over the SMTP limit of 998 are concerned, I have
zero sympathy since it is technically illegal to send such a thing
in the first place, irrespective of the MIME constructs involved. Anyone
who expects overly long lines to be treated with fidelity is simply being
silly and deserves whatever happens.