Re: [MLS] Artart early review of draft-ietf-mls-architecture-09

Richard Barnes <rlb@ipv.sx> Wed, 28 September 2022 17:36 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 61E70C152582 for <mls@ietfa.amsl.com>; Wed, 28 Sep 2022 10:36:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.904
X-Spam-Level:
X-Spam-Status: No, score=-1.904 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, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=ipv-sx.20210112.gappssmtp.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uEIxzHRG-oCM for <mls@ietfa.amsl.com>; Wed, 28 Sep 2022 10:36:52 -0700 (PDT)
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 83620C14CF10 for <mls@ietf.org>; Wed, 28 Sep 2022 10:36:52 -0700 (PDT)
Received: by mail-lf1-x12c.google.com with SMTP id a8so21402402lff.13 for <mls@ietf.org>; Wed, 28 Sep 2022 10:36:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipv-sx.20210112.gappssmtp.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date; bh=ClPZCLQsVycA8y/qfaVigqpZqq2n2sLzpP4YXaOyofE=; b=cLeaxC9swAzMLb1Grchyv7KtqLqsBPOEktb2eiGF4wpfCIq01Hlf4QopR28jBCBzSL keDGMNL4WWR0qam6mn53Rdga06gU0JecPe/PD1LxcqxElJWqtwkbhrQOz5wzXAqq9F/J StAon3zgJyIYKovoxK1Au+DvF6iCLZwNgYjG0/wCpLUbVZfftyORYOUbTzD2Rhd1cP84 hKqwlgsfh/p5DsC1FQ90wC/LB4HDdKbW0lCUldyX8cQZMNVT4wauLqTV69Bf1vxjiFbU A0sp4mif4e+IjUhnc/fjsGXWCU/uW4qj3YhorpRAzI6vGY+BCmSx5duT14B5tfwrJ8IK BLmg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date; bh=ClPZCLQsVycA8y/qfaVigqpZqq2n2sLzpP4YXaOyofE=; b=Ap/mL3HALRdTszeHvZfXEQnrlU2+8p6/08NUcbsSZA+ES742TCSHOWBGzLVP5cSjma /z05rQ/Z2MA6BVjsetqj0uLsv74nUhrQugL/B2y1x7o0jZOeFmIJgH9h1K2k/f7dHhaU UEEB2pyBSc0XxV5MeMW5721lV5YNPzyrY2+DjJFRWVnheU3+VCbmOSTzsBDYTEVpjk5o grZw8Smd9lIVWSamtiVyl/8tgx2uDQ76ySpTsPMpfDA4/byBpkr4sP/aVob/2LBZBl6A UE0YAYkYlKiyK3rTb0JCnXepSvLh+Ixz0ipWpvi10472MNL8qkJnOkBySIGWUv/52oxq X98g==
X-Gm-Message-State: ACrzQf0iOFoRCE019hx+of87AUBEkEnEeZz5cuJ6WYobrpOFZAm2y6wp 30A+tg6rUpNGT0wodA5Rbv4eN1nhMpcJCjLVKtkxD2q08HIdKQ==
X-Google-Smtp-Source: AMsMyM5GfUzHTwaYiL91bRRm4W1r1DrJiZ6b0qL7E79QTnVd2mCLPtLE/O2cVdWyMT48WsvNhCLKvfbpr1b6Vbltbp8=
X-Received: by 2002:a05:6512:3a96:b0:49a:d292:a518 with SMTP id q22-20020a0565123a9600b0049ad292a518mr13774799lfu.481.1664386609828; Wed, 28 Sep 2022 10:36:49 -0700 (PDT)
MIME-Version: 1.0
References: <166435475290.31147.15265580440001096239@ietfa.amsl.com>
In-Reply-To: <166435475290.31147.15265580440001096239@ietfa.amsl.com>
From: Richard Barnes <rlb@ipv.sx>
Date: Wed, 28 Sep 2022 13:36:39 -0400
Message-ID: <CAL02cgTfFUe_f3+E-W_AQDJSCNDRGgFJHu-5Q--aRg2QJi08NQ@mail.gmail.com>
To: Valery Smyslov <valery@smyslov.net>
Cc: art@ietf.org, draft-ietf-mls-architecture.all@ietf.org, mls@ietf.org
Content-Type: multipart/alternative; boundary="000000000000a5f1be05e9c034bb"
Archived-At: <https://mailarchive.ietf.org/arch/msg/mls/l1yzU1o_S1mQNE9jaFSM5FHxc54>
Subject: Re: [MLS] Artart early review of draft-ietf-mls-architecture-09
X-BeenThere: mls@ietf.org
X-Mailman-Version: 2.1.39
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: Wed, 28 Sep 2022 17:36:56 -0000

Hi Valery,

Thanks for the review. A couple of comments inline (with some trimming)...

On Wed, Sep 28, 2022 at 4:46 AM Valery Smyslov via Datatracker <
noreply@ietf.org> wrote:

> The document is well written and easy to read. However, I believe that the
> architecture part of the document (up too Section 5) is too concise and
> provides only very high level view. I believe the document would benefit if
> more details were provided (e.g the description of double ratchet as the
> cryptographic foundation of the MLS protocol, what is commit message and
> proposal message, etc.)
>

I believe the intent here is that this document is a companion to the
protocol document, i.e., that they should be read together.  So I would be
disinclined to add more detail to the architecture.



> I also think that the part of the document that describes functional
> requirements is not generic enough and is written having the current
> version of
> the MLS protocol in mind (it contains references to the internals of the
> current protocol version, like LeafNode, external_senders, external_pub,
> application_id, required_capabilities, etc., which may change or go away
> in the
> next version). I believe that references to the concrete protocol internals
> should be avoided, or these internals should be explained.
>

