Re: [dmarc-ietf] ARC-Seal is meaningless security theatre

Bron Gondwana <brong@fastmailteam.com> Sat, 19 August 2017 00:40 UTC

Return-Path: <brong@fastmailteam.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 A8C951323A0 for <dmarc@ietfa.amsl.com>; Fri, 18 Aug 2017 17:40:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.719
X-Spam-Level:
X-Spam-Status: No, score=-2.719 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, 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: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=t4Zzfvi+; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=Tb/Y/Rvb
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 9U51kGJpYt8q for <dmarc@ietfa.amsl.com>; Fri, 18 Aug 2017 17:40:42 -0700 (PDT)
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C7C52132223 for <dmarc@ietf.org>; Fri, 18 Aug 2017 17:40:42 -0700 (PDT)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 3BB5E22169 for <dmarc@ietf.org>; Fri, 18 Aug 2017 20:40:42 -0400 (EDT)
Received: from web4 ([10.202.2.214]) by compute6.internal (MEProxy); Fri, 18 Aug 2017 20:40:42 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=content-transfer-encoding:content-type:date :from:in-reply-to:message-id:mime-version:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=SeZgjiGWJXLJh5aML g4ATAAItC1DlwwlX/bKJC0PG0k=; b=t4Zzfvi+jLgQ0/wNFM0mXwQOFkz7pqQ5s G+eP1mFmxxWqZ+/be6ee9Y+CO68kmIWn5ZQIyj3taNpEKGL8P4n+pB9jAwtU7c5d 4BMWnEz/ocahI8+bvojOqmdWgpIkM8rLH7Z2bfUPe3ogUBITMsiX5JVbWSjRLTNW f7sGkLx67KKNcQkw7niJkT1fx8AGDMXlca1LNRfoJPa5piXuSVKzkB6O/XXtbDz5 G+moAoBYfbFCZXOR+Y4nwAltbRahjbcR//a5y1sTX9u16L7Is9irGLRE2lDPCLo4 IzmR4xI6d2oUsljfXcy25/qdXnRoWIplafUIYfvvJ0PPZeML1UqiQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=SeZgji GWJXLJh5aMLg4ATAAItC1DlwwlX/bKJC0PG0k=; b=Tb/Y/RvbNJexC0G7gnANCp Bk05eGfM5vw3hZkPHXCM5QW/igMY9UYluZDNFmky2ob/fMVEliWxECs1bbBNCuH3 vvQuU8awcG/ON/lI8wjyht3HXg7rU0Vuz/ishLtIhhkU6Ig8f/ZHnIaFEnXwPTJm Ph8hKrPjA08GqMH9yT7OrBmi32iJKZP4EkoB42XWJCXANGcgxSy423xKyFC+Kgia 0XdeJ12Z4z2RhNYj4lmv0juVhxnSpwA3UMkSBA0/+mhtfonc8FMeV+FP5cd6Irda iLaL9bH+vi1oZC0rEiCizpAgjQoYy2mWobR999CcqVK0ATEQUwQgHRr7IidzZqDQ ==
X-ME-Sender: <xms:ComXWS8Hh6auAAWoJ7pQQhBo09Uyhl0cwTw33OsA9t3sh0PWhkVYlA>
Received: by mailuser.nyi.internal (Postfix, from userid 99) id 12C63BAB71; Fri, 18 Aug 2017 20:40:42 -0400 (EDT)
Message-Id: <1503103241.2678549.1078130088.140CD52A@webmail.messagingengine.com>
From: Bron Gondwana <brong@fastmailteam.com>
To: dmarc@ietf.org
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: multipart/alternative; boundary="_----------=_150310324226785490"
X-Mailer: MessagingEngine.com Webmail Interface - ajax-21c69044
Date: Sat, 19 Aug 2017 10:40:41 +1000
References: <1502083287.2191248.1065195288.7CDC7FF3@webmail.messagingengine.com> <CABuGu1oTMbuLd4yTwecu5sKFnsmH+HiwT1FG=JpySYHzpMTx_w@mail.gmail.com> <1502200759.3946686.1066841264.607B4D0B@webmail.messagingengine.com> <2720431.u3G7bbkkxK@kitterma-e6430> <1502317564.1935379.1068588344.040173AF@webmail.messagingengine.com> <a08c7590-ded3-1642-4ffc-07848b3c6cd2@gmail.com> <e14f2130-6f00-4ef1-485b-850a4cc1c48c@gmail.com> <1502495646.4099176.1070896040.2B09B1F8@webmail.messagingengine.com> <166070f0-4ba1-70da-1f73-885b4a7f7640@gmail.com> <1502497178.4103451.1070917304.23DD466D@webmail.messagingengine.com> <598F9484.7020700@isdg.net> <CABuGu1p=oLfLRkuoaDHoz3Cv3_FrURdsFPzkac7jNzBpqBmiSg@mail.gmail.com> <599484FB.9050908@isdg.net> <1502929303.4038704.1075868960.5D80A788@webmail.messagingengine.com> <CAD2i3WN_bmDgmQBw3pnyu7vWJJM2Kzwgru87VhK=NA_H91B+og@mail.gmail.com> <1502930858.4042926.1075890568.5069945B@webmail.messagingengine.com> <CABuGu1ofdkP6Gdsfin6KfpiTJW39gXz8Fa0iAAmXfcvyWGZxdA@mail.gmail.com> <CAD2i3WPuiMw6Gbdw0E+Gh=yNDfNjECMrqLHKPUspq_h6dnpbnA@mail.gmail.com> <CABa8R6u_U8Z5nkPkUMWTg5jWBXKASnq6Z4z+v=nOZr7unKKhuQ@mail.gmail.com>
In-Reply-To: <CABa8R6u_U8Z5nkPkUMWTg5jWBXKASnq6Z4z+v=nOZr7unKKhuQ@mail.gmail.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/dmarc/4qGZZgny_9Z54XXbTRP8Pz_2jr4>
Subject: Re: [dmarc-ietf] ARC-Seal is meaningless security theatre
X-BeenThere: dmarc@ietf.org
X-Mailman-Version: 2.1.22
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, 19 Aug 2017 00:40:46 -0000

