Skip to content

What is MLS (RFC 9420)?

MLS, or Messaging Layer Security, is the IETF standard published as RFC 9420 for end-to-end encrypted group messaging, designed so that adding or removing a member costs work proportional to the logarithm of the group size rather than to the group size itself.

Updated

  • Messaging Layer Security
A membership change rewrites one path through the key tree, not every leaf.

Encryption

MLS (RFC 9420), explained

Before MLS, group encryption was usually built by encrypting each message separately for every recipient device — the approach the Signal protocol takes when extended to groups. That works, and it is what most encrypted messengers do, but the cost of every key change grows with the number of devices, which is why encrypted group chat has historically been small and slow. MLS replaces the pairwise fan-out with a binary tree of keys, so a change touches a path through the tree instead of every leaf.

How Enclessa uses it

Enclessa uses MLS for direct messages and group direct messages. The implementation is OpenMLS, compiled once in Rust and shipped to every client, so the web client and the desktop client run identical cryptographic code rather than two implementations that agree until they do not. The Enclessa server implements only the MLS delivery service — it orders and forwards handshake messages and performs no cryptography of its own.