Re: [dmarc-ietf] Fwd: Eliot's review of the DMARC spec

"Murray S. Kucherawy" <superuser@gmail.com> Fri, 05 July 2013 08:34 UTC

Return-Path: <superuser@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 A651011E826E for <dmarc@ietfa.amsl.com>; Fri, 5 Jul 2013 01:34:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
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 j1dsfR5ppTrD for <dmarc@ietfa.amsl.com>; Fri, 5 Jul 2013 01:34:08 -0700 (PDT)
Received: from mail-wi0-x22b.google.com (mail-wi0-x22b.google.com [IPv6:2a00:1450:400c:c05::22b]) by ietfa.amsl.com (Postfix) with ESMTP id 4887711E8264 for <dmarc@ietf.org>; Fri, 5 Jul 2013 01:34:06 -0700 (PDT)
Received: by mail-wi0-f171.google.com with SMTP id hj3so6969567wib.4 for <dmarc@ietf.org>; Fri, 05 Jul 2013 01:34:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=Nq73IcUWBdO3Ku8KUz0Vy9z6L9v7auItzmYNfCu92AQ=; b=WqgGr7rDtRhMoqYggwJgAdDWw3KqtLK9+o1aZ6o2zFDNBEt0IhyYT/tLpV5uN3FcS/ 09f6b8zHLilLqSviUkb4YD8rbI6Smz1M6Zzfg7t4nehADLpfuJ6Cz5CA7Q3jxORx+a6d PtR/Lotazc2xb7KHCfy5726JELBimCaKCBuYam0jz67pSP2+7pBBJS3P5SJnD2JGrCwY N46SuK2oed68Hr3ng2onm2SFj3dIr8M1YsObce0mD08+8IG6N5R/RouhP2mGG/u3m8h9 gSaIruXFGbX5U3Zrnk9S0JJsPL+UVJLdgJAFfsFWKiJET2kRLjA22BREXDoB92SKEFmO 7Mow==
MIME-Version: 1.0
X-Received: by 10.194.239.225 with SMTP id vv1mr5468518wjc.63.1373013246035; Fri, 05 Jul 2013 01:34:06 -0700 (PDT)
Received: by 10.180.90.16 with HTTP; Fri, 5 Jul 2013 01:34:05 -0700 (PDT)
In-Reply-To: <6.2.5.6.2.20130523002139.0da7ac58@resistor.net>
References: <519B47DC.20008@cisco.com> <CAL0qLwYZOp1FNVSAmzXYkZG_O3Yv+EQrAKKLpRiE5svcOMamTA@mail.gmail.com> <6.2.5.6.2.20130523002139.0da7ac58@resistor.net>
Date: Fri, 05 Jul 2013 01:34:05 -0700
Message-ID: <CAL0qLwYT6BS=HGLX1-u80aqaJWefipT5tcg5Ut_549y4rOej9g@mail.gmail.com>
From: "Murray S. Kucherawy" <superuser@gmail.com>
To: SM <sm@resistor.net>
Content-Type: multipart/alternative; boundary="089e01493384cd4f4a04e0bf8e38"
Cc: "dmarc@ietf.org" <dmarc@ietf.org>, Eliot Lear <lear@cisco.com>
Subject: Re: [dmarc-ietf] Fwd: Eliot's review of the DMARC spec
X-BeenThere: dmarc@ietf.org
X-Mailman-Version: 2.1.12
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: <http://www.ietf.org/mail-archive/web/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: Fri, 05 Jul 2013 08:34:09 -0000

Hi SM,

As I said with Eliot's review, thanks for looking at this so early on.  I'm
going to chop a chunk of what you said out about the heavy requirements and
"marketing" since much of it will be slashed in the next version.  As for
what's left:

On Thu, May 23, 2013 at 2:55 AM, SM <sm@resistor.net> wrote:

>
> The terminology section mentions terms such as "cousin domains", "domain
> owner", etc.  Although such terms may be popular I don't think that it is a
> good idea to use them in a protocol document as they can be ambiguous.
>

Can you make other suggestions?  I think the first one is not ambiguous in
general, but we're very clear on defining and using the second.


>
> In Section 5:
>
>
>   "A Mail Receiver MUST consider an arriving message to pass the DMARC
>    test if and only if one or more of the underlying message
>    authentication mechanisms pass with proper identifier alignment."
>
> The above conveys the idea.  It does not provide adequate information for
> the implementer.
>

