[MLS] Federation and MLS

Harry Halpin <harry.halpin@inria.fr> Mon, 25 March 2019 15:31 UTC

Return-Path: <harry.halpin@inria.fr>
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 8CDDA1204F4 for <mls@ietfa.amsl.com>; Mon, 25 Mar 2019 08:31:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.9
X-Spam-Level:
X-Spam-Status: No, score=-6.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 hGfWjjD9mUEy for <mls@ietfa.amsl.com>; Mon, 25 Mar 2019 08:31:21 -0700 (PDT)
Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A60A1120485 for <mls@ietf.org>; Mon, 25 Mar 2019 08:31:20 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="5.60,269,1549926000"; d="scan'208,217";a="300660459"
X-MGA-submission: MDH5suIY/nXNud6dH+JcizTmJu0Rria+k6ox5YYqMf+5vW6WQzH18iC9iG7KXAYMLu1Cyzp41bBtNXUc5hx6rIN1cDrcWhdSDEUhFwu9nIPewe48zKKiH6HlVLd43oDym60g195vtEVmk7rAxO8qRnAjK3xcTi7dVFk5/IClrQOiFQ==
Received: from zcs-store3.inria.fr ([128.93.142.30]) by mail3-relais-sop.national.inria.fr with ESMTP; 25 Mar 2019 16:31:16 +0100
Date: Mon, 25 Mar 2019 16:31:16 +0100
From: Harry Halpin <harry.halpin@inria.fr>
To: mls <mls@ietf.org>
Message-ID: <817649924.1176598.1553527876075.JavaMail.zimbra@inria.fr>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="=_3304610a-403f-440f-bf77-6a253f8be8ad"
X-Originating-IP: [128.93.82.17]
X-Mailer: Zimbra 8.7.11_GA_3789 (ZimbraWebClient - FF61 (Linux)/8.7.11_GA_3789)
Thread-Index: to5d86A5LPrdHYckG8tlURxcrc+tGw==
Thread-Topic: Federation and MLS
Archived-At: <https://mailarchive.ietf.org/arch/msg/mls/GvrH0d4tjHEKYiuN_a4PxKjJJcA>
Subject: [MLS] Federation and MLS
X-BeenThere: mls@ietf.org
X-Mailman-Version: 2.1.29
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, 25 Mar 2019 15:31:29 -0000

Glad to see federation being discussed on Thursday as well - here's some thoughts: 

There are basically four issues that need to be solved, and the general philosophy should be one of minimalism. 

1) Identity: How to identify members with different AS/DS? 

There have been large debates over this, ranging from "user@domain" to key-based identifiers to other odd new schemes. To keep it simple, this should be delegated to the Authentication Service to provide long-term identity (or per group) keys, but some minimal set of calls between the AS may need to standardized to retrieve a user key given an identifier. Attempting to standardize the identifier is probably a bad idea, just assume there is a string you can send the AS that returns a key. Thus, the "domain" is by default the "domain" of the AS you call, and all that is needed is a user identifier. This would work well for systems that may not have a clear user@domain architecture. 

2) Discovery: How to determine which capabilities a given MLS-compliant AS/DS supports? 

The typical IETF path is via .well-known [1] or related 'host-meta' [2] and the former seems to be having some usage. From a cryptographic perspective, this is also the 'versioning' issue - how to detect which MLS version is being used, for example, with what ciphersuite (as already we are discussing using non-25519 ciphers). However, the .well-known RFC is tied to the domain name system and so TLS etc, which may not fit all systems. Something even more minimalistic, in a 'federation handshake' to establish connections between AS and DS services and then cryptographically merge their respective sub-trees is a better way to go, although MLS could register a .well-known if needed. 

3) Metadata: 

In general, some sort of metadata will need to be shared, i.e. icons, human readable user-names, group names. I would suggest that as this may be an application message that is simply be considered a non-cryptographic update. Any attempt to proscibe too much on this layer leads to endless bike-shedding and so should be avoided :) However, some minimal optional subset of metadata commonly used for chat could be useful, but rather than whiteboard it, it would be better to have each major MLS vendor that plans to support federation see what their common subset is with everyone else, and then just make a call that delivers just that as an MLS update. 

4) Transport: 

In general, it seems some minimal transport syntax would have to be agreed upon. A simple JSON syntax would match the rest of the Web, without any exotic additions. 

All previous work that is non-minimalistic (and it seems my suggestions could become even more minimized) will lead to failure. For example, OAuth was a success insofar as it did not, unlike OpenID, specify too much. A large summary document I wrote over the last decade of failure of standardization in this space suggests this is the case, with OAuth being the only real victory, everything else from W3C Social Web effort to OpenSocial to a pleathora of 'identity' efforts all more or less failing to reach deployment, see: 
https://hal.inria.fr/hal-01966561/document 

Happy to see MLS focus on the crypto and not repeat the mistakes of previous standards efforts in federation - happy to help on federation topic, although I can't make Prague in person likely. 

yours, 
harry 


[1] https://tools.ietf.org/html/rfc5785 
[2] https://tools.ietf.org/html/rfc6415