MLS in every private conversation
Direct messages, groups and private channels are encrypted by the plazer-core core in Rust, on the mls-rs library, with the MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519 suite.
Plazer has been running in production since 22 October 2026. Here we describe, without polish, what already protects accounts and conversations, what nobody outside has checked yet, what the audit before version 1.0 will cover and how to report a vulnerability so it goes straight to the people who write the code.
1Contact: mailto:kontakt@plazer.org2Expires: 2027-10-24T00:00:00.000Z3Preferred-Languages: pl, en4Canonical: https://plazer.org/.well-known/security.txt5Policy: https://plazer.org/pl/bezpieczenstwo/#zglaszanie6Policy: https://plazer.org/en/security/#reporting
A messenger's security is not only its encryption but also who checked it and how closely. This is where we are today.
The audit will cover four parts of Plazer, everything your keys and messages pass through. We will describe its results and the list of fixes on this page.
Every point below describes a mechanism that works in the current version of Plazer, not a plan.
Direct messages, groups and private channels are encrypted by the plazer-core core in Rust, on the mls-rs library, with the MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519 suite.
Every app release has the central server's public key built in and cannot open any encrypted conversation without it. The matching private key never sits on the servers.
We build the core from a pinned version of its code in a fresh copy of the repository. Every release records the code version, the tools, the SHA-256 of the module and the pinned key.
Private keys are created in the browser and never leave the device, and where the browser supports it they cannot be exported. The recovery key never reaches the server.
We keep passwords as bcrypt hashes and encrypt authenticator secrets and backup codes with AES-256-GCM. Five wrong codes end an attempt, and ten within 15 minutes lock the account for a while.
The server stores only a hash of each session token. A sign-in from a new browser goes into the security log, and the account's other sessions see it at once.
Attachments are served with headers that block code from running, and files other than images, audio and video are always download-only. The server fetches previews and pictures from public addresses only.
A blocked or deleted account goes onto the revocation list that community servers read, including those run by others. Such an account cannot sign in to any of them.
Found a bug that could put accounts or conversations at risk? Write to us before you talk about it publicly. The people who write Plazer will answer.
We will not take legal action against people who act in good faith under these rules. We do not run a paid bounty programme today.
The same details are in the security.txt file at plazer.org/.well-known/security.txt, in the RFC 9116 format.
Short answers to what people ask when they check Plazer before trusting it.
Not yet. The mls-rs library the encryption rests on is validated against the MLS standard but has not yet had a full third-party audit. We plan a cryptography audit of Plazer before version 1.0 and will describe its results on this page.
Because the app code comes from app.plazer.org every time it starts, the installed version included. The pinned central server key and the reproducible core build with a recorded checksum limit that risk, and the way code is delivered is part of the planned audit.
Only on your own accounts and without loading the server. For deeper testing, run your own community server from the public Docker image: it works the same way and you touch nobody else's data.
On our community server, in the bugs channel. Report vulnerabilities only to kontakt@plazer.org, so the details do not reach everyone before a fix exists.
What is encrypted, what each server sees and how we process data are described on separate pages.
Download Plazer
Install it from app.plazer.org on your phone, tablet and computer, or open it in a browser tab.
Download Plazer