[dmarc-ietf] Nitpicky questions about DMARC record syntax

"John Levine" <johnl@taugh.com> Wed, 16 January 2019 00:58 UTC

Return-Path: <johnl@iecc.com>
X-Original-To: dmarc@ietfa.amsl.com
Delivered-To: dmarc@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 97937130F8A for <dmarc@ietfa.amsl.com>; Tue, 15 Jan 2019 16:58:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1536-bit key) header.d=iecc.com header.b=iS0YPBZE; dkim=pass (1536-bit key) header.d=taugh.com header.b=kMbtBATL
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id mlJ1rtVOVmmj for <dmarc@ietfa.amsl.com>; Tue, 15 Jan 2019 16:58:06 -0800 (PST)
Received: from gal.iecc.com (gal.iecc.com [IPv6:2001:470:1f07:1126:0:43:6f73:7461]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E4CDC130F86 for <dmarc@ietf.org>; Tue, 15 Jan 2019 16:58:05 -0800 (PST)
Received: (qmail 2974 invoked from network); 16 Jan 2019 00:58:05 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=iecc.com; h=date:message-id:from:to:subject:mime-version:content-type:content-transfer-encoding; s=b9b.5c3e819d.k1901; bh=76KhIBtwNCZRzxOG/tGPo40sV1EnWrGn4hxN7V0/YgQ=; b=iS0YPBZEijRtqFMrh+dHZ8ATQNgBGm9yiKPBQ49ddNyEoWJoMDKXGgXZjP7U8vldKecJ4UDVlGUQkOBxafqfPqk6zvuWr0XvCgjUh7IuidU2hWPmLcaSsUd9uQ30M40UEyC1AUyGupgzXuRCIfIy6/hWfNesMWRXlFVKR6hpWezeLttzVtPn6C5NYJSinQY55TjFxuA8WXlHk75Q1iYRbJ2d025M3ygfA8av68U/kEUTHMREJGx8nzSWXDZK/ucs
DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=taugh.com; h=date:message-id:from:to:subject:mime-version:content-type:content-transfer-encoding; s=b9b.5c3e819d.k1901; bh=76KhIBtwNCZRzxOG/tGPo40sV1EnWrGn4hxN7V0/YgQ=; b=kMbtBATLq7RfEu66MBUbHlWbEYm47/G670O1AEqmkMu4SnwtPw9eNApJlfs2n4U7pMItPGTt3ir6pEv43ScVGGhpKqZ5uecPLkC3mB+mnguW3H49oU1DMjfouYG7B7uE3AV1XfRE2nn74yKodU1cJWZU46K06MMQ2in2HrJiC1+anInUcn2/ICeaExyMzuMg+j1Xc76KbagjvCdgfidVqoO/XEPx8YOkGhuREmd/2v3XzJ+FHGJtp7E2vdoEds+d
Received: from ary.qy ([IPv6:2001:470:1f07:1126::78:696d:6170]) by imap.iecc.com ([IPv6:2001:470:1f07:1126::78:696d:6170]) with ESMTP via TCP6; 16 Jan 2019 00:58:04 -0000
Received: by ary.qy (Postfix, from userid 501) id A0A80200CACDA9; Tue, 15 Jan 2019 19:58:04 -0500 (EST)
Date: Tue, 15 Jan 2019 19:58:04 -0500
Message-Id: <20190116005804.A0A80200CACDA9@ary.qy>
From: John Levine <johnl@taugh.com>
To: dmarc@ietf.org
Organization: Taughannock Networks
X-Headerized: yes
Mime-Version: 1.0
Content-type: text/plain; charset="utf-8"
Content-transfer-encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/dmarc/EiVOv9bTvv0Zv2pjY8JKmWu3pYk>
Subject: [dmarc-ietf] Nitpicky questions about DMARC record syntax
X-BeenThere: dmarc@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Domain-based Message Authentication, Reporting, and Compliance \(DMARC\)" <dmarc.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dmarc>, <mailto:dmarc-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dmarc/>
List-Post: <mailto:dmarc@ietf.org>
List-Help: <mailto:dmarc-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dmarc>, <mailto:dmarc-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 16 Jan 2019 00:58:08 -0000

I am staring at RFC 7489, and at a bunch of purported DMARC records
(see previous message.)

The RFC says that all records must start with "v=DMARC1".  Is it OK
if they start with "v=dmarc1"?  It says that record is a DKIM tag-value
list, and the DKIM ABBF defines all the characters with hex escapes
rather than letters which tells me that it's specifically saying
that case matters.

How about if there's a space before the v=DMARC1?  The tag-value syntax
allows FWS before the first tag, but 7489 says in several places

   Records that do not start with a "v=" tag that identifies the
       current version of DMARC are discarded.


PS: I know it's not hard to write a parser that can accept mutant
forms.  The question is whether that's a good idea.  From a quick
look, people who get v=DMARC1 wrong often get other things wrong, too.