RE: The open relay problem.

"Seth Goodman" <[email protected]>
Newsgroups gmane.mail.spam.srs.general
Message-ID <[email protected]>
> From: Seth Goodman
> Sent: Friday, April 02, 2004 12:23 AM
>

Responding to and correcting my previous post.

>
> > From: Neil Brown
> > Sent: Wednesday, March 31, 2004 7:07 PM
> >
> >
> >
> > Hi,
> >
> >  I've been thinking a lot about the "universal-SRS" idea and am
> >  definitely warming to it.
>
> Glad to hear it.  You're definitely not alone.  Meng previously suggested
> that we call this scheme "Signed Envelope Sender" (SES) to distinguish it
> from SRS, so I will refer to it that way from now on.
>
> >
> >  However I just noticed something else that it could break.
> >
> >  Suppose I have an address like [email protected] (which I do), and
> >  suppose I forward mail from there to [email protected] (which I
> >  also do).
> >
> >  Now suppose I chose to send mail so that it appeared to be "From"
> >  [email protected] (which I do very occasionally), and suppose that I
> >  sent this through an MTA which is authorised for "brown.name" in what
> >  ever way is appropriate (e.g. SPF) (which I don't think I can for
> >  brown.name, but I definitely can for some other forwarders),
> >
> >  And suppose that this mail I send results in a DSN that I really want
> >  to see.
> >  It will get to the authorised MTA address for [email protected]
> >  (possible wrapped up in SRS if the MTA does that) and the MTA will
> >  forward it to [email protected].  But obviously that MTA cannot
> >  wrap the to address in an SRS that we will accept, so my (cse) MTA
> >  will get Mail From:<>, Rcpt to:<[email protected]> and my MTA
> >  might feel inclined to reject it. Which I would rather it didn't.
>

<...>

> If a DSN comes back to either of these addresses, the address will be
> unwrapped and DSN delivered to the mailbox for [email protected] as
> the final
> destination.  The DSN is now a regular message in that mailbox and is no
> different than any other message.  Since this is a forwarding account, the
> DSN will be forwarded as a regular message, not as a null-sender DSN, back
> to your university account.  Using SES in this case does not
> break anything.

Neil and David are right and the explanation I gave above is rather
brain-dead.  I appreciate David pointing out my error.  I must remind
myself:  engage brain before typing.  The .forward file prevents the message
from being delivered to the mailbox and causes it to be passed on intact.
The bounce will be forwarded with MAIL FROM:<>, and since it has an unsigned
RCPT TO: address, it will be rejected at the SES host, just as Neil pointed
out.

Neil and David each proposed a solution, and the two are nearly identical.
Neil proposed a special signed reverse address format that included a hash
to be used from forwarding accounts.  This is an extremely clever way to
avoid any administration, once the mechanism is set up to generate the
addresses.  David proposed a specific, secret address at the SES host at
which SES checking will not occur.  They are functionally very similar.
Both act as whitelisted addresses for which SES checking will not be done,
but there is a slight difference.

In David's case, if the address were ever to be released or discovered, he
can just change it.  In Neil's case, the address remains good until you
change the hash secret.  Because of that, it would be best in Neil's
implementation to use a per user secret rather than a single hash secret for
the whole domain.  The easiest way to implement a per user secret is to
simply use each user's password as their hash secret.  That way, if a
whitelisted address does get discovered, all the user has to do is change
his password and the old whitelisted address will no longer work.  It also
affects only that user.  It remains a low administration solution.

SES works best, in general, if each user has their own hash secret.  When a
recipient does a CBV to verify the return-path and the hash secret is
different for each user, a valid hash verifies the user as well as the
domain.  That is something that SPF cannot currently do and it is valuable.

At first, it seems like a whitelisted address is a potential conduit for
spam.  In fact, it just allows you to receive the mail in whatever form it
is from another account.  It doesn't make anything better or worse.  SES can
only protect a host when that host signs all outgoing messages.  If the host
doesn't do this, it is vulnerable to bounce spam.  Once the host accepts a
message, the game is essentially over, just like with SPF.  Forwarding it to
another host cannot make it better nor does it make it worse.  If you have
an account that is not protected by SES, SPF or other forgery prevention
methods and you are going to accept the mail in that mailbox, it doesn't
matter if you pick up the mail directly or forward it to a whitelisted
address on another host.  The contents of the mailbox are the same either
way.

On the other hand, if the forwarding host does SES, it is protected from
bounce spam and forwarding from that account presents no problem, as the
account has the same properties as the host you are forwarding to.  Again,
the act of forwarding does not change the forgery detection properties of a
host.  It either does SES, SPF and/or other tests or it doesn't.

The longer example I gave is still correct, I believe, because the traffic
originated from a host that was SES protected.  That example just showed
that SES can run with or without SPF+SRS and it does not interfere with
their operation.

--

Seth Goodman
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.