Re: [MLS] protections for MLS "handshake" messages

Richard Barnes <rlb@ipv.sx> Fri, 03 August 2018 16:57 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 61E9313104B for <mls@ietfa.amsl.com>; Fri, 3 Aug 2018 09:57:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.908
X-Spam-Level:
X-Spam-Status: No, score=-1.908 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, T_DKIMWL_WL_MED=-0.01, 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 PIUt6nAqF_sh for <mls@ietfa.amsl.com>; Fri, 3 Aug 2018 09:57:23 -0700 (PDT)
Received: from mail-oi0-x22a.google.com (mail-oi0-x22a.google.com [IPv6:2607:f8b0:4003:c06::22a]) (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 8EC5F13104A for <mls@ietf.org>; Fri, 3 Aug 2018 09:57:23 -0700 (PDT)
Received: by mail-oi0-x22a.google.com with SMTP id v8-v6so10990412oie.5 for <mls@ietf.org>; Fri, 03 Aug 2018 09:57:23 -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=NpxCaJmIH4oz5hUAGjFbo5qzOKZD5m6X7VnbpiWmb38=; b=C4vNwKNrAjN5vCESBDarphX/lzpKV/IOFUg5l3UVUh6lcLQBB9pYbXBuoHKJyEeU09 jhXU4ewAYeVU3W5+TFw3bynkqbkXlPC2XsWJjLEWIhv5f9xuJkJlwfNJld61zTEV7RuH Bd+n53dtrdFE0aViLnm9D/5jaDs/uhSJk1Zux5soIYT1N9uIGS9XO8IXOP18lTth47u2 pQCa5/LwurNSy/3LM1EBGbepDk2qWmxAEMDQOleAEAhRxVOCsgiG7CR/+gsgJ+SW0yaI R5tCTcNgO6r+FxOCb+czIrCcIfpXkQgRTtQqUtbVdQCVU6B86J7FCb5afTHXALeLUxy3 Wr/Q==
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=NpxCaJmIH4oz5hUAGjFbo5qzOKZD5m6X7VnbpiWmb38=; b=WWRBtv2ixQuj7U/hM2vA9V7zI/WXQ0LCOrEH4CaFplUn5gyByib3p40me3W087G1// dJ6cdEyqzZCpSYDTGkHIqZ3guu8KeUrTMVjmgd7Gw79/I07K8Iu9vUF7tF4AsOOoDLlE SgF4r2haV87zuzmW4Fq4KZwOj91l2zZUi0IGa34r3yzOCLg3AaPkiauSlmjL3RWLX/u3 o+lKp+UXH8z1JLQOZi3DcqBuan7LeBhs4buSlUG6WQDp1OBqMB8VZtKoZJFwtMQEcUjN IJxX+XFLdl1hrO5FS/MUoymDutaNFCZzHcATNU21sHgyUsMjoQAfa4p9JFRdfO8neuD8 9/ww==
X-Gm-Message-State: AOUpUlHlSov62hliPUnK7eZdwRbm9PEIjHq2HLCKUdnaAP+KJmISNM2i 10nEBC1fCeC1m16Mncl55bRA0D+gfh/bjjLIYuGliA==
X-Google-Smtp-Source: AAOMgpfmwnYORxEyqe/LA9vMubAk9eV/BTDMhXz+TKorAVz5HNaQlJF8K5rSDy2npMI5+WGW2wIcWwCzTIM6gI/n5hM=
X-Received: by 2002:aca:4994:: with SMTP id w142-v6mr3760674oia.114.1533315442768; Fri, 03 Aug 2018 09:57:22 -0700 (PDT)
MIME-Version: 1.0
References: <87fu0fxjhi.fsf@fifthhorseman.net> <CABtrr-XWoNyKq4BBrTF9pczHZoB6bJOsxvU=Xgq6x-m4Bdgbhw@mail.gmail.com> <87d0vhwazx.fsf@fifthhorseman.net> <CABcZeBNDYKYTX5+CATyXnpwXszqKkYnxHkDxv-QRtCjBMqYjYw@mail.gmail.com> <CAL02cgTwn=DHMBmM8AiAFw4dnkY_B6w+JskBTiDngantw+=47g@mail.gmail.com> <CABcZeBPP3C6ShWqqaSTiOiauZ=OLTm5JPZtF=9cPJDhLhm-d8w@mail.gmail.com> <87sh49vk1r.fsf@fifthhorseman.net> <CABcZeBPcpcws6rVgdr_0LBitW=761RUecYukA0aRnHnhOk2zZg@mail.gmail.com>
In-Reply-To: <CABcZeBPcpcws6rVgdr_0LBitW=761RUecYukA0aRnHnhOk2zZg@mail.gmail.com>
From: Richard Barnes <rlb@ipv.sx>
Date: Fri, 03 Aug 2018 12:57:11 -0400
Message-ID: <CAL02cgTUE-Ods7tpkpV2T2Y6J0OfA_y_FZG2MhfdL_61XY8vMw@mail.gmail.com>
To: Eric Rescorla <ekr@rtfm.com>
Cc: Daniel Kahn Gillmor <dkg@fifthhorseman.net>, mls@ietf.org, Joseph Lorenzo Hall <joe@cdt.org>
Content-Type: multipart/alternative; boundary="0000000000004b95fa05728ad2dc"
Archived-At: <https://mailarchive.ietf.org/arch/msg/mls/Ok3RqwGfZr1vY_zBKfU1j3A0PmI>
Subject: Re: [MLS] protections for MLS "handshake" messages
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, 03 Aug 2018 16:57:27 -0000

Thinking on this a bit more, it seems like encrypting handshake messages
has some important operational implications.

Encrypting handshake messages implies that nobody who isn't authorized by a
member of the group can authenticate the list of members of the group.
Effectively, handshake message encryption kills UserAdd; the only way to
become a full member of the group is for someone in the group to add you.
On the one hand, I'll grant that this is a nice security property.  On the
other hand, it complicates things for the new-device case, since the new
device can't just join.

Arguably, this is not tragic.  An external party can always encrypt to the
group, as long as it doesn't care about knowing who's in the group.  And
until someone else transmits, the new device isn't missing anything. So you
could do something like the following:

- When new device wants to join, it send the group an AddRequest that
authenticates the new device and establishes a new key shared between it
and the group, without changing the group's state
- The next member to transmit MUST process the AddRequest and transmit
either a GroupAdd or an AddRequestDenied message

With that framework, you could have a similar UX to UserAdd, with the
difference that whatever the new joiner sends before the GroupAdd won't
have an authenticated list of recipients until the GroupAdd shows up.  Once
that arrives, however, the sender will be able to verify who received its
past messages.  (It does seem like it might be desirable to hide the past
membership of the group from current members, but even then, you could
selectively reveal the last generation.)

(It seems like there are some parallels here to DH-based 0xRTT in TLS 1.3,
though the exact analogy is escaping me.)

In any case, I would be interested in feedback from folks with messaging
apps as to whether a scheme like this seems like something that could be
implemented with reasonable UX.

--Richard


On Mon, Jul 23, 2018 at 4:45 PM Eric Rescorla <ekr@rtfm.com> wrote:

> n Mon, Jul 23, 2018 at 12:17 PM, Daniel Kahn Gillmor <
> dkg@fifthhorseman.net> wrote:
>
>> On Mon 2018-07-23 08:49:01 -0700, Eric Rescorla wrote:
>> > - What's with the hate over "handshake" and "application"?  It's the
>> same
>> > distinction that TLS makes.
>>
>
> Hi DKG,
>
> You're quoting Barnes here, not me.
>
> -Ekr
>
> "handshake" is something that implies a meeting or a conversational
>> setup.  here, we're talking about ongoing key updates as well as
>> membership changes.  "handshake" also implies two parties (if there are
>> three-party handshake protocols in the real world, i'm unaware of them).
>> So for both those reasons, i think it's inappropriate for the MLS
>> context.
>>
>> I've also argued already on this list that MLS should be *distancing*
>> itself from TLS, not trying to mimic it.  (I don't even think the name
>> MLS is appropriate, and i think we should change it to something that
>> doesn't sound like TLS)
>>
>> People that want a secure two-party protocol with well-understood
>> security guarantees *should* use TLS, not whatever MLS turns out to be.
>> I definitely want us to *discourage* people from using MLS where TLS
>> would suit their use case better.
>>
>> Let's not try to make these protocols too analogous, lest we confuse
>> people and encourage people to turn TLS into a multi-party scheme.
>>
>>       --dkg
>>
>
>