Re: [MLS] *re*joining a group with the same identity key
"Katriel Cohn-Gordon" <me@katriel.co.uk> Fri, 27 July 2018 10:35 UTC
Return-Path: <me@katriel.co.uk>
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 7D9D2130F09 for <mls@ietfa.amsl.com>; Fri, 27 Jul 2018 03:35:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.72
X-Spam-Level:
X-Spam-Status: No, score=-2.72 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] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=katriel.co.uk header.b=PjD4nB12; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=gv3Oapp2
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 YWatAQaaJTAh for <mls@ietfa.amsl.com>; Fri, 27 Jul 2018 03:35:06 -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 D3010130F1F for <mls@ietf.org>; Fri, 27 Jul 2018 03:35:05 -0700 (PDT)
Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 482A021EC1 for <mls@ietf.org>; Fri, 27 Jul 2018 06:35:05 -0400 (EDT)
Received: from web4 ([10.202.2.214]) by compute6.internal (MEProxy); Fri, 27 Jul 2018 06:35:05 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=katriel.co.uk; 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=mesmtp; bh=KKJUhi9xBSvKvr44G+0cG2bo9B AZxmWjQ0X6M8x/NzM=; b=PjD4nB12XkcWlL+uVxf5Wu6k2LW8s2aJETG2/5AVPB /867oEikE33Sl0Ull7SnGmu+mbVjgHCCLzCu/YX14n2AH+jjnEhVIttLIXo2Gg83 1fdj8j89ZxJOmKvYHzVOt74PSb58dpBOGhCK6katJcnvIDWfOAfPEnw14OXc+8mi I=
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=fm3; bh=KKJUhi 9xBSvKvr44G+0cG2bo9BAZxmWjQ0X6M8x/NzM=; b=gv3Oapp2uPTAruYMWW6ji9 0sZEOwa1UA9yAyeSnYL4Z7M6oW4aNT0PMwVmI8EoMyMuRDwSTfMq+4maivHx4NQY BUsZO5a/ru6n7GM/x5HXSiEFDENxCRmDZ4xqfEn8K8XBNnn/w+VGOCGbBdD7WRAZ ZyQAWjQYjoF/BH946ffVBCplbmOHR/qioNPlR/Eo8bYvRQzGBCzrf1P2zo2fGVqp PS25BUPrU3tLNVSz5+aNFISeKW1tJ4lw1SQjxN8Znj9tYAILrwkYpFlee2TF/qqu Fc/0X48gSt7sgN/Ls5X35WUb3cz/0+52t7B5Jxgr1nMx/uOtOoLrV+ZxT2bVKObA ==
X-ME-Proxy: <xmx:WPVaW_6_gnMqkG8DYBRkdqFgXxYwCXPhNMjnz_QvwonSPnteL1NwSg> <xmx:WPVaW91wGNPer3UwVsF7ri3Uws3TXlok24JRnF6XTCZCNFNGbvvKfQ> <xmx:WPVaW4aHIiYiKVfACM5Tz6VpGxfWEZgWWSsIuAhAcwj0OBeK0TmqCg> <xmx:WPVaW9DKkkH9Al42W6rnfT7fFnrGkiq8EHmR6WEp2XFVz577TFidzQ> <xmx:WPVaWy8ySdc5ti9bP29BVHIRzeFFbNSCQW4aLNaA060Q1gBK8JctMg> <xmx:WfVaW4HbDv9fWLMGx3FlrL0gAHDm_ztBEeL7Dym_sXGgmDEKZiqdLQ>
X-ME-Sender: <xms:WPVaW_S142w1SaaNLckb_TJfS0iayydKm0sj3F6KmsosycuXNWShQw>
Received: by mailuser.nyi.internal (Postfix, from userid 99) id C0A2EBA50C; Fri, 27 Jul 2018 06:35:04 -0400 (EDT)
Message-Id: <1532687704.3670264.1454705888.2DC75109@webmail.messagingengine.com>
From: Katriel Cohn-Gordon <me@katriel.co.uk>
To: mls@ietf.org
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: multipart/alternative; boundary="_----------=_153268770436702640"
X-Mailer: MessagingEngine.com Webmail Interface - ajax-0843ff3e
Date: Fri, 27 Jul 2018 11:35:04 +0100
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> <CA+9kkMAdNLVCC4q_8xfKBrNcBnwWFxZ1pPVByq3xJsm6b3wEwQ@mail.gmail.com>
In-Reply-To: <CA+9kkMAdNLVCC4q_8xfKBrNcBnwWFxZ1pPVByq3xJsm6b3wEwQ@mail.gmail.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/mls/PoEC9OkOqLZUF4nJLq4g1nYBet8>
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: Fri, 27 Jul 2018 10:35:11 -0000
One thing to be clear about: all of these "rejoin"-style operations break post-compromise security in some way, because they allow an actor who knows long-term keys but not the current state to become a full- fledged group member. That's not to say we shouldn't support them, of course (it's no good building a secure protocol that doesn't work), just that we should be careful about when they can happen. I think it's also important to make sure they're clearly differentiated from normal operations, so that applications can disallow them or show warnings. k On Thu, 26 Jul 2018, at 5:43 PM, Ted Hardie wrote: > 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 >> > _________________________________________________ > MLS mailing list > MLS@ietf.org > https://www.ietf.org/mailman/listinfo/mls
- [MLS] *re*joining a group with the same identity … Katriel Cohn-Gordon
- Re: [MLS] *re*joining a group with the same ident… Jon Millican
- Re: [MLS] *re*joining a group with the same ident… Dennis Jackson
- Re: [MLS] *re*joining a group with the same ident… Richard Barnes
- Re: [MLS] *re*joining a group with the same ident… Peter Saint-Andre
- Re: [MLS] *re*joining a group with the same ident… Ted Hardie
- Re: [MLS] *re*joining a group with the same ident… Katriel Cohn-Gordon
- Re: [MLS] *re*joining a group with the same ident… Richard Barnes
- Re: [MLS] *re*joining a group with the same ident… Dennis Jackson