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

Richard Barnes <rlb@ipv.sx> Mon, 23 July 2018 15:40 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 EF8CD130EDF for <mls@ietfa.amsl.com>; Mon, 23 Jul 2018 08:40:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.909
X-Spam-Level:
X-Spam-Status: No, score=-1.909 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] 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 irksan9CwriM for <mls@ietfa.amsl.com>; Mon, 23 Jul 2018 08:40:42 -0700 (PDT)
Received: from mail-oi0-x22e.google.com (mail-oi0-x22e.google.com [IPv6:2607:f8b0:4003:c06::22e]) (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 A253E130EC6 for <mls@ietf.org>; Mon, 23 Jul 2018 08:40:42 -0700 (PDT)
Received: by mail-oi0-x22e.google.com with SMTP id q11-v6so1882607oic.12 for <mls@ietf.org>; Mon, 23 Jul 2018 08:40:42 -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=0yB7SfHJEYDt8uPPSnp6KpsphHgNb0lMnPRuuKAbsjg=; b=1nIBAwrs33iWpac0zMUOK3EO6va6YTdReGq27MO5H0gEIoYlYtHCet1HmLvGa4DYlL lkBi1//z9kybCvHVKG6d0E9pVqeCl6KjE2Xw66r7VdwbFXQ3P/fRufm+saO7tmCGxEoS w550wD8zEqmFKiRXMvEwEsIgCt8m3YE3IQuKKTYUJ/kfvBEplTT33vxVegMMB1vXQjpQ BzzNAni/NyUEwavCgGQju3uJMkYZV26cPYam/dMa0eMCBFsc1nbRl/A7zg6L/7M+6r6L CfKt6YhzO1hFbZZxC4BMkfvSxdI0FWDhWHQPi4a2lSv0Ta43zVniq2ZS3ucjpDxsAvrK RYIA==
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=0yB7SfHJEYDt8uPPSnp6KpsphHgNb0lMnPRuuKAbsjg=; b=eA/tV47xlXrTc6cs00hsx2LLlKzQZRZsY9X0XCWP6oX3cqJ6svvFAQter8Ai3HfjuO 4i2jLqKU+qvCioSAtTloVMMjx4qk9j7qOg06epkYVNYpKDdPz6LuZHzKet3hw+QRRy7Y vvdU7O6FtHx4IVRyUElZ9VVN1gUVpyoMEiJlQs7kY9G1AuiSUmDkKocZu3IU7CFDjpV6 FrfELJZwuFx+pM+FcyYK6UmkrmlroypjaOeDlTctP7azAQ7O+CqBQ/CNVn7deyvtg3SB UES3jkIrV3kGVoI2HFQiBbEvzQ+gypYpiPUTW+uOkV4p5PNnGht/l1e1ArM5MkpW5bxZ ITFQ==
X-Gm-Message-State: AOUpUlFHBwCKesi01rw5sFyLwfKCvjGH5NxpAWl/zdQWMgu7HL0zKJVC 1Nb9uDtVQebLflpVVO3yZJ8WlMOTB2h+E/GUllJD1ngsWQQ=
X-Google-Smtp-Source: AAOMgpfPJI9M5JtfODOV4LzPMhSiCsp0LRpMeazvKgf8lctX1Yq9/S0sUcN5CcPvMV0dtaXWGD+HjfNiIuKc2RTAvJs=
X-Received: by 2002:aca:ebcc:: with SMTP id j195-v6mr9238219oih.298.1532360441563; Mon, 23 Jul 2018 08:40:41 -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>
In-Reply-To: <CABcZeBNDYKYTX5+CATyXnpwXszqKkYnxHkDxv-QRtCjBMqYjYw@mail.gmail.com>
From: Richard Barnes <rlb@ipv.sx>
Date: Mon, 23 Jul 2018 11:40:29 -0400
Message-ID: <CAL02cgTwn=DHMBmM8AiAFw4dnkY_B6w+JskBTiDngantw+=47g@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="000000000000c9a1880571ac77ed"
Archived-At: <https://mailarchive.ietf.org/arch/msg/mls/2asJWRVbnNlXdA7X5HGjlSwbAdw>
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: Mon, 23 Jul 2018 15:40:45 -0000

On Fri, Jul 20, 2018 at 11:02 PM Eric Rescorla <ekr@rtfm.com> wrote:

>
>
> On Fri, Jul 20, 2018 at 7:58 PM, Daniel Kahn Gillmor <
> dkg@fifthhorseman.net> wrote:
>
>> On Thu 2018-07-19 13:39:16 -0400, Joseph Lorenzo Hall wrote:
>> > On Thu, Jul 19, 2018 at 12:45 PM Daniel Kahn Gillmor
>> > <dkg@fifthhorseman.net> wrote:
>> >>
>> >> In today's session, there seemed to be an open question that wasn't
>> >> explicitly addressed, so i wanted to raise it on the list.
>> >>
>> >> for lack of a better term, we're dividing MLS messages into
>> >> "application" messages and "handshake" messages.  (i think we need
>> >> a better term for "handshake", but i'll use it here for consistency
>> with
>> >> the current discussion)
>> >
>> > What about "content" and "keying" messages as new names?
>>
>> I'm maybe a little reluctant to use "content", because it seems too
>> generic, and too allusive to the elusive "content/metadata" boundary.
>> But i'd be fine with "application" and "keying" as the nomenclature.
>>
>> But I'm more interested in what people think about protecting these
>> messages (or even the distinction between the two categories of message)
>> from the DS itself.  Is there a reason that we need to expose to the DS
>> that keying updates are happening?
>>
>
> I think it would be better if generally we did not.
>

I agree with the inclination here, but I think it's going to be difficult
given some other requirements, especially around UserAdd / new devices
joining without invitation.  For example:

1. MLS needs to operate asynchronously, e.g., allowing a UserAdd / new
device when all other members are offline
2. A new joiner is going to be able to authenticate the membership of the
group before it transmits

If we're going to enable both of those, then we're going to need whatever
information is used for authentication to be cached somewhere that is
reliably online.  And that information can't be encrypted, since you don't
know anything a priori about what new device might show up.

(Note TLS is in a different posture here, since it is (1) online and (2)
two-party.)

Contrapositively, if we're going to have a handshake that the DS can't
read, we're going to need to relax one of the two above requirements
(possibly others; not claiming to be comprehensive).  For example:

A. If you disallow UserAdd and thus require all members of the group to be
added via GroupAdd, then you can encrypt handshake messages just fine.
Even if you need to access them for authentication, you could arrange some
scheme of passing encryption keys to new members.

B. Even with UserAdd, you can make a key-passing scheme work as long as
you're willing to say that new participants can't authenticate the roster
until someone wakes up and sends them the handshake decryption key.  That
would offer new devices the choice of either transmitting without knowing
the roster or waiting to transmit.

I don't really see how you make a reasonable "new device" experience
without UserAdd, so if we're going to make a change here, it will probably
have to be in the vein of (B).

To brief notes to close:

- In case it's not obvious to people, there's no point to padding handshake
messages unless they're encrypted.

- What's with the hate over "handshake" and "application"?  It's the same
distinction that TLS makes.

--Richard


>
> -Ekr
>
>
>>      --dkg
>>
>> _______________________________________________
>> 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
>