On Sat, 19 Aug 2017, at 04:51, Brandon Long wrote:
> 
> 
> On Fri, Aug 18, 2017 at 10:00 AM, Seth Blank
> <seth@sethblank.com> wrote:>> On Thu, Aug 17, 2017 at 11:46 PM, Kurt Andersen
>> <kurta@drkurt.com> wrote:>>> So I was able to retrace our design steps which led to the 3-piece
>>> model (AAR + AMS + AS) and the reasoning for the AS, signing just
>>> the ARC header sequence was to provide the verifiable chain of
>>> custody trace (though, of course, only from participating
>>> intermediaries). Some of the recent tweaks to the spec to deal
>>> with malformed sets of ARC header fields have weakened that
>>> original idea.>>> 
>>> In keeping with Bron's general idea to simplify, I'd suggest that
>>> having an AAR + [optional AMS] + AS would be a close approach for
>>> handling steps which do not break the ingress signature. Skipping
>>> the AMS would be a sign to downstream intermediaries that the prior
>>> DKIM or AMS was still valid upon egress. (certain details would have
>>> to be worked out)>>> 
>>> Does that help the conversation?
>> 
>> 
>> No, I think this is a huge step in the wrong direction.
>> 
>> Right now, we've got deployed code that we know works and improves
>> the landscape. Everything else is - rightly or wrongly - conjecture.>> 
>> Let's keep the tech stable and move to experimentation.
>> 
>> If anything, this is an excellent question for receivers - when
>> evaluating AMS/AS, were there any situations where you required both
>> signatures to truly validate a chain and make a delivery decision, or
>> with the added ARC payload is now just having one sufficient?> 
> I'm leary that removing the AMS on certain hops is the right choice,
> here.  Without the AMS, the extra AAR/AS is not tied to this message
> directly, so I'm unsure how to handle any assertions made in the AAR.
> This also feels like the opposite of what Bron is asking for.
I think I agree with you here - that keeping AS but breaking old ones by
removing AMS is the opposite of useful.
> I also proposed a month or so back some simplifying changes which were
> largely met with radio silence, that would have partially mitigated
> some of Bron's operational concerns, notably to either require the s/d
> be the same on AS/AMS or to eliminate the signature and s/d on AMS
> completely, switching the AMS to a hash that would then be covered by
> the AS.  That doesn't reduce the number of crypto ops as much as his
> AMS only based proposal (which presumably would halt at the first
> broken AMS).
Before I joined - maybe I should read back further!  This makes sense to
me, certainly two separate signatures (AS and AMS) is wasteful and
meaningless.  Which one the signature actually sits on doesn't matter at
all from a topological viewpoint, only what the signature covers
matters.  A signature on the AS which signed an AMS-like header that was
just a hash over the content would be fine.  Having the AMS-like header
calculated in such a way that if a site didn't modify the content of the
message, it also didn't modify the AMS hash would be super fine.
As a matter of fact, I really like this.  An AMS that doesn't have a
signature, but covers the content in a repeatably defined way, and
possibly even a way that can adapt to minor changes (changing from
address, stripping or adding MIME parts, etc) such that modifiers could
modify in a way that allowed provenance of the bulk of the message
payload to be tracked through them.  Being able to assert "I only
modified the message in these ways" in a way that could be verified
would be fantastic as an intermediate - and it would stop me doing what
I did in my last email and completely faking a valid ARC chain on a fake
message from Brandon.  I could only modify the message in limited ways
without tipping my hand.
> Another option would be to change our expectations, that is to say
> that signing by non-modifying hops is optional.
For sure.  Either changing ARC so that non-modifying hops sign but don't
change the AMS-like hash (so it's clear they didn't modify), or saying
that signing by non-modifying hops is at least a SHOULD NOT.
My goal with everything that I'm suggesting is to increase the ability
to determine provenance of the message payload.  The mail flow itself is
always going to be easily faked.[1]
DKIM doesn't assert anything about mail flow - you can receive a DKIM-
signed message and regardless of the route it's traveled, you know that
the payload was unmodified since it left the jurisdiction which had
access to the private key for its signing domain.
ARC as currently defined is weak on maintaining provenance on the
payload.  But provenance on the payload is what really matters, because
falsifying the payload is where attacks against email integrity get
their value.
Bron.

[1] footnote on this - I have alluded to crypto header rewriting such
    that you can't rewind.  I'll write a separate email on that topic.
--
  Bron Gondwana, CEO, FastMail Pty Ltd
  brong@fastmailteam.com