On Wed, Aug 18, 2004 at 01:20:23PM -0700, [EMAIL PROTECTED] wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> David F. Skoll wrote:
> > On Wed, 18 Aug 2004 [EMAIL PROTECTED] wrote:
> >
> >> Ehhh... DomainKeys can be trivially saved from this trivial defeat.
> >> Just have the sending MTA create separate envelopes for each
> >> recipient. Then add an X-Envelope-To: header. Finally have the MTA
> >> sign each envelope independently before delivery. The
> >> X-Envelope-To: header will be part of the digest.
> >
> >> On the receiving side, any RCPT TO: <> X-Envelope-To: invalidates the
> >> DomainKey check.
> >
> > This then breaks forwarding, one of the advantages of DomainKeys over
> > SPF.
>
> How so? Email forwarding works, so long as the forwarding agent (say,
> forwarder.example.com) signs the forwarded email with their DomainKey.
> Then the ultimate recipient (or the next server in the line, to be accurate)
> will be sure that the email came from forwarder.example.com.
So it breaks (plain old) forwarding. To sign the mail,
forwarder.example.com will have to change the sender address too. Which
will result in nasty bounce loops if you're not careful.
FYI- any protocol that does not break forwarding is susceptible to
replay attacks, it's quite easy to prove that (just imagine a forwarding
address that happens to forward to `cat /mnt/cd/millions.of.emails.txt`),
so I think breaking plain old forwarding is a feature :) but then what's
domain keys but a complicated (and less powerful, and less mature)
version of SPF?
> It's up to forwarder.example.com to verify that the email really came from
> originalsender.example.com - and find a way to pass that verification result
> on to ultimaterecipient.example.com. I suggest a X-DomainKey-Result: Pass
> header as a tool for this.
Why should I trust that header? The fact that it was digitally signed by
some "forwarder" doesn't really say much for the validity of the data :)
--
#!perl -wpl # mmfppfmpmmpp mmpffm <[EMAIL PROTECTED]>
$p=3-2*/[^\W\dmpf_]/i;s.[a-z]{$p}.vec($f=join('',$p-1?chr(sub{$_[0]*9+$_[1]*3+
$_[2]}->(map{/p|f/i+/f/i}split//,$&)+97):qw(m p f)[map{((ord$&)%32-1)/$_%3}(9,
3,1)]),5,1)='`'lt$&;$f.eig; # Jan-Pieter Cornet
_______________________________________________
Visit http://www.mimedefang.org and http://www.canit.ca
MIMEDefang mailing list
[EMAIL PROTECTED]
http://lists.roaringpenguin.com/mailman/listinfo/mimedefang