Mailing List Archive

Issue tracker for 4408bis
In <200609191405.35624.julian@mehnle.net> Julian Mehnle <julian@mehnle.net> writes:

>
> So, I think we should set up an issue tracker for the specification ASAP so
> we don't make the same problems in 4408bis or SPFv3. Comments?


Yes, creating a list of known issues with SPFv1 that we would like to
see fixed in SPFng would be a good idea.


Along with this issue, I can think of a few more that I really would
like to see changed:


* macro expansions that create DNS labels that are longer than 63
characters should be truncated to 63 characters. Right now, they
trigger DNS errors and result in a TempError. An error that
actually isn't temporary. The spammer controls the localpart of an
email address and put stuff into it that they know will generate
this error. While generating a TempError isn't really a
security problem, it does prevent a domain owner from having their
SPF record completely evaluated.

* Similarly, creating empty lables due to marco expansion, especially
with the split char stuff, should remove the empty labels.

* I would be very tempted to get rid of the split characters entirely
and replace them with a default set. I seem to recall from my SPF
record surveys that they are almost never used, with the exception
of pobox.com and a few others. Unlike unknown mechanisms, I could
find a few cases of legitimate use, so I couldn't argue for
eliminating them from RFC4408.

* Get rid of the distinctionn between ip4: ip6: and a:. This is a
common source of errors when people construct SPF records and they
can all be unambigous distinguished. This is one case were
Caller-ID got it right, Microsoft used one XML tag for both A and
IP4. Strangly, MS used a seperate tag when a CIDR notation was
needed, which SPF got right.

* rename include: to something like if-pass. It is *really* badly
named right now and causes a lot of confusion.


Stuff I feel less certain about:


* redirect= used to be a mechanism, and was changed to a modifier. I
think it might be best to converted it back to being a mechanism.
Then, no modifiers would ever change the SPF result. In libspf2, I
accepted both redirect: and redirect=. If redirect: had a prefix
(+, -, ?), it would be used as the default result if the target
didn't exist. I could also see the prefix being ignored or having a
special case of redirect: being one mechanism that doesn't have a
prefix.

* maybe create a call: mechanism that works like you would expect
include: to work: It would return the SPF result of whatever the
other record was, and only not match if there wasn't a -all or
something on the end. The prefix to the call: mechanism would have
to be made consistent with whatever we decide for redirect.

* There should be ways of specifing older versions or other scopes. I
think these can both be handled unambigiously by putting /<version>
or /<scope> tags on the end of the include:, redirect= and, if we
add it, call:.

E.g. "v=spf7 a:bonzo.org redirect=%{d}/spf1" would create an SPFv7
policy that would be the same as the SPFv1 policy, with the
exception of an additional check for bonzo.org. Similarly, you
could have "v=spf7/mfrom a:bonzo.org redirect=%{d}/helo" and the
SPFv7 mfrom policy would be almost the same as the SPFv7 HELO
policy.


Ok, that said, I really don't think we should do anything serious with
SPFng until the IETF allows us to create a WG that can put SPFng on
the standard track. That is, about 1.5 years from now. Collecting
ideas is a good idea though.



-wayne

-------
To unsubscribe, change your address, or temporarily deactivate your subscription,
please go to http://v2.listbox.com/member/?listname=spf-devel@v2.listbox.com
Re: Issue tracker for 4408bis [ In reply to ]
In <x41wq7x65w.fsf_-_@footbone.schlitt.net> wayne <wayne@schlitt.net> writes:

> In <200609191405.35624.julian@mehnle.net> Julian Mehnle <julian@mehnle.net> writes:
>
>>
>> So, I think we should set up an issue tracker for the specification ASAP so
>> we don't make the same problems in 4408bis or SPFv3. Comments?
>
> Stuff I feel less certain about:


* get rid of ptr: (mentioned by Julian, and I can see reasons for
it.)

* Right now, ptr: isn't as useful as it could be. The pseduo-code for
ptr: is:

for each name in (validated-sending-domain_names) {
if name ends in <domain-spec>, return match.
if name is <domain-spec>, return match.
}
return no-match.

Google reports that if you also add a check for <domain-spec> ends
in name, you get a lot higher hit rate for their best-guess
checking. That is, it would be nice if ptr: was defined as:

for each name in (validated-sending-domain_names) {
if name ends in <domain-spec>, return match.
if <domain-spec> ends in name, return match.
if name is <domain-spec>, return match.
}
return no-match.

The security ramifications would have to be thought through, but I
don't see any off hand. We validate the domain names found in the
PTR records, so both the domain owner and the network provider have
to agree with the ip-address <-> domain-name connection.

* figure out a good way of creating default SPF records. Neither the
"zone cut" nor any sort of tree walking is well liked by significant
numbers of people. Since we are working on a new version, we don't
have to worry about backward compatibility issues though.


-wayne

-------
To unsubscribe, change your address, or temporarily deactivate your subscription,
please go to http://v2.listbox.com/member/?listname=spf-devel@v2.listbox.com
Re: Issue tracker for 4408bis [ In reply to ]
wayne wrote:

> While generating a TempError isn't really a security problem,
> it does prevent a domain owner from having their SPF record
> completely evaluated.

Bad enough. A more radical approach would be "drop %l", it's
unnecesary, and potentially it causes headaches with UTF8SMTP.

> I would be very tempted to get rid of the split characters
> entirely and replace them with a default set.

Without %l they'd be unnecessary. The %l is a cute idea, but
apparently all it did in in reality was to invalidate the pobox
policy.

> Get rid of the distinctionn between ip4: ip6: and a:.

Post ABNF, domain literals without square brackets are tricky.