Similar comment here.  These documents go together, so the architecture
will be kept up to date with the protocol.


> Issues.
>
> 1. Section 5.10 describes the compatibility with future Versions of MLS. In
> particular it states:
>
>    When multiple versions of MLS
>    are available, the negotiation protocol guarantees that the version
>    agreed upon will be the highest version supported in common by the
> group.
>
> and
>
>    In MLS 1.0, the creator of the group is responsible for selecting the
>    best ciphersuite supported across clients.
>
> I think this is problematic for the clients that join group later.
> Consider the
> situation when a newer version of the protocol is available and some
> clients
> are upgraded, but most are not yet. If the upgraded clients (that support
> both
> versions) form a new group, then they select the highest version of the
> protocol. After that no other clients, that are not yet upgraded (which
> still
> form majority), can join this group. The same situation is with
> ciphersuites
> (and it is unclear what is "the best ciphersuite", how to compare them).
>
> I think there must be an option for the group in situation when all the
> members
> support several protocol versions (or several ciphersuites) to change the
> version (or ciphersite) on the fly (if this is ever possible and doesn't
> lead
> to the degradation of security) if incoming clients don't support the
> currently
> selected ones. This should also include "external joins", probably the
> published information about the group should be constructed in such a way
> that
> clients having different capabilities may read it.
>
> I understand that this would complicate the protocol, but otherwise its
> usability would suffer.
>

I think the mechanics you're looking for are already in the protocol.  The
Capabilities element of the LeafNode describes the supported versions and
ciphersuites for each member of the group, so you can always tell whether
the version/ciphersuite in use is the best one possible.  At the beginning
of the group, this functions as downgrade protection; as the group ages and
clients update to support new things, it can highlight opportunities for
upgrade.  (Upgrade being done with the ReInit mechanism in the protocol.)
All members of the group are aware of these signals and protected from any
intermediary tampering with them.

The latter point is the important one: The protection against downgrade
here is against *intermediaries*, not group members.  The notion of "best"
is up to the application (just as for say TLS servers), thus so is the
selection of ciphersuites among those available and the timing of upgrades.

In other words, the protocol has already done all it can do.


2. Section 5.1 describes membership changes. In particular, it states (at
> least
> as I read it), that there is no way for a member to unilaterally leave the
> group; they must be removed by a remaining member.
>
> I find this limitation very frustrating. I believe, that any member should
> always have a possibility to leave the group, otherwise the group starts
> looking like a sect - one may freely enter, but can never leave at their
> will,
> unless authorised by other members. In my understanding this limitation
> follows
> from the cryptographic construction of the MLS protocol. If this is the
> case,
> then more recommendations should be given how the applications can deal
> with
> this limitation, so that users retain the right to leave - e.g. drop all
> incoming messages, don't send updates etc. Of course these are all protocol
> hacks...
>

This limitation is frustrating, but it's a consequence of the
cryptography.  Not impossible, but very expensive.

There is a PR open to provide more guidance in the protocol spec for
leavers: https://github.com/mlswg/mls-protocol/pull/736


3. It is not clear from the document (at least for me), whether the type of
> DS
> (Strongly Consistent or Eventually Consistent) is tied to the the clients
> that
> use it. It is clear that clients behave differently with different types
> of DS.
> But the described architecture is highly flexible and can accommodate
> different
> types of DS. My question - can the type of DS change for the existing group
> (e.g. the operator upgrades the DS software and the new version provides
> different capabilities)? In this case all the clients should be able to
> learn
> the current type of DS and should always support both types.
>

IMO these are all application design questions, to be addressed in the
context of designing a specific DS/MLS integration.


>
> Nits.
>
> 1. There must not be references in an abstract. I would also recommend to
> make
> the abstract shorter (as per IESG recommendations, that an abstract should
> be
> one or two paras in length).
>
> 2. The document contains BCP14 words, but doesn't contain references to RFC
> 2119 and 8174. In addition, the document contains several instances of the
> word
> "*RECOMMENDATION:*". I believe the uppercase words are reserved for BCP14,
> but
> this is not BCP14 word. I think it would be better to explain this word in
> the
> newly added section (in particular, what is the part of the system these
> recommendations should be applied to). In addition there are both
> "*RECOMMENDATION:*" and "** RECOMMENDATION:**". Is it just a typo or does
> double asterisks make the recommendation stronger?
>
> 3. Section 4.2 is a bit inconsistent with Section 6 with regard to the
> message
> delivery only to specific clients. The former mentions Welcome message as
> an example of this necessity (so I assume that some other messages can
> also be
> delivered only to specific clients), while the latter mentions only Welcome
> messages, with no "e.g." (so I assume that only these messages can be
> delivered
> only to specific clients).
>
> 4. There are two "Informative References" sections - 8 and 10.2. I suggest
> to
> move all the content of Section 8 to Section 10.2 (and also change
> appearance
> to [XXXX]).
>
> 5. Section 7.1 states:
>
>    Any secure channel can be used as a transport layer to protect MLS
>    messages such as QUIC, TLS, WireGuard or TOR.
>
> I read this as a requirement that only secure transport protocols may be
> used
> for MLS messages. However, later in this section there are assumptions that
> insecure transport may also be used (although not recommended). I think
> this is
> inconsistent - if only secure transport are allowed, then there is no
> point to
> discuss using of insecure one (other than providing some reasoning for the
> requirement).
>
>
>
> _______________________________________________
> MLS mailing list
> MLS@ietf.org
> https://www.ietf.org/mailman/listinfo/mls
>