Re: [MLS] confirming cipher suites decisions

Benjamin Beurdouche <> Thu, 27 February 2020 09:03 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id E38B53A1592 for <>; Thu, 27 Feb 2020 01:03:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id DHvorMuPhzOB for <>; Thu, 27 Feb 2020 01:03:39 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 56F453A1591 for <>; Thu, 27 Feb 2020 01:03:39 -0800 (PST)
X-IronPort-AV: E=Sophos;i="5.70,491,1574118000"; d="scan'208,217,223";a="340571110"
Received: from (HELO []) ([]) by with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Feb 2020 10:03:35 +0100
From: Benjamin Beurdouche <>
Message-Id: <>
Content-Type: multipart/alternative; boundary="Apple-Mail=_EBD010A4-CD13-4383-A64B-C2BF552D3646"
Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.\))
Date: Thu, 27 Feb 2020 10:03:35 +0100
In-Reply-To: <>
Cc: Karthikeyan Bhargavan <>, ML Messaging Layer Security <>
To: Cas Cremers <>, Britta Hale <>, Konrad Kohbrok <>
References: <> <> <> <> <> <> <> <> <> <>
X-Mailer: Apple Mail (2.3608.
Archived-At: <>
Subject: Re: [MLS] confirming cipher suites decisions
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Messaging Layer Security <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 27 Feb 2020 09:03:42 -0000

From the last messages, I think my answer to Cas was misleading…

R1. Joining a group without supporting all the crypto is unacceptable
R2. Allowing a system where clients all advertise the MTI ciphersuite
and where the newcomers cannot join should be unacceptable.

Goal of MLS: we want everybody to be able to build a group and talk securely
to everybody else. No need for security if people can’t create groups because of
algorithm fragmentation.

> On 26 Feb 2020, at 20:37, Karthik Bhargavan < <>> wrote:
> Hello All,
> I think we could go either way: multiple or single signature algorithm per group.
> However, I would prefer if we required *all* the algorithms that group members must support to be declared up-front at group creation.

This is currently the case that “that all the algorithm that group members must support
to be declared at group creation" and it is also the root cause of potential fragmentation.

If the creator takes the responsibility of explicitly picking something else than the MTI ciphersuite
they take the risk explicitly to break interop and break R2, but that is fine.

If we went for the scheme such as picking a list which contains more than the MTI, even at
group creation, *only clients supporting everything* would be allowed to join otherwise breaking R1.

To me this Is unacceptable.
That is why we want to restrict this set to a minimum: in my case to *one* ciphersuite.
The largest set the creator will pick, the more difficult it will be for new member to join the group.

> That is, my preference is not to add new signature algorithms as a group evolves and new members are added.

That was never an option.

> The rationale behind this thinking is that when a member joins a group, she can inspect the group’s parameters to decide whether she supports
> the algorithms needed to converse in the group. It would be weird if the group allowed a new member whose authentication credential or message signatures
> cannot be processed by existing members.

If the newcomer doesn’t support enough, but just the MTI, they may never join which is
unacceptable, as everyone else has to support the MTI, R2.

> And it would be hard to try to dynamically detect the algorithms that the group members support.
> Instead, declaring all *required* algorithms at group creation seems like a sane choice to me.

So again, requiring to support more, is not only a dangerous idea regarding implementations,
but is dangerous for interoperability and fragmentation.

Moreover this new proposal is not solving any of the current problems I have with the multiple
algorithms approach I had in my previous message:

1. agility causes a lot of problems: I don’t think I need to remind people of the TLS story <>

2. interop fragmentation: this is not a two party protocol where membership is set forever.
If a single member does not support one crypto scheme, this member might never be able to join an hybrid group.

3. security: I clearly don’t believe we should assume anything from the security of the protocol
in the case a cryptographic scheme is broken. I don’t want to get to a point where we have horrible downgrade stories
and I would clearly want to kill and restart the entire group

I think fragmentation is my main worry actually, and if we figure out that we were wrong,
adding more agility is likely to be more easy than removing it.

So my intuition is that we should proceed with one signature scheme for the lifetime of the group
and make sure we have a solid story to export and reconstruct a group, which we need anyway.