> rename include: to something like if-pass. It is *really*
> badly named right now and causes a lot of confusion.

I'd opt to keep it as is, for historical reasons. Of course
the name is bad, but admitting that in the prose is enough.

> Stuff I feel less certain about:

> redirect= used to be a mechanism, and was changed to a
> modifier. I think it might be best to converted it back to
> being a mechanism.

> Then, no modifiers would ever change the SPF result.

What else are modifiers supposed to modify ? Out of curiosity
while talking about "bad names".

> In libspf2, I accepted both redirect: and redirect=. If
> redirect: had a prefix (+, -, ?), it would be used as the
> default result if the target didn't exist.

With that approach you can integrate 'redirect=' into 'all:'.

> maybe create a call: mechanism that works like you would
> expect include: to work:

Who needs that ? Simplification is fine, adding new tricks
is not, unless it has a clear advantage for many receivers.

> There should be ways of specifing older versions or other
> scopes.

My bogon detector found the word "scope" on an SPF list.

> E.g. "v=spf7 a:bonzo.org redirect=%{d}/spf1"

Folks hating SPF because it's way too complex won't buy this.

> you could have "v=spf7/mfrom a:bonzo.org redirect=%{d}/helo"

Nobody ever wanted op=helo or op=nohelo, no reason to invent
more complex tricks for such effects. All it takes for stuff
like "helo-policies" or "per-user-policies" is a subdomain, so
why reinvent the wheel ?

> that said, I really don't think we should do anything serious
> with SPFng until the IETF allows us to create a WG that can
> put SPFng on the standard track.

I doubt that "they" will give us a WG for SPF, for starters
"we" don't have the presence at IETF meetings for a BoF. But
"we" could create a 2821bis draft (or a part of it), "we" can
fix 4409 8.1 and then push it to STD, "we" can specify how to
use SPF if all you're interested in is an ersatz-CSV, "we" can
submit SPF interop reports based on the test suite when it's
finished, and "we" can propose a standard without WG. When
that turns out to be too hot in a last call "they" might even
decide that a WG is better to work it out.

> That is, about 1.5 years from now.

We're free to submit drafts and ask for publication whenever
it pleases us. The opinion of the 2005-IESG is not binding
for "us", and "we" certainly made it clear that "we" disagree.

> Collecting ideas is a good idea though.

ACK

Frank


-------
To unsubscribe, change your address, or temporarily deactivate your subscription,
please go to http://v2.listbox.com/member/?listname=spf-devel@v2.listbox.com
Re: Re: Issue tracker for 4408bis [ In reply to ]
Frank Ellermann wrote:
> wayne wrote:
>
>> While generating a TempError isn't really a security problem,
>> it does prevent a domain owner from having their SPF record
>> completely evaluated.
>
> Bad enough. A more radical approach would be "drop %l", it's
> unnecesary, and potentially it causes headaches with UTF8SMTP.
>
>> I would be very tempted to get rid of the split characters
>> entirely and replace them with a default set.
>
> Without %l they'd be unnecessary. The %l is a cute idea, but
> apparently all it did in in reality was to invalidate the pobox
> policy.
>

I use the %l and split characters and find them to be very effective.
Essentially it allows me to prevent spammers from forging
randomname@mydomain.com as the sender. I have found that this check is
*far* more effective than the IP address check as there are still lots
of forwarders out there that do not do the header rewriting in an SPF
friendly way.

I admit that I have a 'trick' dns that accesses my user database to
validate the %l, so it is not for everyone.

Philip

-------
To unsubscribe, change your address, or temporarily deactivate your subscription,
please go to http://v2.listbox.com/member/?listname=spf-devel@v2.listbox.com
Re: Re: Issue tracker for 4408bis [ In reply to ]
On Tue, 19 Sep 2006, Philip Gladstone wrote:

> > Without %l they'd be unnecessary. The %l is a cute idea, but
> > apparently all it did in in reality was to invalidate the pobox
> > policy.
> >
>
> I use the %l and split characters and find them to be very effective.
> Essentially it allows me to prevent spammers from forging
> randomname@mydomain.com as the sender. I have found that this check is
> *far* more effective than the IP address check as there are still lots
> of forwarders out there that do not do the header rewriting in an SPF
> friendly way.
>
> I admit that I have a 'trick' dns that accesses my user database to
> validate the %l, so it is not for everyone.

The %l is also essential for using SPF policies to evaluate SES
(or other) signatures in the local part at the senders server.
(Again using a trick dns.)

--
Stuart D. Gathman <stuart@bmsi.com>
Business Management Systems Inc. Phone: 703 591-0911 Fax: 703 591-6154
"Confutatis maledictis, flammis acribus addictis" - background song for
a Microsoft sponsored "Where do you want to go from here?" commercial.

-------
To unsubscribe, change your address, or temporarily deactivate your subscription,
please go to http://v2.listbox.com/member/?listname=spf-devel@v2.listbox.com
Re: Issue tracker for 4408bis [ In reply to ]
Stuart D. Gathman wrote:

> On Tue, 19 Sep 2006, Philip Gladstone wrote:

>> I admit that I have a 'trick' dns that accesses my user
>> database to validate the %l, so it is not for everyone.

> The %l is also essential for using SPF policies to evaluate
> SES (or other) signatures in the local part at the senders
> server. (Again using a trick dns.)

Okay, then the real %l "issue" is "watch what the UTF8SMTP
folks do" (and admittedly I forgot SES or similar schemes :-)

Frank


-------
To unsubscribe, change your address, or temporarily deactivate your subscription,
please go to http://v2.listbox.com/member/?listname=spf-devel@v2.listbox.com