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

Brandon Long <blong@fiction.net> Mon, 14 August 2017 19:42 UTC

Return-Path: <blong@fiction.net>
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 39E211323D4 for <dmarc@ietfa.amsl.com>; Mon, 14 Aug 2017 12:42:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.5
X-Spam-Level:
X-Spam-Status: No, score=-1.5 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_NONE=-0.0001, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fiction.net
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 zQPfpwhGSdJM for <dmarc@ietfa.amsl.com>; Mon, 14 Aug 2017 12:42:35 -0700 (PDT)
Received: from mail-ua0-x22f.google.com (mail-ua0-x22f.google.com [IPv6:2607:f8b0:400c:c08::22f]) (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 96E661323A6 for <dmarc@ietf.org>; Mon, 14 Aug 2017 12:42:35 -0700 (PDT)
Received: by mail-ua0-x22f.google.com with SMTP id d29so40554408uai.2 for <dmarc@ietf.org>; Mon, 14 Aug 2017 12:42:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fiction.net; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=LW09ipMZfRTdsg4yCZAjJBYUd46yBLd5vzdkAC9AGcU=; b=bHJIBIHTloW1MXx512DZQqD9PA9oczDM9PN1GFhgKTna1ZsVlnTypyBoS6zMuYSIBB zVWP1nFCIF3+ay5rJGUVCenQvAwLF4JPyruqIzfCfOEfiZ3m/MpeqCMTeFiavkiiLqJv 3wVpcsY5zHGxQLc5gWdVr6Wr1ZIDxLZvrvDjgMp9XkTrSc18q2av5+VbtzqMFSX/PIeK zU98vHVEidfyD17sQXqtWY6qPx0gYf8itaigNGSTGEBNDcvvaUEJ1NGaBUmdmaDUEImz O4C/DF5eEPURa3L1PSfQ5NTo8BH71ZkACmRFp/FSkYlTlj4CoO5Sej8uyvULtGILH1vD eQVg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=LW09ipMZfRTdsg4yCZAjJBYUd46yBLd5vzdkAC9AGcU=; b=jIeg/oUSZT8Fug753OHPtkqvIyRQ32M+3opBYzMKtbB90gMtp6RYxtRmpprUMLYrjK MUd+gVKdDzceXqxcfQt1LugMjhRi5AJiGPLhn9t3hb41+dneejUvjJusJsKYOtvD3fLY hSEmrHuBlb5FvNDsUAclzAeH6enTRKt/4iB+yRw/V90qcSi9oHriy6fZHoVwcG+MkszY 5f6jLq3Da+vTljPNylXyePdoOaq5JnASdcNu+ad/t4AUwINjXhabdF30orCiKYevJcIG wWzsOg2hib7PNri8enkmLZmgzmXh8xF7Ub48qT9vgXgQrOx7BJ1ru3kMnLl/jlR5wNHu 7R5w==
X-Gm-Message-State: AHYfb5hSQEPNKD7MBIYJ0Q63Yj/TdnKi/75psVcVdWBsEOVl2PW3t8bL Ulh/IQP1IIgJiiepWN5CtQ==
X-Received: by 10.176.76.33 with SMTP id l33mr19007442uaf.4.1502739754602; Mon, 14 Aug 2017 12:42:34 -0700 (PDT)
Received: from mail-ua0-f181.google.com (mail-ua0-f181.google.com. [209.85.217.181]) by smtp.gmail.com with ESMTPSA id d26sm2009877uaa.49.2017.08.14.12.42.33 for <dmarc@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 14 Aug 2017 12:42:33 -0700 (PDT)
Received: by mail-ua0-f181.google.com with SMTP id y36so844080uac.5 for <dmarc@ietf.org>; Mon, 14 Aug 2017 12:42:33 -0700 (PDT)
X-Received: by 10.176.26.155 with SMTP id j27mr18445321uai.45.1502739752761; Mon, 14 Aug 2017 12:42:32 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.103.135.139 with HTTP; Mon, 14 Aug 2017 12:42:32 -0700 (PDT)
In-Reply-To: <1502495646.4099176.1070896040.2B09B1F8@webmail.messagingengine.com>
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>
From: Brandon Long <blong@fiction.net>
Date: Mon, 14 Aug 2017 12:42:32 -0700
X-Gmail-Original-Message-ID: <CABa8R6uV=4Cc47zHtZtA-0WFVhuEYPAr3NTswzvF4H21tjfWTw@mail.gmail.com>
Message-ID: <CABa8R6uV=4Cc47zHtZtA-0WFVhuEYPAr3NTswzvF4H21tjfWTw@mail.gmail.com>
To: Bron Gondwana <brong@fastmailteam.com>
Cc: "dmarc@ietf.org" <dmarc@ietf.org>
Content-Type: multipart/alternative; boundary="f403045f280a27e5b20556bbdd81"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dmarc/UsoyuBZcDWNZvQx4y9L35bDyr6A>
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: Mon, 14 Aug 2017 19:42:38 -0000

On Fri, Aug 11, 2017 at 4:54 PM, Bron Gondwana <brong@fastmailteam.com>
wrote:

> On Sat, 12 Aug 2017, at 03:22, Dave Crocker wrote:
>
> I'm just picking out the key quote here:
>
> On 8/7/2017 4:22 PM, Seth Blank wrote:
>
> When validating an ARC signed message, one verifies the latest AMS
> (which must validate), and *the entire chain* of ARC Seals, not only
> the latest. This guarantees you a list of all message signatories -
> the chain of custody we're talking about.
>
>
> Yes, I follow this bit, but then...
>
> When evaluating the chain for final receipt, there are two states to
> worry about as a matter of local policy: 1) you trust all the
> signatories on the chain 2) there is an untrusted signatory on the
> chain
>
>
> Which is why it's a bad idea to sign if you're not modifying, because then
> everybody has to trust you or their chain breaks, even though you didn't do
> anything which required signing.
>

