Internet-Draft MIMI Terminology April 2023
Ralston Expires 13 October 2023 [Page]
Workgroup:
More Instant Messaging Interoperability
Internet-Draft:
draft-ralston-mimi-terminology-00
Published:
Intended Status:
Informational
Expires:
Author:
T. Ralston
The Matrix.org Foundation C.I.C.

MIMI Terminology

Abstract

This document introduces a set of terminology to use when discussing or describing concepts within MIMI.

About This Document

This note is to be removed before publishing as an RFC.

The latest revision of this draft can be found at https://turt2live.github.io/ietf-mimi-terminology/draft-ralston-mimi-terminology.html. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-ralston-mimi-terminology/.

Discussion of this document takes place on the More Instant Messaging Interoperability Working Group mailing list (mailto:mimi@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/mimi/. Subscribe at https://www.ietf.org/mailman/listinfo/mimi/.

Source for this draft and an issue tracker can be found at https://github.com/turt2live/ietf-mimi-terminology.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 13 October 2023.

Table of Contents

1. Introduction

The More Instant Messaging Interoperability (MIMI) working group is chartered to specify the minimal set of mechanisms to make modern instant messaging applications interoperable. Through prior discussions and upcoming documents, it's become important to have a shared understanding for what is being discussed specifically.

This document expands upon MLS's [I-D.ietf-mls-protocol] [I-D.ietf-mls-architecture] terminology by defining terms specific to MIMI's purpose. Document authors SHOULD prefix terms from the MLS specification with "MLS" to denote that the term is specifically coming from the MLS specification. For example, "MLS Group" versus "Group". This document defines terms which are non-conflicting to help ensure clarity when the MLS prefix is missing, however.

Documents within the MIMI working group may introduce their own terminology to explain concepts within their context. Those documents SHOULD NOT override or change the terminology described in this document or from MLS.

2. Terminology

MIMI defines:

User: A (normally) human operator of a client. Users have a User ID to identify them canonically within the system.

Client: A user interface for messaging, performing encryption as needed. Presents conversations to the user to interact with. Synonymous with MLS Client. Clients have a Client ID to canonically identify them among a user's other clients.

Conversation: The place where users communicate. Depending on design, this may be synonymous with an MLS Group. The default assumption if not clarified is that the conversation and group are different concepts/entities. Conversations have a Conversation ID to canonically identify them within the system, which may be a Group ID if the concepts are synonymous.

Conversation Member: A user's membership in relation to a conversation. If the concepts of conversation and MLS Group are synonymous, this will be no different than an MLS Member, however if different then this will be which represents the MLS Member to the conversation.

Event: The container for an encrypted MLS Message, sent over the wire between servers and clients (through their local servers). Events have an Event ID to canonically identify them at least within the conversation.

Conversation Property: Information stored in the conversation, such as the name, topic, avatar, conversation membership, etc. This may be in the shape of an event. Note that conversation properties are different from what is needed to construct an MLS Group Context.

Message: Synonymous with an MLS Message. Messages have a Message ID to canonically identify them at least within the group.

Server: Synonymous with an MLS Delivery Service (DS). Responsible for routing events to other servers and local clients. Note that the role of a server can be accomplished in the same logical place as a client (i.e.: in peer-to-peer environments), however the default assumption if not clarified is that the client and server are two different entities.

Client-Server API: The interface between a client and server. This may be nothing more than a function call if the client and server are the same logical entity.

Server-Server API: The interface between a server and another server.

Transport: The method and format for moving information between entities. For example, a Client-Server API might describe HTTPS and JSON as its transport. For added clarity, documents should clarify which API surface they are defining a transport for ("Server-Server Transport", for example).

Access Control: The set of algorithms which determine whether an event or MLS Message is permitted in the conversation/group. For instance, this may define whether an MLS Proposal is accepted or whether the user is able to become a conversation member.

Message Format: The specific format that clients use within the encrypted body of an MLS Message. Sometimes this will also be called the Content Format.

User Identity: A mapping of User ID to external identifier, such as a phone number. In some cases, the user identity can be synonymous with the user ID, however the default assumption if not clarified is that they are different concepts.

Messaging Provider or Provider: A service offering instant messaging to users. Typically a provider will have a server to route events between users (or clients, specifically).

2.1. Diagram Reference

In the simplest possible form, interoperable messaging between two end users looks as such:

A B C Client 1 Provider 1 Provider 2 Client 2 D
Figure 1: Typical, simplified, architecture for interoperability

In this figure, Client 1 is directly connected to Provider 1 over channel A. A is a provider-specific Client-Server API and transport. Similarly, Client 2 is directly connected to Provider 2 over channel C. C is also a provider-specific Client-Server API and transport.

Provider 1 and 2 talk to each other with a Server-Server API over a transport. This is B in the figure.

Clients additionally have an implicit channel (D in the figure) where they use a shared Message Format. There is no transport for D in this figure: the figure is denoting that servers/providers are unable to assist with a format conversion due to the event's content (an MLS message) being encrypted.

3. IANA Considerations

This document has no IANA actions.

4. Normative References

[I-D.ietf-mls-architecture]
Beurdouche, B., Rescorla, E., Omara, E., Inguva, S., and A. Duric, "The Messaging Layer Security (MLS) Architecture", Work in Progress, Internet-Draft, draft-ietf-mls-architecture-10, , <https://datatracker.ietf.org/doc/html/draft-ietf-mls-architecture-10>.
[I-D.ietf-mls-protocol]
Barnes, R., Beurdouche, B., Robert, R., Millican, J., Omara, E., and K. Cohn-Gordon, "The Messaging Layer Security (MLS) Protocol", Work in Progress, Internet-Draft, draft-ietf-mls-protocol-20, , <https://datatracker.ietf.org/doc/html/draft-ietf-mls-protocol-20>.

Author's Address

Travis Ralston
The Matrix.org Foundation C.I.C.