|
SPF is merely one component in a balanced anti-spam
strategy. It may help some; it may hurt others. SPF tries
to break as few eggs as it can by providing a range of
conformance levels. Many people believe that SPF is a
strong solution because it helps many while hurting few.
The first objection that comes to mind for most tech-savvy
users is this:
(From John Levine:)
The social problem with designated sender is that there are plenty of
perfectly legitimate reasons for mail from a domain to originate someplace
other than its home network. Lots of people maintain accounts at Yahoo or
other free mail providers, but send mail with their Yahoo address from
their home ISP using the ISP's mail server.
SPF solves the problem by allowing ISPs to make
exceptions on a per-user basis using the Exists mechanism.
ISPs can solve the problem by offering SASL. Users can
log in to the home mail server even when they're travelling.
All modern MUAs support SASL authentication, and all
up-to-date ISPs support it on the server end.
Cybercafes, hotels, and free wireless access points don't
want to allow users to send out SMTP to port 25 directly,
because they don't want the liability issues. So they block
port 25, or run transparent proxies. But ISPs should
support MSA on port 587 as well as port 25 for outgoing
authenticated mail (as per RFC2476); this solves the
problem. Moreover as SPF becomes more widely adopted, the
need for blocking port 25 should go down.
This is the single
biggest challenge for SPF; it requires the most work.
(From John Levine:) Many others use forwarding
services such as pobox.com, which would all be unable to function with
designated sender, since mail forwarded by such services correctly retains
the original sender's address, not the forwarding service's.
The envelope sender address is also commonly referred to
as a return-path: if the mail is undeliverable, it's
returned to the envelope sender address. So there are
actually two issues here.
First, if customers really want to use their Pobox
address in their envelope "from", they will have to send it
through Pobox. Will users do this? Yes. Will Pobox let
them? Yes. Customers are welcome to send mail through our
authenticated sasl.smtp.pobox.com server.
ISPs who set up this kind of architecture will be
responsible for rate-limiting outbound mail to ensure their
customers aren't inadvertently sending spam. All ISPs
should be doing this by now anyway.
Second, to handle bounces, I propose a rewriting scheme as follows:
joe@aol.com -> meng@pobox.com -> mengwong@seas.upenn.edu
joe@aol.com -> meng@pobox.com
from = joe@aol.com
rcpt = meng@pobox.com
meng@pobox.com -> mengwong@seas.upenn.edu
from = bounce=joe#aol.com=meng@pobox.com
rcpt = meng@seas.upenn.edu
If seas.upenn.edu refuses the message, the bounce goes back to
pobox.com, which decodes the specially formatted localpart and
reinjects a bounce message to joe@aol.com for meng@pobox.com including
the original bounce as an attachment.
If the message is forwarded multiple times, the localpart can be
escaped and/or extended as necessary.
If there is a standard for bounce "layering", each layer of forwarding
adds one email address.
joe@aol.com -> meng1@pobox.com -> meng2@bigfoot.com -> meng3@myrealbox.com
from = bounce=joe#aol.com=meng1#pobox.com=meng2#bigfoot.com@bouncer.bigfoot.com
rcpt = meng@myrealbox.com
SRS is one such proposed standard.
It's interesting to note that this is a degenerate version of source routing which was deprecated years ago.
(From John Levine:) And finally, this won't
really block any significant amount of spam, since there
will always be some domains who out of political principle,
malice, or incompetence designate the entire Internet as
their valid sender ranges, and spammers can just use those.
Domains that refuse to publish SPF or publish
global-allow SPF out of political principle, malice, or
incompetence will simply have to accept the penalty of a
higher spam score. My fifty megs of spam a month outweighs
your one curmudgeonly tirade.
Domains who do this are the same domains who run open
relays. They have deliberately chosen to go against the
flow, and I can deliberately choose not to accept mail from
them. I respect toad.com
for taking a principled stand, and I hope they will publish
an SPF "allow" record for the same reason they're an open
relay.
Just because a thing has always been that way doesn't
mean it has any inherent merit. If SPF had been part of
SMTP and DNS from the very beginning, the position of these
conscientious objectors would suddenly just look like
sloth.
What do the customers want? They want to communicate
with their friends and family; and they want to not get
spam. They do not particularly care if a few eggs are
broken along the way.
(From John Levine:) Or spammers can register
throwaway domains of their own, since burning an $8 domain
for a 10 million message spam run isn't much of a deterrent.
Throwaway domains can be listed in sender blacklists
which respond in real time to automated discovery
methods.
SPF needs to work in hand with reputation schemes.
There are many possibilities. The reputation scheme most
familiar to people is the DNSBL, which blacklists IP
addresses. RHSBLs are the analogue for domain names. A
number of them are listed at the bottom of Blacklists
Compared.
% dnsip yahoo.com.spamdomains.blackholes.easynet.nl
% dnsip amazingoffersdirect.net.spamdomains.blackholes.easynet.nl
127.0.0.2
%
Greylisting is another approach. It is elegantly simple,
but it has three disadvantages.
- People don't like to have to wait for real mail. After a while your
users will say, "why is mail from my mom always getting delayed by an
hour?" and you'll have to whitelist all your users' moms.
- You need to do custom whitelisting for entire domains, because Yahoo
Groups does not respect transient failure errors --- it treats them
as permanent.
- It is trivial for spammers to get around greylisting, because
spammers don't actually queue messages; everything's just an entry in
a database. Spammers aren't stupid. They can just repeat the run.
Until they figure this out, greylisting will work.
Some suggest that reputation schemes would eventually be a
lot like credit rating agencies: they don't say "yes,
approve this loan"; instead they tell you what an
individual's credit risk is, and it's up to the bank to
decide.
Similarly a reputation service would provide a spam vs total ratio: (numbers are made up)
domain: yahoo.com
born: 199501
total: 4.3E12 messages
spam: 1.2E3 messages
ratio: 2.8E-10
domain: superspammer.net
born: 200303
total: 6.3E7 messages
spam: 3.4E7 messages
ratio: 0.53
Of course those numbers would have to be based on SPF-verified domains.
There would be three types of domains--- SPF, "best-guess-match", and
non-SPF publishers. "Best-guess-match" means the domain would have
passed SPF tests if it had declared "a mx ptr" mechanisms. But that's a
small detail.
Any major ISP could track these stats pretty easily and build their own
reputation system. Or non-ISP organizations like Cloudmark could too.
I expect The Internet will come up with a good, free one that's built
right into MTAs like Postfix and Sendmail.
The algo would work something like this:
If the sender domain is known to the reputation system, we can make the
decision based on local policy. (Local to the domain, or even to the
individual user.)
If we don't have a lot of data on the sender domain, (eg. maybe the
domain hasn't been around very long) we can do greylisting for the first
pass; if our reputation service has good response times, we can expect
it to have an answer ready the second time the sender tries. Or we can
accept the mail but content-filter it, then report the results to a
reputation system.
Obviously we need to introduce expiry and all that other stuff, but
that's the basic idea.
And it would become an accepted social standard that if your domain
hasn't been on the Internet very long, you wouldn't expect your mail to
get through to people right away.
There's lots of research going on in the reputation
systems space. It doesn't seem to be a fundamentally hard
problem.
This section provides a list of web pages that comment on or oppose SPF.
|