Re: [MLS] *re*joining a group with the same identity key

Ted Hardie <ted.ietf@gmail.com> Thu, 26 July 2018 16:43 UTC

Return-Path: <ted.ietf@gmail.com>
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 15B4713123D for <mls@ietfa.amsl.com>; Thu, 26 Jul 2018 09:43:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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=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 rDCsaM144zWW for <mls@ietfa.amsl.com>; Thu, 26 Jul 2018 09:43:47 -0700 (PDT)
Received: from mail-oi0-x230.google.com (mail-oi0-x230.google.com [IPv6:2607:f8b0:4003:c06::230]) (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 04FEB131261 for <mls@ietf.org>; Thu, 26 Jul 2018 09:43:47 -0700 (PDT)
Received: by mail-oi0-x230.google.com with SMTP id k81-v6so4106112oib.4 for <mls@ietf.org>; Thu, 26 Jul 2018 09:43:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=k2kExsA2c7HBH2SudWDqSRxVGTmOCiQfTDVqMeesAeA=; b=i1H5wFXKhaenlQp7UPo9PMMxMQfCDc9xuuw4rX7ZHNSv+TtlxSZksfkpQACK1I5RVE h/rT0qAbu+38biMDc8O4TWSlikxEo7bAxUOweXpP1HCicrOmryswpcIPwRvHWOHGcl66 0DKoVJo35ChTGV8BmAqtV4TZ03t2yNIQZ3sF3d6wXzl4ChBS962OJcsjWDAbSqHFWEwl k9lNe/9hyTG9mFDoyCRUQ7PUGzFFyQ0t0WgyZekv/4/vdERdgGLM3YYJXkPBz+wV5CwR SgQcV0u2VBFWoCkpg5WUT4YZJB42WLwZuyJ3zkMd8mSA1OVEDWU+9MpI+HE+L8TtEZmJ NoMQ==
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=k2kExsA2c7HBH2SudWDqSRxVGTmOCiQfTDVqMeesAeA=; b=iKUNo/ZoWmdRuKHy8q3XvkyjPjmPRLZteKT5rhKMhvoevyY8y49W5oVFRfQYhO02Ts ghNkEV5WWf1xMQ6LLjkbwnK2Sp9ZB+0K6qKhdg9n/8jKL890IJaFooMlxufGo99RYea7 WmgpE84yoRN/FUQqUSg8lrY8S+aswAeTUZ55le4ZjPHlVk1RygDHO1YkZqDsue/p6HfM MdSPVzdGIVeReMpXIsicuYqWKEaM7Z8Q5RIxonXV3K/XdzZvVXi8m1qQH6TYQEhWeUPN E4qprRVl14Vk7dJ34nJ2nbCbkliTOVZPGDBNT749KhGoxlZx5s7erQ1G9j+qzw+vfuyd BXNA==
X-Gm-Message-State: AOUpUlENUNnVNcg3csGH+1FjjIKu4LrIFOBtREwN6kzJRubvrxQuzaGb YNsSjx67idXhupkA49cWOklA1sk0RhKBbMGsPaY=
X-Google-Smtp-Source: AAOMgpdcBc1plTElgR6ehMIfZrQ7vnkAN6UftEg7zB6Q0nyuKSW8xpdrPt98XMz4+gYOeG/slsygQZQbqatgp3Qdt/g=
X-Received: by 2002:aca:190d:: with SMTP id l13-v6mr2931864oii.216.1532623426031; Thu, 26 Jul 2018 09:43:46 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a4a:66d9:0:0:0:0:0 with HTTP; Thu, 26 Jul 2018 09:43:15 -0700 (PDT)
In-Reply-To: <CAL02cgRG4gXr2BfQjoUSymMk9qGQxNCV0+FQWBZjuuAcj9g+hw@mail.gmail.com>
References: <1532516469.3570686.1452294728.424CDA78@webmail.messagingengine.com> <2046EE4E-2F25-4E89-8844-0EDAAABA2A38@fb.com> <20180725125830.6af30662@T-200> <CAL02cgRG4gXr2BfQjoUSymMk9qGQxNCV0+FQWBZjuuAcj9g+hw@mail.gmail.com>
From: Ted Hardie <ted.ietf@gmail.com>
Date: Thu, 26 Jul 2018 09:43:15 -0700
Message-ID: <CA+9kkMAdNLVCC4q_8xfKBrNcBnwWFxZ1pPVByq3xJsm6b3wEwQ@mail.gmail.com>
To: Richard Barnes <rlb@ipv.sx>
Cc: dennis.jackson@cs.ox.ac.uk, mls@ietf.org
Content-Type: multipart/alternative; boundary="000000000000e214f00571e9b284"
Archived-At: <https://mailarchive.ietf.org/arch/msg/mls/OoARn5WH8p5PYy40MyBHblmEBto>
Subject: Re: [MLS] *re*joining a group with the same identity key
X-BeenThere: mls@ietf.org
X-Mailman-Version: 2.1.27
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: Thu, 26 Jul 2018 16:44:00 -0000

On Thu, Jul 26, 2018 at 8:42 AM, Richard Barnes <rlb@ipv.sx> wrote:

> I actually expect this to be a not-uncommon case.  Two use cases
> immediately come to mind:
>
> 1. New devices in an application where identity keys are sync'ed among
> devices
> 2. Participants who have lost state and need to re-sync.
>
> On account of (1), I had been thinking that the mapping between members /
> leaves in the tree and identity keys would not be one-to-one, but
> many-to-one.  Are folks thinking that there would be technical problems /
> ambiguities in such a case?  None are coming to my mind.
>
>
I think there is an ambiguity, but it is fairly easy to resolve.  There are
cases where a participant attempting to add themselves with the same
identity to an existing group is implicitly replacing their previous
connection.  Katriel called that out as:  "Perhaps the simplest is to allow
the device to double-join but require it to immediately delete the old copy
of itself."  There are others where this is a true add-a new device that
should also receive communication.  I think the fix here is to replace
"require it to immediately delete" with "allow it to immediately delete";
that seems to support both use cases and make the decision about which is
in use explicit and in the user's control.

Ted




> It does seem worth thinking about the re-sync case (2), i.e., the case
> where a participant has most of his state.  If he's forgotten everything
> besides his identity private key (or including the identity private key), I
> don't think there's much you can do but treat him like a new participant.
> If he remembers his position in the tree, it seems like you could do a
> "re-sync" transaction that's like an add, but for that position in the tree
> -- it's the same logic as an add, except instead of the frontier, you send
> the copath for that position; for other nodes, it just looks like an Update
> at that position.
>
> (Aside: This reinforces that we really only have 1.2 operations here:
> Update + handle-update-at-edge + encrypt-leaf-secret)
>
> It also seems like if we can solve the "re-sync a member with lost state"
> problem, then we can probably also solve the "heal a network partition"
> problem that Dennis raises.  Assuming we can choose a winning partition and
> appoint someone to do the merge, the person doing the merge can just
> re-initialize the losing members to their point in the tree, as if they had
> lost their state.
>
> --Richard
>
>
> On Wed, Jul 25, 2018 at 7:59 AM Dennis Jackson <dennis.jackson@cs.ox.ac.uk>
> wrote:
>
>> me@katriel.co.uk<mailto:me@katriel.co.uk> wrote:
>>
>> > The simple answer is to forbid such joins, but this might happen if a
>> > device forgets its group state but remembers its identity key.
>>
>> Depending on how MLS specifies update operations, this could also
>> happen if there was a network partition and some group members see a
>> different order of key updates. Even if we assume the existence of a
>> delivery service which can provide a linear order for key update
>> messages, the attacker will be allowed to compromise the server and
>> violate this property. Consequently, some participants will have
>> differing views of the group key and need to converge.
>>
>> In both cases we have a long term key, already in the group, with bad
>> local state. I think we need a recovery mechanism for this other than
>> just starting a new group or allowing a rejoin since that would allow
>> an attacker with only knowledge of a long term key to join a previously
>> secure group.
>>
>> We could mitigate this by proving knowledge of some recent state: a
>> device which knew the group key five minutes ago is more trustworthy
>> than one which doesn’t know any group state. It’s an application-layer
>> decision to actually figure out what to do in this case, but we could
>> expose a way to prove state knowledge (e.g. by deriving a “recovery”
>> key after every update).
>>
>> Best,
>> Dennis
>>
>> On Wed, 25 Jul 2018 11:05:09 +0000
>> Jon Millican <jmillican@fb.com> wrote:
>>
>> > One potential option that comes to mind is for the server to help it
>> > reinsert itself in the correct place. This would essentially amount
>> > to a join, but serving its own copath instead of the group’s
>> > frontier. We could then reject somebody double-joining their own
>> > identity key; under the assumption that this could only happen with a
>> > malicious server anyway.
>> >
>> > I don’t have strong feelings about this vs your proposed solution
>> > though. The main benefit would probably be just in terms of keeping
>> > the tree cleaner and minimising remove operations that need to be
>> > done.
>> >
>> > Jon
>> >
>> > On 25/07/2018, 12:01, "MLS on behalf of Katriel Cohn-Gordon"
>> > <mls-bounces@ietf.org<mailto:mls-bounces@ietf.org> on behalf of
>> > me@katriel.co.uk<mailto:me@katriel.co.uk>> wrote:
>> >
>> > Hi all,
>> >
>> > Here'a s case we might want to think about: what should happen if a
>> > current member of a group asks to join, with the same long-term key
>> > that they're already joined with?
>> >
>> > The simple answer is to forbid such joins, but this might happen if a
>> > device forgets its group state but remembers its identity key.
>> > (Perhaps it writes the group state to a local database and the write
>> > got corrupted.)
>> >
>> > Alternatively I see a handful of different ways we could support
>> > these joins, if we wanted to. Perhaps the simplest is to allow the
>> > device to double-join but require it to immediately delete the old
>> > copy of itself.
>> >
>> > best,
>> > k
>> >
>>
>>
>>
>> --
>> PGP Fingerprint: 5B93 F0B9 D6A8 9BC1 546B C98C 6105 A775 8CD2 46AC
>> _______________________________________________
>> 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
>
>