[MLS] Re: -02 DMLS Draft

"Mularczyk, Marta" <mulmarta@amazon.ch> Tue, 28 October 2025 15:47 UTC

Return-Path: <prvs=389e72fec=mulmarta@amazon.ch>
X-Original-To: mls@mail2.ietf.org
Delivered-To: mls@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id D92117D81A55 for <mls@mail2.ietf.org>; Tue, 28 Oct 2025 08:47:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.085
X-Spam-Level:
X-Spam-Status: No, score=-2.085 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=amazon.ch
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yEJ63k-rWq0h for <mls@mail2.ietf.org>; Tue, 28 Oct 2025 08:47:52 -0700 (PDT)
Received: from fra-out-006.esa.eu-central-1.outbound.mail-perimeter.amazon.com (fra-out-006.esa.eu-central-1.outbound.mail-perimeter.amazon.com [18.197.217.180]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 44DE07D81A48 for <mls@ietf.org>; Tue, 28 Oct 2025 08:47:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.ch; i=@amazon.ch; q=dns/txt; s=amazoncorp2; t=1761666472; x=1793202472; h=from:to:cc:date:message-id:references:in-reply-to: mime-version:subject; bh=WhQQFQEZ7y2rxqrh20LujrZip/upkbFuShtZn+5lZKI=; b=mcz0xGAcMt3s1NcXw3DUMs+ILnBd4nWVv94XQ3Aph9GfXhzGY31d12iY cmSqhDVVvVtuUMmA1zfHYhoTCH7NuNVUeO1IohvWd6rU3POJFlmVZULjp vVYApIKnrIon6ecy4wsNG36SCdKdM+LF349ikRKFRUE6lQbMOhzOTHtsB Lz+Wu3KTNgVjjtHfgiuod+UoUCdypFvpO26e5vV+rOmqS2PiMwtjm8QlB S+BLjC2i4dSc1x0S8IHp9a5UqT47r0mnBpsfViws56arDjAyPPnw9WEKG /VojT9uBj3YgD+nWFZM2d+W5v7aFdi7MmfTCI3eTSKe1pDgWB8FZbU7Mg g==;
X-CSE-ConnectionGUID: OuNNrTGSTSSJTFLPYWIR4g==
X-CSE-MsgGUID: cwITSiaXTvSEINzNr/lCAg==
X-IronPort-AV: E=Sophos;i="6.19,261,1754956800"; d="scan'208,217";a="4336981"
Thread-Topic: [MLS] Re: -02 DMLS Draft
Received: from ip-10-6-3-216.eu-central-1.compute.internal (HELO smtpout.naws.eu-central-1.prod.farcaster.email.amazon.dev) ([10.6.3.216]) by internal-fra-out-006.esa.eu-central-1.outbound.mail-perimeter.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Oct 2025 15:47:51 +0000
Received: from EX19MTAEUA001.ant.amazon.com [54.240.197.233:9288] by smtpin.naws.eu-central-1.prod.farcaster.email.amazon.dev [10.0.3.26:2525] with esmtp (Farcaster) id 35cac88d-545d-4bfc-bf74-a5f9c900f6b6; Tue, 28 Oct 2025 15:47:50 +0000 (UTC)
X-Farcaster-Flow-ID: 35cac88d-545d-4bfc-bf74-a5f9c900f6b6
Received: from EX19EXOEUB001.ant.amazon.com (10.252.51.80) by EX19MTAEUA001.ant.amazon.com (10.252.50.223) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.29; Tue, 28 Oct 2025 15:47:41 +0000
Received: from EX19EXOEUC001.ant.amazon.com (10.252.51.133) by EX19EXOEUB001.ant.amazon.com (10.252.51.80) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.20; Tue, 28 Oct 2025 15:47:41 +0000
Received: from GVAP278CU002.outbound.protection.outlook.com (10.252.51.94) by EX19EXOEUC001.ant.amazon.com (10.252.51.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA) id 15.2.2562.20 via Frontend Transport; Tue, 28 Oct 2025 15:47:41 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cS4/lKDy+ZpHAwVnApiZ66Cve0/7eAzSvKz3AZX92iuPI2SI5wXBK09ZiM4yuhjl9nV4lJPxMggbNZ4/EjplyEFuf+IHkgb91kN5SU8E67Zrnd8i22qNBlGcXAR18lH1vbDYgLwFmPdGOUxLMNAh5uK9qt30i8NFDePue4PfhppcGJhL8Hy3GW7+Irpe83wqOR/CVe1moDR3vP/Lt609NVHLOXQHVbIBSi674sJ9oiQkbpVMSlgsybIwvwvb79JQL5Bkf6/k86HwzwCDJQXInLePEEc/vhhRfG5vPX4VOMvkK/MWEuTUIi27ZHRwvpRkcpZ3hpFX0X9tHSdmo2r76g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=WhQQFQEZ7y2rxqrh20LujrZip/upkbFuShtZn+5lZKI=; b=M9xoqRbWOBO+XVWlL7GD6WR9rG7XPtITeUpysVDMQAJLkEXIM9nwZHKOLHaF62lH4zZn8yrO12E1Rv8klWUOy8agbRFegMjbmU7WUFBCPkdfzoHPVAv7hYHsNeLmsxltaDkmXWVx1rudFlJ/dIgu7jEZKn2oNUb85GUwjjH2072QZSyiA7jeXnL8eE+cQQIoHji/HEMZIx3FeZ8KmegAvfXEoap1uEHtSI3m9FRQB4/ERpUUERAAuQqRLaNQQG48FjESix2Dvsi/bVH5zHaOlGLzvnyPBETQzl9P6yiX+4V83TwfmjLc5NBkl4ndwZ8RwlpOifsvCDPF4Ljf+ehIkg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amazon.ch; dmarc=pass action=none header.from=amazon.ch; dkim=pass header.d=amazon.ch; arc=none
Received: from GV0P278MB0783.CHEP278.PROD.OUTLOOK.COM (2603:10a6:710:52::6) by ZR0P278MB1553.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:a4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9253.19; Tue, 28 Oct 2025 15:47:37 +0000
Received: from GV0P278MB0783.CHEP278.PROD.OUTLOOK.COM ([fe80::bf36:1ba9:173b:adb0]) by GV0P278MB0783.CHEP278.PROD.OUTLOOK.COM ([fe80::bf36:1ba9:173b:adb0%6]) with mapi id 15.20.9253.017; Tue, 28 Oct 2025 15:47:37 +0000
From: "Mularczyk, Marta" <mulmarta@amazon.ch>
To: Mark Xue <ietf@mxue.org>, "Alwen, Joel" <alwenjo=40amazon.com@dmarc.ietf.org>, "Hale, Britta (CIV)" <britta.hale=40nps.edu@dmarc.ietf.org>, MLS List <mls@ietf.org>
Thread-Index: AQHcQ1o71FU3bXGewkaP6ahtNpvoyLTOtH+AgAkHtIE=
Date: Tue, 28 Oct 2025 15:47:36 +0000
Message-ID: <GV0P278MB0783DC8AA408EAACFAFE0D20D6FDA@GV0P278MB0783.CHEP278.PROD.OUTLOOK.COM>
References: <BD6F3C4D-BEDC-4EC6-8814-724AF59981ED@nps.edu> <4F60A403-27C3-4CDD-B716-C80A3D632E56@amazon.com> <b80c2495-0ff2-48b8-983e-a19b536bb867@app.fastmail.com>
In-Reply-To: <b80c2495-0ff2-48b8-983e-a19b536bb867@app.fastmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amazon.ch;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: GV0P278MB0783:EE_|ZR0P278MB1553:EE_
x-ms-office365-filtering-correlation-id: 9e48742c-773c-4e4a-6103-08de1639517c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;ARA:13230040|4022899009|376014|1800799024|366016|38070700021|13003099007|8096899003;
x-microsoft-antispam-message-info: Ken9MTnSJDbeRb+rqY5CTc1gOmWg6uTJsAZaPUmUfhkw1rKIeS3fz+ZYRpHh98IIw8Q5SVdpsnaoHjcre8VnAm7pjKmn7suTTtEakewFovfpoobF/r1I+UKcOuFckOJTuyb6OAE6vTkgHiuggoVp60vNzGF4iuJZ9ohxwYgREBQSM8l6SSBlwi/lTd+/M0GYHrFtYpQg/vb8rpFPCbzWP50qaTTlP6WOfl6GopeHQU21/qd9Tb/6FCg2ED6D5wThrDHvt+dw7JR9Q4gMjmmvUD5EvLjdlUYuEZzGDa6MCR+9/OzKn0eApsCtDshzwnyuYxbF7GGhCe/1kAgwklk0zc/odkbfgdxWGrWcUIRe6tnnm9i5tIn4BzX3SbbCZj7TDhmSClFisK0kqEdnVIl3qRAHNLFPjHoCuP0ZYwVA+qh8q/wWr2EIdKHepNRmIP0Yx6VlEU1AVAKWXBI0aSW2nh+MlE2NrFA8lK+6+HbqIRULU7MNXs26QpYHBwblohGEkoJTQSbgjm9JepYRNClDFmIShyA9s1E4CcGzMcTwKgi857SwztC8uowys6O82fNOyGLK0hmjfwc/PP+y3R7FbxTjSsEN0co1krJPXjwwG0qLQ5fF15VsJwTdd/ferCu8b8Uviul4QlwnrYoPd19GQzYOycYeVRTwb5sq0JQ76smffmFLqD79lNMVclDkXcqOmyyHjcxNpT/4KUi3Oa5sJ6gzGb21p2DLcMZ2+6vwr1LCrc4ORur1UNoTn5fsmvWO7dxU4t1fm64THojlWdCY0D15MvKwgmc9Y1NdvMtJlYwUnf5g2Uee57cbW467PUmmbhGWQtifVMvBbnEUpNNS4YMY6W8RHeRoUBYYvKBGbwND/5ZxzLRFncLNC3B5EVktW62WtLM0rek4SxPM03oKzDx9m26JLrcqIjQTrQQWKmjeOFYxyhstCphQpwRV0+KKCj8cdwXHX9SuHTOjOoGdhY2W50JTFCx5JuN88fTSYBHVak4fj7Hq+8+l/35lvWUUq/UnFaJUKRReQ2DcrYBWkbijHGxpyHYSI3YuG5z1ICU1bARL4xXZBA0wO4LYRciV2gGGv7odCz5b5hIQTHODHGbgT3G+EDU44MxIKSJSNNflJkU/7u9t54rVcleVlNkWYToLJD1D9C9AMv22LEp/6xNUjBw2rY69WGX/sIdB9nvwtVOjC0RKfnN3zhM3r1HDQfDisoCGwO8WPHnsSHm+CD/2HTgABCrl05jsh2G0MH+E1fQOoZdDUF5eEyl34wclgBA1ZZ+yHxLrY1kb8ynYPQXud94tqgkWpn7vZrEdGSAQJ+uWwBojx+lJ3na+yu5bj/jQktPtqCJm+wOkm1/DqzY3V1mDkrPt8OS013Zpnqljtio7DFy5sjb6u0VJkuIcnR/kfyJb1F8T+VaTJNnX+yka07k6zg2PA0jztjbPe+8HEUQuKMytCX09gkFpXQI28bcXPWmBvNo9n+hskul4PcIVCSO3yA5HJUUDoDpdV8xLmsOukj3yQ+MzgQZhf1c1
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV0P278MB0783.CHEP278.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(4022899009)(376014)(1800799024)(366016)(38070700021)(13003099007)(8096899003);DIR:OUT;SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: Saoyx+xyHOnpcHl0ncF/5fL26dBAuTqvznD6He7E8mcMyXaEvkvkh6iZeySwP+vDpms76hybAGFReKN9YP3q4xMSR1mEsClHgRWRgeZPtdknbEVNcOWzumdXWFgcapZFOb9njT0M7aT7wGa2wL8y62yFUyAWqd52dxnb3tUSqFs66pZ/R2GS9bc9dYt7r3u2go2pocYZdh0oU84M4mPigmQhJqV1WfRRi9Q499ZsnEophJUSpaOZNFzxFSvG+mGedOWWJCi2bEvPEPUkjmegcBhczXSLN0JRw8fpLt2bv+YpMrc7a4FPnSJhJ1iEoWhwQCcbS9L6etqOGRa613onwHRmucd+e7XorNL+PhzjIaFJ7yTNBpkkmKIKpk1Bz68DVqbXaNB2AcFoz8XJCsBomps7lu7uVXXVBiHxEVckbR1I8v7R09To4LXwBlcYK5qYcFnclgpiZA7HIFITdtIOmg9wy/1xJl9cQ1u+74e6jDjYJ2gSEtII+3pMu512/gHGXWp8MuWc2ufiHGHHAvIxuyqdvc+I3bBLqJvgEppYW0bA8tvqYCHT41iL5yZlRZv3MfjdWLZBzyNacoCYIo5xvRLZEU4o8HbR0I1fEFYCB3kvPwAlrnkSa5r99jMnGTpknm6Lz2ZsmNDX3FzFbCy3sPu+qGjmYewn7qZ3m/O6CWJH2/JOGFQSBGkbg+J7Wk3NAQFTY50Fy7pgrBQf989Kwl53+dvTqDx3qtAngWZXocIG1DwFN7+0HOg5NvrQmaf4Y2frTrtxADPgf7FyNwGX7PVHOfVXj61KKONnkFmrffVGKtBVZkf9lfCNdTqrqPT5EKBa36HHEU30yDAEfba8BCHy5ruX+V3qSWXik5CEiTxCO+TC8Ja0J0e8YnE9R8Vj/0af2KDuVBoUjq6M0tsR3HeejqYEDKAYwPYIlrZKuKAXPz5tTBZzCP0A8ZGBDuKqLiOtOKAof9HJcKLjk21+ChCOz+q4jNQswNhvvozi8nizM6a2MRJIimexkpSB80r3DeXWMjTD+FJDsApD70CqjDM/7CZMQREXSzuKAYMAN+AOYiWISkU3akUbEtqExmJqX8ZRQuLNmfA9afa783zGCHxk3ZAb+fDwW690rpYU3673wB449uu8hqEHFjzq+0TXugynDtADS6wsHomoEKRLBdACfz55F66Qbyj2hF2ZAQbhV68yIHUSZxP5/+f9TY2fcjjEnTaMeBQ2stjA4VCem6tOQdCFIHZZU2+rJRJclzmTPWXCAumZoY6rey5H9T9Xry2tyLoH40eaSOr4jJDVG5lNMcIbDvl22lzhkJeovshozSK3VPa6SQZhRFDQBZxgl+6kXVHlHQuCZN8PIpMxyU5Pe+yzaA46P6Dm2b7AqVBmY0Gs4i+HQUVR4h7TNrU6mWXInoVqVtR6rnT1H3uuKQl8eG82zfx5eBT3Oh8E494IRcx9vviwqUZFmBskC/RFrijlyJNCcvxuHr+9v5a7UhR4UievpsH+SXKi4QthhEjDyGNugFgfZBX3soEQuiASMyx/8PImOQTtt1zL4BQVWTIVRD+oAcEqyekjXP/Kzqk=
Content-Type: multipart/alternative; boundary="_000_GV0P278MB0783DC8AA408EAACFAFE0D20D6FDAGV0P278MB0783CHEP_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: GV0P278MB0783.CHEP278.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 9e48742c-773c-4e4a-6103-08de1639517c
X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Oct 2025 15:47:36.9185 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5280104a-472d-4538-9ccf-1e1d0efe8b1b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 0fWKIGjvWcFlDa/pMsBLyMlQ+ClFp1ECVRh+8Db7gm0GJndZyRNApq7qbbfYh+woqrPEIkvMW0APBmVwK6ORYw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZR0P278MB1553
X-OriginatorOrg: amazon.ch
Message-ID-Hash: AU6I4CBULBDRYSY5WKKLJCTA5GBTX5XI
X-Message-ID-Hash: AU6I4CBULBDRYSY5WKKLJCTA5GBTX5XI
X-MailFrom: prvs=389e72fec=mulmarta@amazon.ch
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-mls.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Mark Xue <mark@germ.network>, "Lukefahr, Joseph (CIV)" <joseph.lukefahr@nps.edu>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [MLS] Re: -02 DMLS Draft
List-Id: Messaging Layer Security <mls.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/mls/4tozaVV45aNrOQuSxfrEBnjY_gk>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mls>
List-Help: <mailto:mls-request@ietf.org?subject=help>
List-Owner: <mailto:mls-owner@ietf.org>
List-Post: <mailto:mls@ietf.org>
List-Subscribe: <mailto:mls-join@ietf.org>
List-Unsubscribe: <mailto:mls-leave@ietf.org>

Hi Mark,

Thank you for writing up the DMLS design, it's super interesting :-)  I wonder if you could help me understand how MLS, DMLS and FREEK compare? My main goal is to be able to decide which protocol works best for an application.

Let me clarify first that FREEK does not require eventual convergence (if I understood the latter correctly). FREEK builds a tree of epochs, reflecting causal dependency between them. It simply allows to explore the whole tree (while MLS would allow to explore only one path). An external algorithm *could* decide on a "converged state" implied by a view of FREEK's tree, but this is not part of FREEK.

I tried to compare MLS, DMLS and FREEK in terms of DS requirements, efficiency and security. Here are my thoughts.

==== DS requirements

MLS requires a global order on commits. This can be relaxed to only require a causal order: A can process a commit CB from B if she received all commits B got before sending CB. Is this what DMLS achieves with PSKs? I think that FREEK relaxes this even further: A can process CB if she has the predecessor epoch of the one created by CB in her tree of epochs. This relaxation can be a good or a bad thing (as some causal information is lost), depending on the context. (FWIW one can always enforce more causal dependencies in FREEK as desired using commits with PSKs as in DMLS. e.g. only include PSKs from past epoch that modified the group membership, etc.)

Questions:
* Is there an execution (with an unreliable DS) where DMLS can process a commit and FREEK not?
* What network did you have in mind for DMLS? Is it a mesh network (think, protesters or Bridgefy), or federated applications (like in MIMI), or servers in the field (e.g., search and rescue teams go into different caves).

==== Efficiency

MLS is most efficient. FREEK needs larger local states but as efficient as MLS in terms of communication. DMLS has linear commit cost.

I need some help with understanding the cost of adding someone to a DMLS group. Say A adds B to an N-member DMLS group. This means that B needs to be added to N sender groups.
* How do other senders know that they should add B to their sender groups?
* Does this mean that adding B requires N commits and consuming N key packages of B?

==== Security

The main question I'm struggling with is: Is there an execution with corruptions that differentiates security of DMLS and FREEK? I couldn't find one.

I also have a couple of questions about Security Considerations from the DMLS draft:
* I may be missing something (and it's not a big deal), but I think that both DMLS and FREEK store old HPKE secrets to handle forks. This slightly reduces the FS of MLS, I have an example below.
* If I understood correctly, the rest of the first paragraph says that DMLS allows a group member to control PCS for messages it sends. But... isn't it possible with MLS (and FREEK) too? Before sending a message, Alice can always make an MLS commit including any PCS updates she needs (as update or replace proposals).

==== FS of MLS vs FS of DMLS/FREEK

This is not a big deal but possibly interesting :-) Consider the following execution. It starts with a group at epoch 1 with N members including Alice and Bob. Alice is corrupted, Bob removes Alice, creating epoch 2. Bob sends a message Msg. Now half of the group goes into the left cave and half into the right cave. Each half communicates within itself, which creates two parallel sequences of commits.

To be able to communicate with the other half after leaving the cave, each member has to store the HPKE secret key from epoch 2 (or did I misunderstand and it is not the case for DMLS?). So if any member is corrupted while in the cave, the adversary my use this HPKE key to decrypt the commit secret in epoch 2 (combine it with the init secret leaked by corrupting Alice in epoch 1) and so decrypt Msg.

With MLS, on the other hand, that HPKE key would be deleted and Msg would be secure.

- Marta




________________________________
From: Mark Xue <ietf@mxue.org>
Sent: 22 October 2025 23:48
To: Alwen, Joel <alwenjo=40amazon.com@dmarc.ietf.org>; Hale, Britta (CIV) <britta.hale=40nps.edu@dmarc.ietf.org>; MLS List <mls@ietf.org>
Cc: Mark Xue <mark@germ.network>; Lukefahr, Joseph (CIV) <joseph.lukefahr@nps.edu>
Subject: [EXTERNAL] [MLS] Re: -02 DMLS Draft


CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.

Joel, appreciate the collaborative comments as always. Responding in some topical collection:

- Comparing group mutation to vanilla and fork-resilient MLS
If we loosely model members of a group as having ordered leaf node keys over time (k_i_j, where i is index of member in group and j is the ordering of member k_i's leaf node.
    - vanilla MLS advances membership through monotonically increasing j index for each member k_i in a single path of commits
    - (forgive my possible misunderstanding) fork-resilient MLS, within some epochal window of retained derived group init secrets and corresponding leaf node private key(s), allows for divergence of that path, if members go back and process alternate commits, and should converge on a single path.
     - Distributed MLS avoids implicating eventual convergence by letting each member independently choose a path of updating {k_i_j}, monotonically increasing j (through the commits in their send group). In place of eventual path convergence, PSK injection adds a dependency of Alice's path (group state) on everyone else's (locally known to Alice) path (group state). In this way, DMembers cooperatively and retroactively assemble a common history that is a dependency for current send group state(s), without requiring current or future consensus. Put another way, PSK injection ensures that recipients have access to a send group's new group state only if they successfully have access to the dependent epochs in other send groups.

DGroup commits ack DGroup updates, so we have a deterministic floor for when leafNode private keys can be safely discarded. Fairly, in biasing for local action, we then have local inaction (offline or service denial of a member) as a constraint.
The draft specifies one mitigation, by removing the long offline member.

Drawing on your feedback, it may be worthwhile to enable more eager deletion of intermediate (in the j index) private keys if we invert the functional priority for long offline members and require them to catch up to more recent state (as they must anyway to continue processing DGroup messages).

- Implementation
You raise pertinent issues for implementers. While most of the mechanics are implementable outside an MLS implementation, I think leafNode substitution across send groups implicates modifications to an off the shelf library. A possible modification could be a new proposal type, such as described in the replace draft. Your comments suggest to me that a revised commit operation could be an appropriate mechanism for copying leaf nodes across send groups along with optimizations and enforcing other send group restrictions at the MLS layer.

Mark

On Wed, Oct 22, 2025, at 6:44 AM, Alwen, Joel wrote:

Thanks for the updated draft.



I had a couple questions / comments after reading through the new draft. I hope they will be received in the collaborative spirit they are intended.





- What is the purpose of injecting the PSKs from other send groups?



- Are MLS’s update proposals used in DMLS?

- How about adding guidance about when I can delete my old leaf HPKE secret after I send a commit? It’s an availability vs. security trade-off so should probably be balanced (but an implementor focused on availability might miss the security cost of their choices). Keeping my old HPKE secrets longer means I am more likely to be able to process delayed incoming commits but also means I’m degrading the PCS in other people’s sender groups.



- Re: Section 8 “FS guarantees per Send Group follow similarly”: I’m struggling a bit with this… The FS in any MLS group also depends on everyone deleting old secrets. But, for DMLS, when that happens is not under the Send Group owner’s control? (E.g. rotating in a new LeafNode HPKE key for Alice, doesn’t mean Alice will delete her previous HPKE sk because she might still want it to process commits in other people’s Send Groups.)



- Re: Sec. 8 “in DMLS the PCS healing frequency… is controlled by the Send Group owner.” I don’t see yet how DMLS PCFS properties improve on those of MLS. In both cases, Alice can only rotate in new keys for Bob if Bob acts first. Could you help me understand the claim a bit more? How does a Send Group owner have more control over the PCFS of their application messages compared to an MLS group member that is free to (A) commit to pending update proposals and (B) remove stale group members before sending their application messages?



One thing I do see with DMLS vs. MLS is a difference in what risk is created by Bob being off-line for a long time. In an MLS group, Bob’s stale secrets present a risk to the confidentiality of past messages, but only if he is compromised. In a DMLS, Bob’s Send Group stagnates when he’s off-line. So, everyone in the group must keep their leaf HPKE sks around in case he comes back. But those sks were also used to process commits in other send groups. So, now, if any one of their devices is compromised, the confidentiality of old messages could get harmed. Is this accurate? If so does it bear mentioning in Security Considerations?



- Re: Sec. 8 “Notably, since the Send Group….desynchronization of the group view.” Maybe that sentence needs a bit more nuance? What if insider Alice sends a mall-formed commit in her Send Group which Bob can process but not Carl (e.g. his HPKE ctxt was crap in the commit). Next, honest Bob exports a PSK and injects it into his Send Group. Alice can follow to the new epoch, but not Carl. Unless Carl tells Bob, he has no way of knowing this is happening in his own Send Group.



- Where should clients be getting the GID and leaf index from (for the LeafNodeTBS struct) when verifying the signature of an imported LeafNode?



- Would it make sense to add text gathering any changes to MLS needed by DMLS in one place? That would give an implementor a single place to look for info on how they should modify a hypothetical “off-the-shelf” MLS library. E.g. when should I *not* delete my HPKE secrets in DMLS although MLS would? What’s different about validation logic for LeafNode structs in a ratchet tree when join a group or in a received commit?



- What new validation checks (if any) should clients do when they join the DGroup? Is it OK to join a DGroup mid-update? Or should clients expect “consistent” trees? E.g. if Alice’s send group has LeafNode N1 in her ratchet tree, should joiners ensure that’s also her LeafNode in all other send groups?



-  Would it make sense to further change how commits work to strip out the redundant stuff? No HPKE key pair on the sender’s path is ever used except for the one at their leaf. Does it make sense to strip them from the whole commit process to save on compute and bandwidth?



- If the scope includes bandwidth constrained DSs / clients, could it make sense to use something like Split Commits so receivers only need to download the 1 HPKE ctxt in a commit instead of all n of them?





Anyway, thanks for the thought provoking draft. I like the idea of Send Groups and am trying hard to understand how they compare to a fork-resilient approach.



  *   Joel





From: "Hale, Britta (CIV)" <britta.hale=40nps.edu@dmarc.ietf.org>
Date: Tuesday, 21. October 2025 at 17:06
To: MLS List <mls@ietf.org>
Cc: Mark Xue <mark@germ.network>, "Lukefahr, Joseph (CIV)" <joseph.lukefahr@nps.edu>
Subject: [EXTERNAL] [MLS] -02 DMLS Draft



CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.



All,



An update for the DMLS -02 version draft is available (https://datatracker.ietf.org/doc/html/draft-xue-distributed-mls-02) This incorporates all the feedback received since presentation at IETF-122.



As a reminder, this draft covers distributed MLS, where each member has control of messages sent, ordering of commits, and PCS frequency in their own sub-group, thereby avoiding commit collisions altogether, specifically aiming for the decentralized use case. There are two active implementations of this as well since IETF-122.



We would like to have a call for adoption on the draft and of course welcome any further inputs.



Britta







Amazon Development Center Austria GmbH
Brueckenkopfgasse 1
8020 Graz
Oesterreich
Sitz in Graz
Firmenbuchnummer: FN 439453 f
Firmenbuchgericht: Landesgericht fuer Zivilrechtssachen Graz


_______________________________________________
MLS mailing list -- mls@ietf.org<mailto:mls@ietf.org>
To unsubscribe send an email to mls-leave@ietf.org<mailto:mls-leave@ietf.org>