The details are further down in the document.  Section 5 is setting the
stage for what comes later.  It's more overview than substance.


>
>   "A Mail Receiver implementing the DMARC mechanism MUST make a best-
>    effort to adhere to the Domain Owner's published DMARC policy when a
>    message fails the DMARC test."
>
> The above uses a "MUST" to tell people that they ought to make a
> best-effort.  In my opinion that is incorrect usage of RFC 2119 key words.
>

I agree, this would likely be caught during more formal reviews as well.  I
think "MUST make" can just be "makes".


>
>   "Mail Receivers MAY deviate from a Domain Owner's published policy
>    during message processing and SHOULD make available the fact and
>    reason of the deviation to the Domain Owner via feedback reporting."
>
> I read the above as "if you do not do what I say you have to provide me
> with a justification".  Let me rewrite the text:
>
>   "Mail Receivers deviating from a Domain Owner's published policy
>    during message processing and MUST make available the fact and
>    reason of the deviation to the Domain Owner via feedback reporting."
>
> If that text is not acceptable to mail receivers the RFC 2119 SHOULD will
> have the same effect.
>

SHOULD is appropriate.  There can be local policy reasons for not revealing
such details via feedback.


>
> In Section 7:
>
>   "When this is done, the DNS domain name thus recorded MUST be encoded as
> an
>    A-label, as described in Section 2.3 of [IDNA]."
>
> The above is under "policy enforcement considerations".  It should be in a
> section discussing the DNS aspects of the specification.
>

Why?  The context is the construction of an RFC5451 header field, not
something about DNS.


>
> Section 8.2 is about "Verifying External Destinations".  If I am not
> mistaken, IETF specifications are not about imposing a specific method.
>  Section 8.2 sounds like a tutorial for the implementer instead of a
> definition of what the "DMARC policy string" means.
>
>
I disagree; a specification is indeed about describing a specific method.
Tutorials for implementers appear throughout various documents we produce,
one of which you are working on in another working group right now.  :-)



