[MLS] Roman Danyliw's No Objection on draft-ietf-mls-protocol-17: (with COMMENT)

Roman Danyliw via Datatracker <noreply@ietf.org> Tue, 31 January 2023 14:30 UTC

Return-Path: <noreply@ietf.org>
X-Original-To: mls@ietf.org
Delivered-To: mls@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 3C704C14F693; Tue, 31 Jan 2023 06:30:31 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: Roman Danyliw via Datatracker <noreply@ietf.org>
To: The IESG <iesg@ietf.org>
Cc: draft-ietf-mls-protocol@ietf.org, mls-chairs@ietf.org, mls@ietf.org, benjamin.beurdouche@ens.fr, karthikeyan.bhargavan@inria.fr, cas.cremers@cs.ox.ac.uk, alan@wire.com, singuva@twitter.com, kwonal@mit.edu, ekr@rtfm.com, thyla.van.der@merwe.tech, sean@sn3rd.com, sean@sn3rd.com
X-Test-IDTracker: no
X-IETF-IDTracker: 9.6.0
Auto-Submitted: auto-generated
Precedence: bulk
Reply-To: Roman Danyliw <rdd@cert.org>
Message-ID: <167517543123.30783.12152568101815467862@ietfa.amsl.com>
Date: Tue, 31 Jan 2023 06:30:31 -0800
Archived-At: <https://mailarchive.ietf.org/arch/msg/mls/DsPhPpns4Es30_bjUjqVjN1AvpM>
X-Mailman-Approved-At: Tue, 31 Jan 2023 19:08:43 -0800
Subject: [MLS] Roman Danyliw's No Objection on draft-ietf-mls-protocol-17: (with COMMENT)
X-BeenThere: mls@ietf.org
X-Mailman-Version: 2.1.39
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: Tue, 31 Jan 2023 14:30:31 -0000

Roman Danyliw has entered the following ballot position for
draft-ietf-mls-protocol-17: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)


Please refer to https://www.ietf.org/about/groups/iesg/statements/handling-ballot-positions/ 
for more information about how to handle DISCUSS and COMMENT positions.


The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-mls-protocol/



----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

** Section 2.
   Handshake Message:  A PublicMessage or PrivateMessage carrying an MLS
      Proposal or Commit object, as opposed to application data.

This definition of a handshake message is being defined in terms of a Proposal
or Commit object, neither of which are defined in this session.   Furthermore,
PublicMessage or PrivateMessage aren’t defined either as this point in the
text.  To improve clarity, consider defining these key terms.

** Section 2.  Editorial.
   The PublicMessage and PrivateMessage formats are defined in
   Section 6; they represent integrity-protected and confidentiality-
   protected messages, respectively.

The use of “respectively” in the text is suggesting that PrivateMessages don’t
have integrity protection which is not accurate.

** Section 3.1.  Typo. s/the the/the/

** Section 5.1.1.
(see the Cryptographic Dependencies section of
   the HPKE specification for more information).

Is this Section 4 of RFC9180?  If so, why not say that?

** Section 5.3.3.

   However, applications SHOULD NOT rely on the data in an
   application_id extension as if it were authenticated by the
   Authentication Service,

What would be the circumstance where the application_id extension would be
treated with equal standing as something from the AS?  Why can’t this be a
“MUST”?

** Section 12.2.

   A group member creating a commit and a group member processing a
   commit MUST verify that the list of committed proposals is valid
   using one of the following procedures, depending on whether the
   commit is external or not.

Unsaid is what to do if the proposal list is not valid.  Please clarify.

** Section 12.2

   *  It contains multiple Update and/or Remove proposals that apply to
      the same leaf.  If the committer has received multiple such
      proposals they SHOULD prefer any Remove received, or the most
      recent Update if there are no Removes.

Is this normative behavior required, or could it be left up to application? 
The mixing of updates/removes on the same node and the SHOULD guidance already
means that this “recovery from an invalid node” may not be consistent across
clients/DS-es.

Same observation on recovering from ReInit with any other proposals.

** Section 12.4.

   Due to the asynchronous nature of proposals, receivers of a Commit
   SHOULD NOT enforce that all valid proposals sent within the current
   epoch are referenced by the next Commit.  In the event that a valid
   proposal is omitted from the next Commit, and that proposal is still
   valid in the current epoch, the sender of the proposal MAY resend it
   after updating it to reflect the current epoch.

Is there any additional retry mechanism?  Let’s say the sender of the proposal
doesn’t see it reflect in the epoch after it sent proposal.  And then not in
the next epoch.  Does it try resending indefinitely?

** Section 15.1.
   If Alice asks
   Bob "When are we going to the movie?", then the answer "Wednesday"
   could be leaked to an adversary solely by the ciphertext length.

This setup seems a little simplistic.  If the application data is encrypted to
begin with, how does the adversary know the question being posed by Alice?