Re: [dmarc-ietf] Nitpicky questions about DMARC record syntax Thu, 17 January 2019 12:59 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 6761F124BF6 for <>; Thu, 17 Jan 2019 04:59:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.208
X-Spam-Status: No, score=-1.208 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RDNS_NONE=0.793, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id wUK88XeTCNfY for <>; Thu, 17 Jan 2019 04:59:47 -0800 (PST)
Received: from (unknown []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 5938912426E for <>; Thu, 17 Jan 2019 04:59:47 -0800 (PST)
Received: from by (PMDF V6.1-1 #35243) id <> for; Thu, 17 Jan 2019 04:54:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;; s=201712; t=1547729685; bh=7uxN12LiOpMVdv/ZcLND4Qq6s0Cy5XyaYtqrIVagsFc=; h=From:Cc:Date:Subject:In-reply-to:References:To:From; b=kjGbW8Q2XnG96qMKkS6kbSMTmmvS9mvFhqlkJYoI7ftLG3ymWKDfSG9RRugsXSBvs 9pb/uKd2E8F1YE3/H/YuSS5qKJw01lCsCUn23Tu+T1g0zBFWD7l8WpKNQAdMH2mV7i D2xxG06ihLWKU7OLYHdCIg6x2GJcxzswhVn/hwN0=
MIME-version: 1.0
Content-transfer-encoding: 7bit
Content-type: TEXT/PLAIN; CHARSET="us-ascii"; Format="flowed"
Received: from by (PMDF V6.1-1 #35243) id <> (original mail from for; Thu, 17 Jan 2019 04:54:41 -0800 (PST)
Cc: John Levine <>,
Message-id: <>
Date: Thu, 17 Jan 2019 04:42:26 -0800
In-reply-to: "Your message dated Wed, 16 Jan 2019 12:00:13 -0800" <>
References: <20190116191824.0E64F200CC135A@ary.qy> <>
To: Dave Crocker <>
Archived-At: <>
Subject: Re: [dmarc-ietf] Nitpicky questions about DMARC record syntax
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, 17 Jan 2019 12:59:48 -0000

> On 1/16/2019 11:18 AM, John Levine wrote:
> > Remember, that if your software rewrites an invalid record into a
> > correct one, you are trying to read the mind of the person who wrote
> > the misformed record.

> To emphasize a point you made earlier:  There are many, small
> adjustments that a receiver might make, with the intention of operating
> more robustly.  The current examples certainly quality as small and
> seemingly innocuous.  But the earlier point was that one deviation from
> the specification bodes ill for more important questions of conformance...

> If they didn't read this part carefully, why believe they read other
> parts more carefully?

The seemingly innocuous nature of the accomodation is only one of several
factors that need to be considered when deciding whether or not to implement
these things. Others include, but are not limited to:

(0) What are the worst case security considerations?

(1) Whether or not the misbehavior is widespread.

(2) Is the misbehavior likely to be corrected if you don't accomodate it?

(3) What wiil the effect of telling customers experiencing difficulties that
    it's Someone Else's Problem be?

(4) What is the long term impact on your code going to be?

All that said, in the present case this appears to be a nobrainer: Since the
correct behavior is to ignore malformed records, the security implications may
be significant, it is not widespread behavior, it's very likely to be
corrected, telling people that banks should get their security right seems like
an easy argument to make, and it's a bit of a wart on the code.

I'll also note that transmitters as well as receivers can play the
accomodatation game, with similar effects: What should be common cases
get turned into corner cases, and interoperability suffers as a result.