>   "A report receiver MUST publish such a record in its DNS if it wishes
>    to receive reports for other domains."
>
> The RFC 2119 usage is inappropriate here.  I would put it after the
> high-level view (see Eliot's message) of how DMARC works.
>

It's fine to drop this to "publishes".  I believe "MUST publish" is also
technically correct, but Pete has described it as "unnecessary shouting" in
the past.


>
> In Section 8.3:
>
>   "The report SHOULD include the following data:
>
>    o  Enough information for the report consumer to re-calculate DMARC
>       disposition based on the published policy, message dispositon, and
>       SPF, DKIM, and identifier alignment results. {R12}"
>
> "enough information" is an ambiguous description of what the report should
> include.
>

That SHOULD looks more like requirements language, and I agree the bullet
list is non-specific.  The details are in the section containing the XML
syntax.  We'll adjust.


>
> In Section 11.2:
>
>   "Heuristics applied in the absence of use by a Domain Owner of either
>    SPF or DKIM (e.g., [Best-Guess-SPF]) SHOULD NOT be used, as it may be
>    the case that the Domain Owner wishes a Message Receiver not to
>    consider the results of that underlying authentication protocol at
>    all."
>
> The reference would have to be normative.
>

Is that true?  I would think making normative something one SHOULD NOT use
seems contradictory.


>
> In Section 11.3:
>
>   'If email is subject to the DMARC policy of "quarantine", the Mail
>    Receiver SHOULD quarantine the message.  If the email is not subject
>    to the "quarantine" policy (e.g., due to the "pct" tag), the Mail
>    Receiver SHOULD apply local spam classification as normal.'
>
> The usage of RFC 2119 key words in the above is incorrect.
>

Why?


>
> In Section 12.2.1:
>
>  'In the case of a "mailto" URI, the Mail Receiver SHOULD communicate
>    reports using the method described in [STARTTLS].'
>
> Has the usual STARTTLS issues been taken into consideration for the RFC
> 2119 recommendation?
>

Such as what?


>
>   "The aggregate data MUST be an XML file subjected to GZIP compression.
>
>    The aggregate data MUST be present using the media type "application/
>    gzip", and the filenames SHOULD be constructed using the following
>    ABNF:"
>
> In Section 12.2.2 it mentioned that:
>
>   'Where an "http" or "https" method is requested in a Domain Owner's
>    URI list, the Mail Receiver MAY encode the data using the
>    "application/gzip" media type ([GZIP]) or MAY send the Appendix C
>    data uncompressed or unencoded.'
>
> The data exchange format depends on the URI scheme being used.  In my
> opinion that makes the implementation more complex.
>

I don't agree, but I think the more important point is that the two
sections disagree on whether compression is required.


>
>   'For the GZIP file itself, the extension MUST be "gz"; for the XML
>    report, the extension MUST be "xml".'
>
> I would ask why such a RFC 2119 requirement is in the draft.
>

For interoperability, of course.  What's the issue here?


>
>   "Email streams carrying DMARC feedback data MUST conform to the DMARC
>    mechanism, thereby resulting in an aligned "pass" (see Section 4.3)."
>
> As far as I am aware the IETF does not do conformance.
>

It doesn't do conformance levels, as far as I'm aware.  But you either
conform to the standard or you do not.  Are you keying on the word
"conform" or is there more going on here?


>
>   'The RFC5322.Subject field for individual report submissions SHOULD
>    conform to the following ABNF:'
>
> The Subject field is specified as structured text in the above.
>

Is that bad?


>
> In Section 12.2.2:
>
>   "The header portion of the POST or PUT request SHOULD contain a
>    Subject field as described in Section 12.2.1."
>
> This sounds like sending RFC 5322 formatted messages over HTTP.
>

Is that bad?


> In Section 15.8:
>
>   "Many systems are able to scan the SMTP reply text to determine the
>    nature of the rejection, thus providing a machine-detectable reason
>    for rejection allows automated sorting of rejection causes so they
>    can be properly addressed."
>
> I don't think that it is a good idea to discuss about that as part of a
> protocol specification.
>

Why?


>
> I suggest giving careful consideration to privacy.  The draft discusses
> about that in Section 15.10.1.  The draft would require a detailed review
> to understand what information is being exchanged and how that can affect
> users.
>

What issue should we cover that 15.10.1 does not already?


>
> In Section 15.12:
>
>   "The DMARC mechanism and its underlying technologies (SPF, DKIM)
>    depend on the security of the DNS.  To reduce the risk of subversion
>    of the DMARC mechanism due to DNS-based exploits, serious consideration
>    should be given to the deployment of DNSSEC in parallel to the
> deployment
>    of DMARC."
>
> I would ask whether anyone who has deployed this mechanism is actually
> using DNSSEC.  If not the above is not saying anything to ensure secure use
> of the protocol.
>

I don't think it's pragmatic to demand use of DNSSEC because of the obvious
chicken-and-egg problem.  However, for a system that is so heavily reliant
on the DNS being stable and secure, it seems wrong not to mention this.


>
>   "S/MIME, or Secure Multipurpose Internet Mail Extensions, is a
>    standard for encryption and signing of MIME data in a message.  This
>    was suggested and considered as a third security protocol for
>    authenticating the source of a message."
>
> I could not understand the relationship between S/MIME and what this
> specification attempts to do.
>

S/MIME can authenticate part of a message and associate it with a user or
role.  DKIM and SPF can do the same.  The relationship seems obvious to
me.  The question will be asked "Why didn't you also include support for
FOOBAR?" and it seemed appropriate to make it clear that we did, even if
the result is that the idea was discarded.


>
>   "It has been suggested in several message authentication efforts that
>    the Sender header field be checked for an identifier of interest, as
>    the standards indicate this as the proper way to indicate a re-
>    mailing of content such as through a mailing list.  Most recently, it
>    was a protocol-level option for DomainKeys, but on evolution to DKIM,
>    this property was removed."
>
> That discussion would be better in a DKIM-related document instead of
> adding it to this draft.
>

I don't agree, because "Use the Sender field!" came up during both the
private and public portions of the evolution of this work.  As with S/MIME,
it seems appropriate to document history rather than repeat it.


>
>   'DMARC has been characterized as a "super-ADSP" of sorts.'
>
> It is not a good idea to include criticism of other protocols in a draft
> that specifies a protocol unless it is relevant to the protocol being
> specified.
>

Just about every BoF that tries to tackle a problem for which prior
attempts have failed includes an analysis of why those prior attempts
failed.  I don't think this is any different, and I think it provides a
fair treatment of the issues with ADSP that have been showstoppers for a
lot of people.


> I suggest dropping the idea of using the "public suffix list" as previous
> attempts to use it have not been successful in the IETF.
>

The revised version makes it clear that we don't like public suffix any
better than the rest of the IETF does, and will be happy to adopt a
replacement solution as soon as there is one.

-MSK