Re: Problems with SPF, solutions, and a timeline.
Hadmut Danisch <[email protected]> Sat, 28 Feb 2004 17:29:10 +0100
| Newsgroups | gmane.ietf.asrg.smtpverify |
|---|---|
| Message-ID | <[email protected]> |
I don't see the point in and use of such a rewriting scheme
in context of smtp-verify.
What's that all about what we're doing here?
We are looking for any method to find and locate
a domain owner who takes over responsibility for that
particular mail and for it's sender.
It actually does not matter how exactly we try to figure out this
particular domain. All we need is to *locate* it in order to *query*
it. Introducing wild rewriting schemes does not make this job any
easier. On the contrary, it will break many existing mail
installations, because it's not compatible with plain MUAs.
Whatever way we choose for rewriting, labelling, tagging, ...
the Spammer can always have a throwaway domain and build the
mail exactly that way that it is authorized by that domain.
So which benefit do we have from indroducing weird rewriting schemes?
None. That's just marketing blah-blah. Nice web design for the
proposal, but where's the substantiation?
You don't even give a precise statement about the problem
you're trying to solve, and no explanation why this is needed.
So let's define the problem:
- If we receive a plain message directly, we can usually take
the sender's address for locating the domain which takes over
responsibility. Good. No problem here.
- If the message was forwarded, bounced, mailing-listed,...
the given sender address will not help us in locating the
domain taking responsibility. Bad. We need a different way
to locate. That's the problem we
need to solve.
There are three ways to give the information where to look for
authorization: In the HELO command, in the envelope or in the header.
The first way (HELO) has been discussed extensively.
The second way is to give it already in the envelope. But if you
agree to modify the envelope and rewrite the sender's address, then
what's the point in building such artifical addresses which actually
do not exist? What if a mail is forwarded five times? No size limit?
Sender address of 300 characters?
And what if the original sender's address is admin+web.
How would you parse admin+web+ann correctly? Is this
(admin+web)+ann or admin+(web+ann) ?
If you agree to rewrite the envelope sender, then simply use
the correct e-mail address of the responsible forwarder. Like
proposed in the RMX drafts.
The third way is to give the information in the header.
The best proposal so far to cope with this problem is Microsoft's
CallerID proposal. They're analyzing the header for different
entries to find the domain where to fetch authorization records
from. Nice work. But what do they actually do? It is simply digging
through the header and test whether any of the mentioned domains
is taking over responsibility.
The solution is much more simple. All these proposals, including
Microsoft's and SRS do one thing: Somewhere, *Anywhere* in the
mail header must the domain taking over resposibility be mentioned.
This has no real semantics, it is just to find any domain which's
authorization record covers the IP address where the mail was
sent from in the last transport step.
We don't need to confuse users and their MUAs to get this.
Keep it smart and simple.
If you don't want to rewrite the envelope, then all we need to do
this much more easier is to just add a header line like
RMX: somedomain.com
which can be used to locate the domain where to look for the
authorization record. Or you could even take the topmost
Received Entry to look for a host name (by...) which to use for
locating the domain with the authorization record covering the
SMTP IP address.
That's the problem to solve, after all. Isn't it?
If I am correct and the given security problem is to just locate
the domain which is willing to take over responsibility, then please
explain why we need to use such a complicated and error-prone
rewriting scheme, requiring changes in all MTAs.
If I am not correct and the problem is a different one, then please
state the problem you're trying to solve.
Writing perl modules and designing web pages is fun, but a precise
statement of the problem to solve and an explanation why to solve it
this way is more important.
Hadmut