Re: [spfbis] #12: RFC 4408 Section 9 - Forwarding and helo identities

Scott Kitterman <spf2@kitterman.com> Tue, 13 March 2012 18:22 UTC

Return-Path: <spf2@kitterman.com>
X-Original-To: spfbis@ietfa.amsl.com
Delivered-To: spfbis@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C12C521E804E for <spfbis@ietfa.amsl.com>; Tue, 13 Mar 2012 11:22:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.597
X-Spam-Level:
X-Spam-Status: No, score=-2.597 tagged_above=-999 required=5 tests=[AWL=0.002, 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 kBO22zO9DBwF for <spfbis@ietfa.amsl.com>; Tue, 13 Mar 2012 11:22:55 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id BD08621E8018 for <spfbis@ietf.org>; Tue, 13 Mar 2012 11:22:55 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id BFEFE20E40BD; Tue, 13 Mar 2012 14:22:54 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1331662974; bh=9XFtm1XUwG0RW0/z2OtzEQ59aat1BPYDJ4607zYPvt4=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Transfer-Encoding:Content-Type; b=KqdFrotlwOAWaNym6CyLM87jiI3stpplQp+OD8q0U8ghFb6pAX9bcFF4eswyIQK5T pmkTIkWMtSEEPO9ukMPSdwqJaIJI6YXCa70xqWNrvBWAPKBlSXVpEbwFLQ/VyXEDfz YDDY0xSAkiTsR6RDxvHSuF+XsW9BrLInqLnNMvNQ=
Received: from scott-latitude-e6320.localnet (static-72-81-252-21.bltmmd.fios.verizon.net [72.81.252.21]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mailout02.controlledmail.com (Postfix) with ESMTPSA id A15B020E4064; Tue, 13 Mar 2012 14:22:54 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Tue, 13 Mar 2012 14:22:54 -0400
Message-ID: <2372065.C4Li7o8hMb@scott-latitude-e6320>
User-Agent: KMail/4.7.3 (Linux/3.0.0-16-generic-pae; KDE/4.7.4; i686; ; )
In-Reply-To: <6.2.5.6.2.20120313012810.0a31fe60@elandnews.com>
References: <061.3e36e3983d163f02c3a839aa54c4e2b3@tools.ietf.org> <6.2.5.6.2.20120313012810.0a31fe60@elandnews.com>
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="iso-8859-1"
X-AV-Checked: ClamAV using ClamSMTP
Subject: Re: [spfbis] #12: RFC 4408 Section 9 - Forwarding and helo identities
X-BeenThere: spfbis@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: SPFbis discussion list <spfbis.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spfbis>, <mailto:spfbis-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/spfbis>
List-Post: <mailto:spfbis@ietf.org>
List-Help: <mailto:spfbis-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spfbis>, <mailto:spfbis-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 13 Mar 2012 18:22:57 -0000

On Tuesday, March 13, 2012 01:30:21 AM S Moonesamy wrote:
> At 05:27 10-02-2012, spfbis issue tracker wrote:
> >#12: RFC 4408 Section 9 - Forwarding and helo identities
> >
> >  Message from Alessandro Vesely on 10 Feb 2012:
> >  
> >  The advice given in the non-normative Section 9 is misleading.  On the
> >  one hand, it provides overly cumbersome techniques based on macros
> >  that are not universally considered safe.  On the other hand, it fails
> >  to state the obvious point that a return-path is only needed if
> >  someone is going to care about delivery failures.

It is a given that one only need care about return-path being accurate if one 
cares about delivery failures, but also irrelevant.  Random dropping of email 
(either original messages or bounces) interferes with the overall reliability 
of email on the internet.  I don't think the group should add anything 
indicating that discarding bounces or directing mail from to a non-existant 
mailbox because the sender doesn't care is a good idea.   -1 on the concept.

More detailed comments below.

> >  When an email alias refers to an external domain, the forwarder must
> >  change it.  This has to be normative, and update Section 3.9.1 of
> >  [RFC5321] --not one of the best written sections of that paper.
> >  
> >  Forwarding à la MAIL FROM:<> should be mentioned as the default,
> >  easiest way to re-inject messages.  The implied interoperability is
> >  that the owner of the target mailbox must be aware of a given
> >  "forwarding recipe", and be able to modify or delete it.  The
> >  variation MAIL FROM:<postmaster@example.com> is necessary when a
> >  postmaster's action is needed for modifying/deleting a given recipe.
> >  SRS should be mentioned as a general purpose variation for extended
> >  forwarding needs.
> >  
> >  The spec should say that an SPF record must be defined for every A or
> >  AAAA record, irrespectively of whether its host label also appears in
> >  some MX RRs.  We should encourage the use of _spf labels and
> >  redirect= for designing sound and maintainable SPF compliance.

This issue encompasses a number of disparate recommendations and Alessandro 
has a number of comments that relate to different parts of the section.  I 
think it's useful to talk about each part in turn:

   9. Implications
      9.1. Sending Domains

> >  The advice given in the non-normative Section 9 is misleading.  On the
> >  one hand, it provides overly cumbersome techniques based on macros
> >  that are not universally considered safe.  

This appears to refer to 9.1.  

Nothing is "universally considered safe".  It's a known fact that drinking too 
much water can kill you.  That doesn't make drinking water a bad idea.  It is 
true that the type of record suggested in 9.1 is uncachable, so domains that 
use it should be prepared for more DNS traffic than is usual for an SPF record 
that doens't use uncachable macros.  I think it would be reasonable to mention 
this.

Additionally, there are mechanisms that exist today that did not exist when 
RFC 4408 was drafted that provide alternative mechanisms to collect the 
relevant data.  draft-ietf-marf-spf-reporting, currently in IETF wide last 
call, is one mechanism that can support exactly this use case.  Outside the 
IETF, DMARC (dmarc.org) is another approach.  

References to at least draft-ietf-marf-spf-reporting should be added to 9.1, 
but the current text about a special SPF record should remain.  The advantage 
of the special SPF record/DNS log approach is that it requires no cooperation 
from receivers beyond doing normal SPF checks.

      9.2. Mailing Lists

It does not appear that any of the comments address 9.2.  I think it would be 
useful (and a good preamble to the forwarding discussion) to update this text 
to make use of the email architecture terminology that didn't exist when RFC 
4408 was written.  The references should be updated as well.  I don't think 
any functional changes to 9.2 are needed.

      9.3. Forwarding Services and Aliases 

This comment appears to relate to 9.3:

> >  When an email alias refers to an external domain, the forwarder must
> >  change it.  This has to be normative, and update Section 3.9.1 of
> >  [RFC5321] --not one of the best written sections of that paper.

As does:

> >  Forwarding à la MAIL FROM:<> should be mentioned as the default,
> >  easiest way to re-inject messages.  The implied interoperability is
> >  that the owner of the target mailbox must be aware of a given
> >  "forwarding recipe", and be able to modify or delete it.  The
> >  variation MAIL FROM:<postmaster@example.com> is necessary when a
> >  postmaster's action is needed for modifying/deleting a given recipe.
> >  SRS should be mentioned as a general purpose variation for extended
> >  forwarding needs.

I disagree with the comments.  First, I think 3.6.2 of RFC 5321 is more 
relevant (it even mentions SPF by name).  I don't think 4408bis should update 
5321.  I think it would make consensus substantially harder to achieve and 
there is no technical need for it.

In email architecture terms, a forwarder ("relay SMTP server" in RFC 5321 
terms, not an alias expander) is part of the receiving ADMD.  Forwarding is 
configured by the receiver for the receiver's convenience (unlike mailing lists 
where there is a joint participation model).

It would be useful to explicitly say in this section that THE place to do SPF 
checks is at the transition point between the sending ADMD and the receiving 
ADMD.  When a message is relayed within the recieving ADMD, SPF checks, per se 
are not appropriate, all that can be done is to use the results of checks done 
on the ADMD border if they can be trasmitted in a reasonably trustworthy 
manner.

There are lots of ways problems in this area can be addreesed, a couple are:

1.  Check at the border and internal relays whitelist border relays from SPF 
checks

2.  Rewrite Mail From (e.g. SRS) when mail is transmitted between external and 
internal parts of the ADMD so the check can validate that the mail 
legitimately came a trusted part of their ADMD.

Doing wild tricks like null mail from forwarding are not appropriate here.  
They will result in mail loss and there's no need.

In the terms that 9.3 is written, I think this is mostly a middle/end problem, 
but the methods listed for beginning/middle/end that are listed are all 
potentially useful.  This could use some cleanup to use email arch terms and 
such, but it's a pretty decent list of options to use.

      9.4. Mail Services 
      9.5. MTA Relays 

It doesn't appear that there are parts if this issue related to the last two 
sub-sections.

> >  The spec should say that an SPF record must be defined for every A or
> >  AAAA record, irrespectively of whether its host label also appears in
> >  some MX RRs.  We should encourage the use of _spf labels and
> >  redirect= for designing sound and maintainable SPF compliance.

I think it would be useful to add something in this section that addresses 
domains that send no mail.  For hosts that really send no mail, "v=spf1 -all" 
is a great record to be publishing as it's got a zero percent chance of false 
positive.  I think SHOULD publish for all domains is plenty.  I don't see a 
MUST.

redirect/include and _spf are nice tools for domains that need them.  They are 
not, however, a general solution or requirement.  I think 5.2 already give 
adequate coverage to the use of include:.  I think it would be useful (as part 
of the processing limits discussion) to include an indication that SPF records 
SHOULD NOT require TCP fallback to retrieve (and this includes the answers for 
other TXT records published for that domain) and offer the _spf example of how 
to work around packet size limitations.

Scott K