Re: [dmarc-ietf] Ticket #1 - SPF alignment

Alessandro Vesely <> Thu, 28 January 2021 12:13 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id D5C333A10B4 for <>; Thu, 28 Jan 2021 04:13:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.121
X-Spam-Status: No, score=-2.121 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, NICE_REPLY_A=-0.001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1152-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id csRTA2f7Znxa for <>; Thu, 28 Jan 2021 04:13:07 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 8D6DB3A0FB9 for <>; Thu, 28 Jan 2021 04:13:07 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=delta; t=1611835987; bh=/i1HwjDAbQDwVomnuuWf1xwNJwhVl8akMnHkJ2l9u7E=; l=2075; h=To:References:From:Date:In-Reply-To; b=AfHLX6H0hqc5NnZSmVkvIA41rI3VC4pfviQJA8RRgcfO01ZjPVQt2nLhahVt+J225 43GX96XIpVxqXaygjFHwjyvSIKNOJbg0avJVmC+IMiHqjrrvuw/gC4SVKY1xarGaPG SXs98dtd7t/P+AoZn0KnHzAW1164sk/rZpNg7g1YZkKecWivnuLjolTxuCaYz
Authentication-Results:; auth=pass (details omitted)
Original-From: Alessandro Vesely <>
Received: from [] (pcale.tana []) (AUTH: CRAM-MD5 uXDGrn@SYT0/k, TLS: TLS1.3, 128bits, ECDHE_RSA_AES_128_GCM_SHA256) by with ESMTPSA id 00000000005DC0D3.000000006012AA52.00007F9F; Thu, 28 Jan 2021 13:13:06 +0100
To: "Murray S. Kucherawy" <>, IETF DMARC WG <>
References: <> <1655426.E2olI3CrJK@zini-1880> <> <3776619.NdRDDhGtae@zini-1880> <> <>
From: Alessandro Vesely <>
Message-ID: <>
Date: Thu, 28 Jan 2021 13:13:06 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <>
Subject: Re: [dmarc-ietf] Ticket #1 - SPF alignment
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Domain-based Message Authentication, Reporting, and Compliance \(DMARC\)" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 28 Jan 2021 12:13:16 -0000

On Wed 27/Jan/2021 21:10:37 +0100 Murray S. Kucherawy wrote:
> On Wed, Jan 27, 2021 at 9:26 AM Alessandro Vesely <> wrote:
>> AFAIUI, there's no reason why SPF would work with a logic substantially
>> different than DKIM's.  DKIM can provide n identifiers, if one of them is
>> aligned and "pass", then DMARC is "pass".  SPF can provide 2 identifiers
>> but one of them is of class B.  WTF?
> DKIM (in its simplest form) returns N tuples of the form (d= domain,
> pass/fail).  All of them were run through exactly the same check; all of
> them were attached to the message in exactly the same way; all of them have
> essentially identical semantics.  Giving them equal footing makes sense to
> me.
> The two identifiers in SPF hold different places in the SMTP session, and
> have different semantics.  I think treating them differently is also just
> fine.

It is relevant that both identifier come from /the same/ SMTP session.  That's 
not true for many DKIM signatures.

>> In addition, as I said, SPF filters are likely to report HELO as helo and 
>> MAIL FROM as mailfrom.  If we want to carry over this quirk, the spec must
>> say that a DMARC filter which gathers SPF authentication status from an
>> upstream filter MUST make sure that mailfrom is empty before validating
>> based on an aligned helo. >
> ...or it doesn't evaluate against SPF at all in such a situation.

Dropping SPF altogether is too much.  I'm querying about dropping just the 

>> Dropping that absurd discrimination between SPF identifiers would make
>> for a smoother spec.  Since non-null mailfroms are in most cases aligned
>> with either From: or helo, the differences between existing compliant
>> implementations and the smoother spec would be limited to a hardly
>> noticeable set of test messages. >
> I don't think we should ignore what those two identifiers mean, how likely
> they are to contain junk, how they are applied, outside of DMARC, etc.

How is that different from d= identifiers?