Re: [MLS] All commits = external commit?

Richard Barnes <rlb@ipv.sx> Mon, 12 October 2020 20:59 UTC

Return-Path: <rlb@ipv.sx>
X-Original-To: mls@ietfa.amsl.com
Delivered-To: mls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 671213A08C5 for <mls@ietfa.amsl.com>; Mon, 12 Oct 2020 13:59:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level:
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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=ipv-sx.20150623.gappssmtp.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 YiWQGbadPYFq for <mls@ietfa.amsl.com>; Mon, 12 Oct 2020 13:58:58 -0700 (PDT)
Received: from mail-qk1-x735.google.com (mail-qk1-x735.google.com [IPv6:2607:f8b0:4864:20::735]) (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 A308D3A08B9 for <mls@ietf.org>; Mon, 12 Oct 2020 13:58:58 -0700 (PDT)
Received: by mail-qk1-x735.google.com with SMTP id s4so18923349qkf.7 for <mls@ietf.org>; Mon, 12 Oct 2020 13:58:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipv-sx.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=OkRRTL5/l3GaCxDwUePo1y80exGClA2SupRQmJ7pzRU=; b=PuqjdMgqG15dXWdkb1d9qyYPaY/RWrXMbYr51nWBUsG/wXocM0lZ0peMDcZBvOhn75 AUEOF8eA6pJIpFrbw1PUXv1HV266g+FTtQ5ymk5KCvqWK249qFI8PpxbK79RpqsgDRA4 kY9iS8dJ/38LD9mc/VUPg1JArpUf3GvCew2dSnc6KdvZzWIPJZzCmMgZIknD3J1UO6Yv WGiaGrSKuS3v9EOux3KS6WpyrdNAuuLBt8zjka2EeO9viGYyUsHH583wOa4RZ2o1bZiQ 68xthsM8ZrdrrTfCayPjkstm6OyP04p88F3dZcLqqmpEKyMw9lvNOKzO8+PiB4ufEuAj ReKg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=OkRRTL5/l3GaCxDwUePo1y80exGClA2SupRQmJ7pzRU=; b=BbeiL58eZDVcc0muYahg+ng9MCVvGFMgSakvZyYxALzQfjPiJ/fB9/7E6dUygUfnVT kFlApHP5OW/4pqVKzG5TqsmRbzm96t3b7dd2r2zFcuNpLD0sh/0cNJ+mcoUzfm9ahLzm dI6wwSV4j8plkFNwerKyuizdJaHDuTe6oEy4FRPf/a+Lj9xQvDlXDX353lXvsTuS244n 6QJualfIXa8ksJjdps9sD7VH9mTHQTh+wWMhheuTkSRFNt72efA3lkGuuu+HwnQS3hbL EtjUxYgOA/4/C42hfXDYyOeCo8/5j1Pe4JODQgBrPA7b3uuMpkPyeyRIiCedgFlwiGjD /qzw==
X-Gm-Message-State: AOAM530dkoKt22YkVnf0hVRCN+qQ7o3GOwt6qdJKHaY+1pK6OfGQxN0M L5vTBJ//mleh7Vav5YdZU7KoXcF3tWoYmyyiUacZsg==
X-Google-Smtp-Source: ABdhPJxA7bu048D0knjl+QJDtM3ZwIUD8mvqfMeCzrLUf6ELzJdeOhIzqh0eesSXjYxqn1vbDH+9Cmwql1tPELEAANk=
X-Received: by 2002:a05:620a:15b6:: with SMTP id f22mr11721562qkk.490.1602536337318; Mon, 12 Oct 2020 13:58:57 -0700 (PDT)
MIME-Version: 1.0
References: <ceb4e95a-09b7-c4cb-cd8f-50641b605fbf@wickr.com> <7E1C8351-0C05-40F7-86D2-803AFFE5554E@wire.com> <CAL02cgRKF4pfsovTUYRJAO7Of8sDYWEFNjzMdkPq8b0-t_feuw@mail.gmail.com> <CABP-pSSM14WsC-zX41o9Yp76ne_8B1diSfoRjNs2RFbvwV6QCA@mail.gmail.com>
In-Reply-To: <CABP-pSSM14WsC-zX41o9Yp76ne_8B1diSfoRjNs2RFbvwV6QCA@mail.gmail.com>
From: Richard Barnes <rlb@ipv.sx>
Date: Mon, 12 Oct 2020 16:58:40 -0400
Message-ID: <CAL02cgRKMx3WPvj-urR_saQy41Z+x=8-mjx=1Qug06BhK+u8Bw@mail.gmail.com>
To: Brendan McMillion <brendan@cloudflare.com>
Cc: Raphael Robert <raphael=40wire.com@dmarc.ietf.org>, Messaging Layer Security WG <mls@ietf.org>, Joel Alwen <jalwen@wickr.com>
Content-Type: multipart/alternative; boundary="00000000000020410605b17f918f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/mls/81ofq3Bjtc3iPy4_1ukDccoGzss>
Subject: Re: [MLS] All commits = external commit?
X-BeenThere: mls@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Messaging Layer Security <mls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mls>, <mailto:mls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mls/>
List-Post: <mailto:mls@ietf.org>
List-Help: <mailto:mls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mls>, <mailto:mls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 12 Oct 2020 20:59:01 -0000

That's a fair point, Brendan.  The thing that still worries me, though, is
that the KEM operation in an AEC effectively introduces a new independent
variable -- who is the sender for purposes of the KEM operation?  In the
DHKEM case, who holds the private key corresponding to the ephemeral public
key?

In the external-join case, you need this independent variable, so that the
new joiner can join the key schedule.  In the internal-commit case, you
don't need it, so it's purely a source of potential mischief.  It's
possible that other mechanisms protect against such mischief, but (a) we
would need more than mailing-list proofs that that was the case, and (b) we
would need to somehow assure that future extensions to the protocol would
interact badly with this mechanism.  It seems more conservative to not have
the additional choice.

Sorry that's not super concrete.  Maybe some of the folks doing proofs here
have thoughts?

--Richard


On Wed, Oct 7, 2020 at 8:24 PM Brendan McMillion <brendan@cloudflare.com>
wrote:

> Unfortunately the attack outlined above doesn't work because if an
> attacker has Alice's state from a previous epoch and Alice has since
> Updated, they're unable to encrypt MLSCiphertext or authenticate
> MLSPlaintext messages. The attacker could use Alice's signing private key
> to send an Add proposal and Commit, but they'd be marked as being from an
> external sender. There's no distinction between Alice being in the group
> already or the attacker adding Alice to groups she was never in to begin
> with -- this is a risk inherent with allowing external joiners, not the
> asymmetric Commit mechanism itself.
>
> On Wed, Oct 7, 2020 at 8:49 AM Richard Barnes <rlb@ipv.sx> wrote:
>
>> Thanks for this analysis, Joël.  This aligns with my intuition as well,
>> and seems like a good rationale for a hard prohibition on AEC /
>> ExternalCommit from group members.  (Something about which I had waffled in
>> a previous email.)
>>
>> Another way to think about this: PCS with regard to a member is about
>> removing an old version of that member (as represented by an HPKE key and
>> signing key).  AEC is designed to allow joins, which means that
>> AEC-from-inside allows the old, compromised version of the member to
>> rejoin, which kills PCS.
>>
>> --Richard
>>
>> On Tue, Oct 6, 2020 at 12:55 PM Raphael Robert <raphael=
>> 40wire.com@dmarc.ietf.org> wrote:
>>
>>> I second that assessment, my idea behind External Commits was to offer a
>>> mechanism where internal Commits couldn’t be used. External Commits should
>>> remain optional (this can easily be achieved by not providing the
>>> ExternalCommitInfo package to new members) and when they are used they
>>> should be used as a last resort mechanism (meaning there really is no way
>>> to add a member with an internal Commit).
>>>
>>> I also think MLS should should remain in the position to cover most
>>> scenarios from mainstream consumer messaging to messaging in high security
>>> environments. External Commits make the former much more accessible but
>>> shouldn’t jeopardise the latter.
>>>
>>> Raphael
>>>
>>> > On 6 Oct 2020, at 18:38, Joel Alwen <jalwen@wickr.com> wrote:
>>> >
>>> > Hey people,
>>> >
>>> > To follow up on the discussion at the end of the Interim about whether
>>> to use
>>> > the new "asymmetric external commit" (AEC) mechanism for internal
>>> commits I
>>> > wanted to summarize my thoughts here. For brevity let SIC be our
>>> current
>>> > "symmetric internal commit" mechanism.
>>> >
>>> > - AEC requires extra asymmetric crypto operations (both for committer
>>> and
>>> > receiver) compared to SIC which I think we should avoid if we can,
>>> even at the
>>> > cost of some code complexity.
>>> >
>>> > - AEC doesn't ensure the committer knows the old epoch's key schedule.
>>> This can
>>> > play a deciding role in several types of attacks.
>>> >
>>> > Consider this execution:
>>> >
>>> > 1. Alice is in a group. Her state leaks (including her signining key).
>>> > 2. Alice commits (to arbitrary propal).
>>> >
>>> > At this point, the adversary can still forge a new AEC from Alice but
>>> not an SIC.
>>> >
>>> > Worse, step 2 could have instead been "Alice sends an update proposal
>>> replacing
>>> > her leaf HPKE but keeping the her sig keys (e.g. because new
>>> credentials are
>>> > costly to come by). Someone commits to the new proposal." At this
>>> point I'd
>>> > expect PCS to have kicked in for Alice (as it does when using SIC).
>>> But not for
>>> > AECs since Alice's signing key is all thats needed to forge a new AEC.
>>> >
>>> > I think it is not worth weakening security this way if we dont have to.
>>> > (Especially, since in some deployments external commits may not be a
>>> supported
>>> > feature at all.)
>>> >
>>> > - As for what may or may not be displaid to users, that's really up to
>>> the
>>> > implementation. IMO our goal should be to make the protocol as secure
>>> as we can
>>> > subject to reasonable costs. Which aspects of the resulting security
>>> properties
>>> > are ultimately communicated to users should, in principle, be left up
>>> to
>>> > implementations. That means we shouldn't be designing away security
>>> features
>>> > only because we think they might be hard to communicate. (Nor does it
>>> seem that
>>> > inconceivable to me that some implementation may end up explicitly
>>> signaling
>>> > whether a commit was external vs internal.)
>>> >
>>> > - Joël
>>> >
>>> > _______________________________________________
>>> > MLS mailing list
>>> > MLS@ietf.org
>>> > https://www.ietf.org/mailman/listinfo/mls
>>>
>>> _______________________________________________
>>> MLS mailing list
>>> MLS@ietf.org
>>> https://www.ietf.org/mailman/listinfo/mls
>>>
>> _______________________________________________
>> MLS mailing list
>> MLS@ietf.org
>> https://www.ietf.org/mailman/listinfo/mls
>>
>