Re: [spfbis] Last Call: <draft-ietf-spfbis-4408bis-19.txt> (Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1) to Proposed Standard

Scott Kitterman <scott@kitterman.com> Wed, 21 August 2013 20:53 UTC

Return-Path: <scott@kitterman.com>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6986C11E810F for <ietf@ietfa.amsl.com>; Wed, 21 Aug 2013 13:53:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.563
X-Spam-Level:
X-Spam-Status: No, score=-2.563 tagged_above=-999 required=5 tests=[AWL=0.036, BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Nc65GtkvFOFK for <ietf@ietfa.amsl.com>; Wed, 21 Aug 2013 13:53:06 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id A9F9011E8124 for <ietf@ietf.org>; Wed, 21 Aug 2013 13:53:03 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 1150A20E40FD; Wed, 21 Aug 2013 16:53:00 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1377118380; bh=aM8Fl9QpD3kAVNIXzm0XCRakLND2U1TOPjqvfUPh1s0=; h=From:To:Subject:Date:In-Reply-To:References:From; b=KlpIinMN0xYijINp6dSW2rno64L5KwwaJ79tS25Q3ikdYZ/VswqpQ75L93kFOdpTh s8HeUbYwXZ1AG0yfI8VUfr1wFS+FecbKmvHbmTEG87bv8afDeMSZpXE5Ioz3yjO83T bWlbwLIhbNjWjR6HIbBHR8AGYD7m/xI29Om/lDMY=
Received: from scott-latitude-e6320.localnet (static-72-81-252-21.bltmmd.fios.verizon.net [72.81.252.21]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mailout02.controlledmail.com (Postfix) with ESMTPSA id EA6C720E40C2; Wed, 21 Aug 2013 16:52:59 -0400 (EDT)
From: Scott Kitterman <scott@kitterman.com>
To: ietf@ietf.org
Subject: Re: [spfbis] Last Call: <draft-ietf-spfbis-4408bis-19.txt> (Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1) to Proposed Standard
Date: Wed, 21 Aug 2013 16:52:59 -0400
Message-ID: <1978913.hEkO1ZYpDI@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-29-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <20130821200537.GH30516@besserwisser.org>
References: <20130819131916.22579.36328.idtracker@ietfa.amsl.com> <13637683.gDTVOaM8nE@scott-latitude-e6320> <20130821200537.GH30516@besserwisser.org>
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="iso-8859-1"
X-AV-Checked: ClamAV using ClamSMTP
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ietf>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 21 Aug 2013 20:53:12 -0000

On Wednesday, August 21, 2013 22:05:37 Måns Nilsson wrote:
> Subject: Re: [spfbis] Last Call: <draft-ietf-spfbis-4408bis-19.txt> (Sender
> Policy?Framework (SPF) for Authorizing Use of Domains in Email, Version 1)
> to Proposed Standard Date: Wed, Aug 21, 2013 at 08:51:31AM -0400 Quoting
> Scott Kitterman (scott@kitterma
> > > Apparently.
> > 
> > Translated:
> > 
> > RFC 4408 was in error because it didn't abandon it's installed base.  I
> > gather this is an error you propose to rectify.
> 
> Well, almost. 4408 sort of blunders about like the elephant in a china
> shop wrt. query method and depreciation.
> 	(As I have been sternly lectured off-list that I do not understand
> 	the SPF payload and therefore am in no position to discuss the
> 	DNS usage, I'd like to assert that the payload syntax matters
> 	marginally, if at all, for the discussion about which DNS records
> 	to use and how.)
> 
> Specifically, 4408 section 3.1.1 should be updated to:
> 
> * A domain SHOULD use SPF and MAY use TXT. The latter is only suitable if
>   SPF is impossible to publish.

This is the point where you abandon the installed base.  Particularly given 
the charter, I think this is an inappropriate approach.

> * If it is possible to use SPF as a result of having modern provisioning
>   systems, SPF MUST be used and consequently, TXT SHOULD NOT be used. (I'd
>   like MUST here, but I'm not certain it flies.) If SPF and TXT coexist,
>   they MUST agree wrt content.

draft-schlitt-spf-classic-02, which became RFC 4408, had this MUST when it was 
approved by the IESG.  Since at the time of IESG approval, the RRTYPE for SPF 
hadn't been allocated yet, they - by necessity - approved a paper design.  
Fortunately the RRTYPE was allocated sufficiently before AUTH48 that we were 
able to experiment with running code and determine that this MUST was 
operationally extremely problematic, so it was removed as part of the AUTH 48 
review.

> * The notion of a sunset date as introduced by Mark Andrews, is interesting.
> 
> Section 4.1.1 in 4408 should be altered to direct implementations to
> FIRST look for SPF and then _perhaps_ (I'm open for discussion) ask for
> TXT, thus creating an incentive to improve performance by serving SPF
> rather than TXT. After a possible sunset, TXT MUST NOT be queried for.

The performance implications are more generally constraining on the receive 
side in high volume mail systems.  Adding a second set of sequential DNS 
queries is a non-starter.  It's much more efficient to go straight to TXT where 
99%+ of the time I'll get a correct answer [there are a minute number of 
domains that publish SPF only, but virtually all type SPF publishers also 
publish TXT].  I think you're putting the performance implications on the 
wrong end of the conversation.

Let's say we get to this magical sunset date, whose behavior do you think it 
will influence if they are finding the TXT queries still useful (if they aren't, 
they won't do it and you don't need the sunset date)?

> The preference for SPF vs TXT that is present in 4408 is to be kept
> unaltered.

Here's a related conundrum that I haven't seen operationally (due to limited 
RRTYPE SPF deployment, but I have seen similarly for real in the fallback to 
v=spf1 records in the SenderID RFCs).  It's an example of why you can't ignore 
the payload.  One of the widely used features of SPF is the "include" 
mechanism.  It allows a sender to authorize the hosts of a third party to send 
mail on its behalf.  It also allows SPF records to be chained together to 
publish more information while staying in the standard UDP packet limit.  
Here's an example for the latter from Microsoft's current SPF record:

v=spf1 include:_spf-a.microsoft.com include:_spf-b.microsoft.com ...

A key aspect of "include" is that the targe domain MUST have an SPF record.  
If it doesn't, it's a "permerror" - permanent error.  Let's imagine for a 
moment that example.com has this record published in RRTYPE SPF:

v=spf1 a include:example.org -all

Then let's consider example.org and imagine that, like most SPF participants 
today, they have their record published in RRTYPE TXT only:

v=spf1 a -all

A receiver, as you suggest, checks RRTYPE SPF when they get mail from 
example.com.  Their SPF verifier processes the "include" mechanism and 
determines it needs to do a lookup for example.org's SPF record.  They query 
RRTYPE SPF and they get ANSWER: 0 in return.  Should this verifier:

1.  Return a "permerror" because the target domain of an "include" doesn't 
exist?

2.  Press on and query RRTYPE TXT, get an SPF record back, and finish the 
transaction without error?

RFC 4408 doesn't help us here because it's treatment of the TXT/SPF 
coexistence model is not complete.  

I have said before that I don't think an effective transition model exists nor 
can it be created.  I think Olafur Gudmundsson's suggestion that 4408bis 
document this use of TXT as an architectural wart and move on is a good one.

I think this is a symptom of the larger problem that most initial development 
work in this space is done outside the IETF and only brought to the IETF when 
it's reasonably well baked.  This is true for SPF, DK -> DKIM, and DMARC, all 
of which use TXT.  I would encourage those who want this to be different in the 
future to make contact with the people involved in DMARC (I wasn't) and ask 
them what it would have taken to get them to consider a new RRTYPE in their 
design.  Whatever those barriers are, that's what needs to be addressed.  
Focusing to trying to "fix" SPF shouldn't be the priority.  It is what it is.

Scott K