[dmarc-ietf] Ticket #112 - Authentication vs. Repudiation.

Douglas Foster <dougfoster.emailstandards@gmail.com> Sat, 26 June 2021 16:35 UTC

Return-Path: <dougfoster.emailstandards@gmail.com>
X-Original-To: dmarc@ietfa.amsl.com
Delivered-To: dmarc@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6AFE93A1C04 for <dmarc@ietfa.amsl.com>; Sat, 26 Jun 2021 09:35:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.005
X-Spam-Level:
X-Spam-Status: No, score=-2.005 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, HTML_OBFUSCATE_10_20=0.093, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id x92Gjdj61sC7 for <dmarc@ietfa.amsl.com>; Sat, 26 Jun 2021 09:35:50 -0700 (PDT)
Received: from mail-ot1-x336.google.com (mail-ot1-x336.google.com [IPv6:2607:f8b0:4864:20::336]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E9DC63A1C02 for <dmarc@ietf.org>; Sat, 26 Jun 2021 09:35:49 -0700 (PDT)
Received: by mail-ot1-x336.google.com with SMTP id i12-20020a05683033ecb02903346fa0f74dso12943996otu.10 for <dmarc@ietf.org>; Sat, 26 Jun 2021 09:35:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=27oiyWle/so9VlXzPL8rwyKXFzQzCRhPL7Zb7bJpbVk=; b=XYPfm1SlZpfDXVXCMydiGa0zGfwtwRQMrgcFIKIMo3QvtKvIcuOPqicAudSTdI/J3N 1s1+8IITmWABBpovtiktyNqiWm40sCdDLnvJ8vE/BEWOEK6ME3Dai5B39YTHGK2Efm8n Arb8iMujo9FSSY2s+9x+lPgqlNI04vRXsgDK5szldKGpsniR94/WippuiM/Bd2dwyqF8 4mAKtc21EbRpy6SHIjwfB7WEsI/x1D1TuTCqTIfztzGVu2vwnBBVV4+XS6TPKVTEwpgn 33EahzabQ70dsr4nUG1pEO9GyapdyTIYYuW0hNZmr0DcONcPaNUFLKKMXFwOKOg84OrW 2d7Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=27oiyWle/so9VlXzPL8rwyKXFzQzCRhPL7Zb7bJpbVk=; b=O1yyCrXEYxk2gWbRoJrtAGPuLjrYphFxyh61XPGn4LeBKuvdzzTY5c30B3pCx62ObE XsM2umgvxlYRP8fy8P+yXMxCTtYnfukYeTb0vf8GFzzBz87WImtLSr9Bhx4vMKmXHE5D lppaRLPRzRgwzcuo6vbv3wpKglYvvPkL9McTMI/2cTFQMKFWASzWGpY6Y52gSGYMVxQy JfFzhITvarNz2mGACbMWPtbkC3JKudSM/EgWiWRZx9D4cc8pqx54XwrAzsx62oynf//f h61bnhfwKjq3nc7/uz11nJynfQHixUsWHOthdkznvAtIrdBapqlEDommeaKWpuD6h49H qzig==
X-Gm-Message-State: AOAM5308kcJWoeHdt1dQqpoeexFJiDjgAMNqxMoSieLfu7c4CBlvpab4 MTr83NQHo3VDqwkgGIapEuWMi5CmxMLmWetli/M+5J2x1k4=
X-Google-Smtp-Source: ABdhPJxA+RBSK6//MROV6Hg/tRpCY/oosmcMcFYbHaWKjNT+GthhaKmq8WBoZOyJrUsi6utkQf0eExWomjQvNl2HKMk=
X-Received: by 2002:a9d:7d05:: with SMTP id v5mr15434491otn.240.1624725348199; Sat, 26 Jun 2021 09:35:48 -0700 (PDT)
MIME-Version: 1.0
From: Douglas Foster <dougfoster.emailstandards@gmail.com>
Date: Sat, 26 Jun 2021 12:35:38 -0400
Message-ID: <CAH48Zfyai_qZzMt5VDhpWj5wHrYAyLA5hEssvKXwXn9v006XDg@mail.gmail.com>
To: IETF DMARC WG <dmarc@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000003cb1a705c5add974"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dmarc/TJ8shuX6x_na991rGjJS_h4LNlo>
Subject: [dmarc-ietf] Ticket #112 - Authentication vs. Repudiation.
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: Sat, 26 Jun 2021 16:35:53 -0000

DMARC is very effective for message authentication.  DMARC PASS allows
preferred handling to be applied without fear of spoofing.  For example:

If DMARC=PASS
and RFC5322.FROM ends with “EXAMPLE.COM”
they Bypass Tests ( “Spam Scoring”,  “Attachment Restrictions” )

(Curiously, I had trouble finding products which could implement this type
of rule, suggesting that we need more best practice documentation.)

However, DMARC has proven to be ineffective as a tool for message
repudiation.    DMARC FAIL does not necessarily mean spoofed content, it
can mean many things:

·         If the message contains a DKIM signature that does not verify:

o   the message was forwarded with modifications

o   the signature hash was computed incorrectly at creation

o   the signature hash was computed incorrectly at reception

o   the signature and the message are fraudulent

·         If the message does not contain a DKIM signature at all:

o   the SPF policy has an omission

o   the SPF policy has a PERMERROR mistake

o   the message was forwarded

o   the message is from a tolerated and non-malicious impersonator

o   the message is fraudulent

Given these diverse possibilities, DMARC FAIL is not a reliable indication
that the message should be blocked, whatever the sender policy.
Quarantining might be the best response, if evaluators have the human
resources with sufficient skills to evaluate each such message, so that a
determinative policy can be created.

Overall, Sender Authentication meets the primary needs of message
senders:   their messages can be verified with SPF or DKIM in the hope that
their messages will be more likely to be given preferred handling.

Message receivers are very concerned about malicious messages being
accepted, so repudiation has a high interest level, and these interests are
not satisfied with an Authentication-Only result.   Some vendor products
and some system managers have responded to this need by treating an
authentication failure as if it provides confirmed repudiation.  Such
behavior is not justified and has created all of the problems documented by
RFC 7960.

The notion of an NP policy reverses this situation.  NP has no ability to
provide authentication, and is only evaluated when authentication fails.
But it can provide confirmed repudiation for a subset of the organization
or PSD name space, specifically the names which are never used for a
particular purpose.

The PSD proposal defined a two-way split:   names which are plausibly used
for SMTP are considered valid, and names which are not plausibly used for
SMTP are considered invalid.   As I have discussed elsewhere, this creates
errors because it involves guessing the sender’s intention and it excludes
certain name usage scenarios.

Given that we have two usage states (valid or invalid) and two usage
locations (RFC5321.MailFrom and RFC5322.From), we have four possibilities
for any specific name:

1.       Name used by domain owner for both MailFrom and From.   A message
which uses this name is not repudiated.

2.       Name used by domain owner for MailFrom only.   A message which
uses this name in the From header is repudiated.

3.       Name used by domain owner for From only.  A message which uses
this name in the MailFrom address is repudiated.

4.       Name used by domain owner for neither MailFrom nor From.  A
message which uses this name is repudiated.

How to document and evaluate these categories:

We have the available tools to distinguish the SMTP portion of this problem:

·         An SPF policy which evaluates to at least one IP address
indicates that the message is used for SMTP, and the message must be in
categories 1 or 2.

·         An SPF policy of "-ALL" indicates that the name is never used for
SMTP.   The message must be in category 3 or 4.

·         An SPF policy lookup which returns NXDOMAIN indicates that the
name is not defined in DNS, and therefore has no return path.   For
purposes of NP processing, it is appropriate to treat this result as
equivalent to a policy of “-ALL”.   The message must be in category 3 or 4.

·         A message which does not have an SPF policy is ambiguous, but if
the domain owner has published an NP policy of reject or quarantine, the
absence of an SPF policy should be treated as equivalent to rejection
(“-All”).

What we lack is an equivalent mechanism for indicating whether a name is
used in an RFC5322.From header.   I have proposed that this be implemented
as a TXT record, because it must be possible to assign the signal to any
possible DNS name.  To handle all four categories, we need both a positive
signal (name is used for From) and a negative signal (name is never used
for From).

We can assume that in the absence of a signal, the From signal matches the
MailFrom signal.  This minimizes the number of DNS entries required, and
simplifies the conformance effort for domain owners who wish to utilize the
NP policy.

·         When SPF evaluation indicates that the name is valid for SMTP,
then

o   If the DMARC signal is present and positive, the signal is redundant
and category 1 applies.

o   If the DMARC signal is absent, positive is assumed and category 1
applies.

o   If the DMARC signal is negative, category 2 applies.

·         When SPF evaluation indicates that the name is not valid for
SMTP, then

o   If the DMARC signal is present and positive, category 3 applies

o   If the DMARC signal is absent, negative is assumed and category 4
applies.

o   If the DMARC signal is negative, category 4 applies.

Application of the NP policy

If the NP policy is NONE or not published, the domain owner has not
indicated compliance with this mechanism, and the SP policy is applied.

If the NP policy evaluates to “not repudiated”, then the SP policy applies.

If both NP and SP are set to reject or quarantine, then all unauthenticated
messages will be rejected by one or the other of the policies.   Messages
rejected because of NP have a higher level of certainty because they are
verifiably repudiated.

Notes about the NP approach:

·         NP does not protect all names; it only protects unused names.
For example, it does not solve the problem of messages that are processed
through a content-altering mailing list.   However, the mailing list
problem only applies to names that are valid, so a message with a
repudiated name is reliably not affected by the mailing list problem.  The
universe of unused names is very large, so blocking such usage is a
significant benefit to mail evaluators.

·         Some DMARC failures are caused by non-malicious impersonation by
trusted senders, and these can be wanted messages which will be given a
DMARC exception.   Operational experience indicates that these senders only
impersonate existing names that they have obtained through legitimate
interactions, so they will not be using invalid names and will be
unaffected by the NP policy.

Conformance effort for domain owners:

·         Determine all used names and how they are used.

·         Add DMARC positive DNS entries as needed to indicate names in 3.

·         If desired, add DMARC negative DNS entries to distinguish
category 2 from category 1 for improved enforcement.  In the absence of a
negative signal, category 2 messages will be handled as category 1 and
never repudiated.

·         When ready, publish a NP policy of quarantine or reject.


Doug Foster