This is an interesting point.

If there is a non-participating intermediary, either the message wasn't
modified (so the next hop passes arc) or it was (and the next hop fails the
whole chain).

If you are participating, the fact that you didn't modify the message is
lost when the message is modified down the chain.

This is a clearly worse scenario for participation, due to the lack of
information that is passed forward in the chain.

We would need to include more information in the chain in order to overcome
this, some information from hop N about which previous hop was the last
modifying hop.

[snip]

> The critical thing about the ARC Seal is that it guarantees this
>
> behavior in state #1 - if you trust all the d= values in the ARC
> Seals, they all validate, and you have cv=pass, then you know for
> certain everyone who has manipulated the message (and maybe some who
> handled but did not modify).
>
>
> In state #1, you don't need a chain of ARC Seal.  You just need each site
> to sign their own AAR and each AAR to include "arc=pass" for the previous
> AMS.  You trust the sites, so you trust them to verify the ARC status on
> ingress.
>
> So ARC Seal isn't adding anything other than complexity.  I'm not saying
> "ARC Seal doesn't work in case #1" - I'm saying "ARC Seal is security
> theater in state #1".  It's overly complex and adding no value.
>

If a message goes through two modifying hops, then there is no utility in
the AMS/AAR from the first hop, because it no longer verifies.

At that point, you only ever have the AMS/AAR from the last modifying hop,
which is exactly what we had with XOAR (or at least the Google
implementation).

The Google implementation was basically X-Google-DKIM-Signature as the AMS
and X-Original-Authentication-Results as the AAR.

Theoretically, the second modifying hop could include information from the
preceding AAR in it's AAR, and maybe that transitive trust (I trust hop 2,
which trusts hop 1, so I have to trust hop 1) is ok, because by trusting
hop 2, they could have completely replaced the message.  This wasn't done
with XOAR.

There would be no point in including multiple AMS/AAR headers, why bother
keeping the non-verifiable ones.  Or maybe, you just get rid of the AMS and
keep the AAR and have your AMS sign over all of the existing AAR records.

Brandon