From ade93e254789fda0ef48e86faa17b40ff5d86556 Mon Sep 17 00:00:00 2001 From: Ekaterina Broslavskaya Date: Mon, 1 Sep 2025 13:44:47 +0300 Subject: [PATCH] Blogpost: de-mls with Waku (#159) * feat: add new blog post on de-mls with Waku and update authors list * adding introduction * Enhance blog post on decentralized MLS with Waku: added detailed explanations of the MLS protocol, its decentralized adaptation, and Waku's pub-sub architecture. Included insights on key management, user roles, and the actor-based system design for message processing. * Refine blog post on decentralized MLS with Waku: improved clarity and structure by enhancing explanations of the MLS protocol, Waku's pub-sub architecture, and key management processes. Added sections on message distribution, user roles, and future work, while correcting terminology and formatting for better readability. * update the structure * fix references * editorial updates * Update publication date and enhance architectural overview in de-MLS with Waku documentation. Added new sections on actor communication and cryptographic key management, along with a new image for better illustration of the architecture. * Refine de-MLS documentation: clarified the roles of pub-sub topics, streamlined actor responsibilities, and removed outdated code snippets. Focused on Waku integration and user/group actor functionalities for improved understanding. * Refine de-MLS documentation: improve clarity on message distribution, Waku protocol, and group communication topics * Update rlog/2024-12-23-de-mls.mdx Co-authored-by: Hanno Cornelius <68783915+jm-clius@users.noreply.github.com> * groundbreaking commit * fix figure * Update de-mls.mdx * update image file extension * small fix * image update * fix Docusaurus error * replace admin as steward * Update rlog/2024-12-23-de-mls.mdx Co-authored-by: Jazz Turner-Baggs <473256+jazzz@users.noreply.github.com> * replace all admins * review fix * title update * RFC citation * grammer fixes and update proposal part * cite de-MLS RFC * explicitly mentioning of async feature * waku integration RFC as a future todo * adding intro * transition in intro * adding use cases --------- Co-authored-by: seugu <99656002+seugu@users.noreply.github.com> Co-authored-by: Hanno Cornelius <68783915+jm-clius@users.noreply.github.com> Co-authored-by: Jazz Turner-Baggs <473256+jazzz@users.noreply.github.com> --- rlog/2024-12-23-de-mls.mdx | 354 +++++++++++++++++++++++++++++++++++++ rlog/authors.yml | 4 + static/img/de-mls/flow.PNG | Bin 0 -> 51480 bytes 3 files changed, 358 insertions(+) create mode 100644 rlog/2024-12-23-de-mls.mdx create mode 100644 static/img/de-mls/flow.PNG diff --git a/rlog/2024-12-23-de-mls.mdx b/rlog/2024-12-23-de-mls.mdx new file mode 100644 index 00000000..f1bf931f --- /dev/null +++ b/rlog/2024-12-23-de-mls.mdx @@ -0,0 +1,354 @@ +--- +title: 'Decentralized Message Layer Security (De-MLS) with Waku' +date: 2025-01-24 19:00:00 +authors: seemenkina +published: true +slug: de-mls-with-waku +categories: research + +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +This post introduces de-MLS, a decentralized variant of Message Layer Security (MLS) +that reimagines group messaging by replacing centralized delivery services with peer-to-peer protocols +while retaining strong guarantees such as forward secrecy (FS) and post-compromise security (PCS). + +{/* truncate */} + +## Introduction + +Secure Group Messaging (SGM) is resource-intensive when aiming for robust security features +like forward secrecy (FS) and post-compromise security (PCS). + +One straightforward approach to SGM is a pairwise group chat, +where each pair of group members establishes a unique encryption key using Diffie-Hellman. +While this method ensures security, it falls short in terms of practicality: + +- **High storage requirements**: Each participant must store encryption keys for every other participant. +- **Inefficient encryption**: Each message must be encrypted separately for every participant, +leading to significant computational overhead. +- **Inefficient message storage and delivery**: Each separately encrypted message must then be sent over the wire, +whatever this wire might be. Or stored in database. +- **Cumbersome group management**: Adding or removing users and refreshing keys becomes +increasingly inefficient as the group grows. + +One scalable for Secure Group Messaging (SGM) is Message Layer Security (MLS), as standardized in [RFC 9420](https://datatracker.ietf.org/doc/rfc9420/). +Leveraging TreeKEM, MLS organizes group members in a cryptographic tree structure, +where each participant is responsible for maintaining specific parts of the tree. + +While MLS offers scalability and strong security guarantees, +its reliance on server-based delivery services poses limitations for fully decentralized environments. + +In this post, we present the implementation details of the first version of Decentralized MLS (de-MLS) +which is an SGM protocol. De-MLS can serve groups that cannot rely on central servers, +such as journalists and activists seeking secure communication. +It is also well suited for DAOs, where Ethereum-based authentication can restrict access to members +holding a minimum ETH balance, and for NGOs or research consortia that prefer not to host their own servers while still +requiring end-to-end encrypted group messaging. Decentralized MLS (de-MLS) satisfies the following features: + +- Decentralized +- Scalable +- End-to-end encrypted (E2EE) +- FS and PCS provided +- Ethereum authenticated + +## Background + +### MLS + +The Message Layer Security (MLS) protocol offers scalable and secure group messaging protocol +by organizing participants into a cryptographic tree structure, +enabling efficient operations like adding or removing members with logarithmic time complexity +relative to the group size. MLS provides strong security guarantees, including FS and PCS. + +MLS assumes that two services are provided: + +- An Authentication Service (AS): It enables group members to +authenticate the credentials presented by other group members. +- A Delivery Service (DS) that routes MLS messages among the +participants in the protocol in the correct order and manage the `keyPackage` of the users +where the `keyPackage` is the objects that provide some public information about a user. + +Despite its scalability, MLS has a notable limitation: +it is inherently designed for server-based federated architectures for delivery service (DS), +even when the servers themselves don't need to be trusted. +To achieve a decentralized protocol, the functionality of DS must be reimagined +to eliminate reliance on a central server while preserving the protocol's security properties. +Thus, we proposed decentralized MLS (de-MLS), +leveraging Waku nodes as peer-to-peer communication protocols to eliminate reliance on centralized servers. + +Lastly, MLS operates on an epoch-based model, +where group state changes (e.g., adding/removing users or key refreshes) occur between epochs +that are always required to be conducted by a single entity. +For example, if a user is removed in epoch `E`, +the rest of the group members generate a new key in epoch `E + 1` by passing the new entropy. +The removed user cannot decrypt messages sent after epoch `E + 1`. + +### Waku + +[Waku](https://waku.org/) is a decentralized messaging protocol designed for secure and efficient communication in peer-to-peer networks. +It operates as a broadcast-based routing layer where content topics can be used to tag and filter messages. +Users join channels by subscribing to specific content topics, +which determine the scope and type of messages exchanged. +This enables flexible and efficient communication patterns in a decentralized environment. + +## de-MLS + +Decentralized MLS (de-MLS) is a peer-to-peer secure group messaging protocol +that can work with any delivery service (DS) meeting a minimal set of requirements. +In this post, we highlight its integration with [Waku](https://waku.org/) as the messaging protocol, +while emphasizing that de-MLS itself remains agnostic to the underlying DS. +Further technical details can be found in the [de-MLS RFC](https://rfc.vac.dev/vac/raw/eth-mls-offchain). + +Decentralization is achieved not only at the delivery service (DS) level +but also within the authentication service (AS). +Multiple special nodes named Steward in the group serve as authorized identities to authenticate users +before they join or are removed from the group transparently. + +de-MLS provides two different user management configurations, both utilizing the Waku protocol for DS: + +1. **Single Steward**: + - A single authorized identity (Steward) manages the group, + including removing or adding users with agreement among users by a voting-based consensus. +2. **Multi-Steward**: + - Multiple Stewards have equal authority to add or remove users. + - A consensus mechanism ensures consistency by resolving concurrent changes + within the same epoch and preventing possible conflicts. + In each epoch, all modifications are managed exclusively by a single Steward. + +Note: We chose the term Steward to reflect the role of transparently coordinating and organizing passengers at stations, much like Stewards do in transit systems. + +In multi-Steward settings, de-MLS requires a consensus among Stewards +that have equal rights in the group since changes in an epoch in MLS are required +to be conducted by a single identity, that is the Steward. + +For the consensus integration, ongoing research explores two promising approaches: + +1. **On-chain consensus mechanisms**: +Outsourcing consensus to a smart contract solution for transparent and immutable agreement. +2. **Off-chain consensus mechanisms**: +Utilizing off-chain consensus protocols to design efficient, decentralized protocols. + +### Waku Integration + +Waku integration is a crucial step in the construction of de-MLS, +aiming to replace traditional client-server communication with decentralized messaging. +The specifics of Waku integration will be detailed in a separate RFC; +for now, our main priority is the de-MLS RFC. + +The main challenge in this transition is transforming the centralized Delivery Service (DS) +into a decentralized equivalent, which performs two essential functions: + +1. Message Delivery and Ordering: +The DS is responsible not only for delivering messages to the correct recipients, +but also for preserving the correct order of these messages, which is critical for the consistency of group state. +2. Key Package Management: +The DS manages key packages, which are essential for adding members securely to a group. + +To maintain a truly decentralized architecture, +key packages cannot be stored in a centralized location. +Initially, we considered using a smart contract (SC) as a decentralized substitute for server-side key package storage. +However, this approach proved impractical. +Blockchains are immutable by design—once data is written, it cannot be fully removed. +This contradicts a core requirement of MLS: each key package must be used exactly once and then deleted, +to prevent replay or reuse attacks. +Instead, our solution is to require users to actively provide their key packages upon request, +allowing validation at the moment of use without persistent storage. +While this approach may lose some benefits of asynchronicity, +we plan to address this in the future by introducing store nodes that can temporarily hold key packages. +This ensures both compliance with MLS's security model and alignment with decentralized system principles. + +### Flow + +The flow section explains the processes that +when a user wants to join a group in both Steward and users side also their interactions. +The flow of de-MLS is as follows: + +![Figure 1](/img/de-mls/flow.png) + +### 1. Steward joins the welcome topic + +The welcome topic is a topic created and monitored by the Steward for a specific secure messaging group, +allowing any Waku node to subscribe permissionlessly. +Being in the welcome topic does not imply group membership, +it acts as a waiting room where users can send their key material, +which the Steward listens for and processes before granting access to the secure group. + +### 2. Group initialization + +Steward initalizes a group with parameters such as cipher suite and group ID. + +### 3. Emitting Group Anouncement (GA) by Steward + +Steward creates group announcement (GA) periodically to the welcome channel +that the users can find the who the Steward is. +This will be important for the next step. + +### 4. User joins the welcome topic + +As first, the users who wants to be part of the decentralized MLS should subscribe the welcome channel. +Then user can find the group name and also corresponding GA message from Steward. +This GA message helps the user to create a valid `keyPackages` which define in section 10 +in [RFC9420](https://datatracker.ietf.org/doc/rfc9420/) for the group. + +### 5. User creates its key package + +User creates the `keyPackage` and encrypt by public key of the Steward then send it to the Steward. +Since the message is encrypted, stay secure though the welcome (permissionless) topic. + +### 6. Steward receives the User's key package + +Steward receives the user's `keyPackage` and decrypt it. +After decrypted, Steward also verifies the validity of the `keyPackage` by signature verification. +If the `keyPackage` is not valid, the Steward just drops the message, +otherwise it moves to the next step which is proposal creation. + +### 7. Creation of Voting proposals + +Voting proposals are special MLS application messages that may come from any participant, including the Steward. +In this context, any member can create a proposal corresponding to the user’s `keyPackage`. +In regular MLS, proposals are automatically converted into commit messages, +which can change the structure of the tree. However, in de-MLS, since the process is decentralized, +proposals must be voted on before being converted into a commitment. + +### 8. Voting for proposal + +Voting applies decentralization by protecting small groups can control. +Therefore, proposals must be voted on before committing. +The consensus mechanism should be a lightweight consensus that cannot be a bottleneck for treeKEM scalability. +Basically, the consensus returns the binary result for a given proposal. +If voting result is NO, the proposal is dropped; otherwise, the Steward transforms it into an MLS proposal. +MLS proposal message is a distinct type of MLS application message, +where the Steward attaches the voting result instead of directly releasing a commit message. + +### 9. Creating commit message + +Commit messages are the messages that start new epochs. +They include key and tree material that existing members can use to generate the new state of the tree. + +After Steward gets the YES from consensus, Steward creates commit messages +that injects new entropy for the existing group members. + +### 10. Sending messages + +After Steward creates and then sends two messages: + +1. Commit message informs existing group member to update their key +to align with the new member’s key for the upcoming epoch. +2. The welcome message informs the newly joined user to generate a group key +that matches the key existing members will use in the upcoming epoch. + +Although existing users had different group keys in the previous epoch and the new user had none, +the Steward message ensures that both existing and new users converge on the same group key in the next epoch. + +### 11. Applying welcome message + +User can generate the next epoch group key by using the welcome message as well as +existing users extract the same `groupKey` by using commit messages. + +The commit message helps existing members generate the next group key `Gk+1`, +while the welcome message helps the newly joining user generate the same `Gk+1`. +This provides two important security properties: + +1. Forward Secrecy (FS): +The new user cannot read previous messages since they were encrypted with the old key `Gk` + +2. Post-Compromise Security (PCS): +If a user is removed from the group, +they cannot read future messages since those messages will be encrypted with the new key `Gk+1` + +## Benchmark + +This section presents the performance evaluation of de-MLS. +One of the key advantages of the MLS protocol is its efficiency, +as it eliminates the need for pairwise message exchanges between all participants. +Instead, the decentralized DS enables the addition of new participants by sending only two messages to the group: +a commit message and a welcome message. +However, despite this advantage, the protocol does have certain bottlenecks, which are as follows: + +- Firstly, the Steward must receive the key packages from each member wishing to join the group. +This process requires sequential message exchanges and involves computationally intensive tasks such as encryption, +decryption, and digital signature verification. +Even when multiple users are added to the group simultaneously, the process is essentially sequential. +The tree structure is updated one user at a time, +followed by sending the final commit message to the existing group members +and a single welcome message to the new members. +- Secondly adding a member to a group requires rebuilding the tree and computing new keys. + +The following measurements were made as follows: + +1. The time required for the entire sequence of receiving a user key package is presented here. +This includes generating the Steward key, creating messages with signatures and encryption, +and processing these messages. + +`Share Key Package - 1.8395 ms` + +Note that these measurements do not account for the time taken to forward messages. + +1. The time required for creating the commit and welcome message +from a ready-made package bunches is shown in this table. + +| Group Size (by users) | Time | +| --- | --- | +| 10 | 1.8662 ms | +| 100 | 14.124 ms | +| 500 | 121.85 ms | +| 1000 | 412.39 ms | +| 5000 | ~ 15-20 s | +| 10000 | ~ 1-1.5 min | + +The tests were conducted on the following configuration: +Apple M3 Pro @ 4.05GHz and 12-Core CPU/18-Core GPU. + +Here, the network latency and the time taken by users to apply the received commits are also excluded. +These aspects are planned to be measured and evaluated in future work. + +## Potential drawbacks and countermeasures + +Since de-MLS replace the servers by P2P, we could lose some good features of servers based MLS. +In this section we present the potential drawbacks and possible countermeasures of de-MLS. + +- Offline users: `keyPackage`s are provided by the users directly without any storing, +this is required each user must be online for joining to a group. + - We can consider to use [Waku sync nodes](https://docs.waku.org/guides/js-waku/store-retrieve-messages/) + that are nodes has storing ability for a temporary storing of `keyPackage`s. +- DoS attack to Steward: Steward is known in welcome message from periodic group announcement message +so Steward can be targeted for DoS attack. + - As always we consider to use Rate-Limiting Nullifier (RLN) with Waku to protect network from spam. +- Message loss or delay : Because of P2P and consensus settings, message can be lost or delayed., + - We can integrate reliability mechanisms to Waku such as + [scalable data sync (SDS)](https://github.com/waku-org/nim-sds) + - Consensus mechanism requires to provide liveness property against offline nodes, for example, + it may provides default YES or NO options for a silent users who do not vote. +- Enchanced authentication + - Ethereum authentication could be inefficient. + We can configure the authentication mechanism for example asking minimum balance or etc. + +## Conclusion + +To summarize, the approach to solving decentralized DS tasks with Waku +can be outlined as shown in the comparison table: + +| Feature | MLS | de-MLS | +| --- | --- | --- | +| Message Distribution | Messages are sent from the server to clients | Messages are sent by publishing/subscribing to pub-sub topics | +| Commit Message Handling | Relies on a server | Relies on a consensus and transparent Steward | +| Key Package Management | Key packages are stored and distributed by the server | Key packages are provided by the users themselves | + +## Future Work + +In the next iterations, the implementations are planned as following: + +- Dual-Consensus Multi-Steward Support: One consensus mechanism selects an Steward from all users, +while a second governs group decisions among the elected Stewards +- Consensus mechanism for handling concurrent changes within the same epoch +- Key rotation support +- Benchmarking for the multi-Steward configuration including the network time + +## References + +- [1] RFC 9420: The Messaging Layer Security (MLS) Protocol. Retrieved from https://datatracker.ietf.org/doc/rfc9420/ +- [2] OpenMLS. Retrived from https://github.com/openmls/openmls +- [3] Waku. Retrived from https://waku.org/ +- [4] de-MLS. Retrived from https://github.com/vacp2p/de-mls/ \ No newline at end of file diff --git a/rlog/authors.yml b/rlog/authors.yml index 31463352..75f53a74 100644 --- a/rlog/authors.yml +++ b/rlog/authors.yml @@ -77,3 +77,7 @@ gabrielmer: Vac: name: 'Vac' + +seemenkina: + name: 'Ekaterina' + github: 'seemenkina' diff --git a/static/img/de-mls/flow.PNG b/static/img/de-mls/flow.PNG new file mode 100644 index 0000000000000000000000000000000000000000..1c53df04460b565807b947551777d4e504c74f9d GIT binary patch literal 51480 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 literal 0 HcmV?d00001