Safety
Meeks is built so that people involved in support can stay in touch with peace of mind. This page explains both what Meeks protects and what it cannot.
End-to-end encryption
Messages, files and calls (voice, video and screen sharing) are encrypted on the sender's device and can only be decrypted on the recipients' devices. The encryption key exists only on the participants' devices; not even the server operator can read the content.
Messages do not stay on the server
Participants connect directly (peer-to-peer) whenever possible. When they cannot, the server relays the data, but only passes it through still encrypted and never stores it. History is kept on each participant's device and synced between participants.
Joining requires approval
Knowing the URL is not enough to enter a room. The encryption key is handed to a newcomer only when someone already in the room approves them. When approving, it is safer to check by phone or in person that the confirmation code on screen matches the other person's.
What the server stores
Whether a room exists (only a transformed value of its name), the display name and public key in join requests, messages sent before approval (still encrypted, and deleted once joining completes), and connection records (IP address, source port, date and time). It does not store the content of messages or files.
About connection records
To respond to legal requests for disclosure of sender information, the source IP address and time of each connection are kept for two years and then deleted automatically. The records do not include message content.
Call relays
If a direct connection is not possible, calls go through the Meeks relay server. Cloudflare's relay servers may be used as a backup. Either way, calls stay encrypted.
Looking after your device
History and encryption keys are stored in the browser of the device you use. If you used a shared device, delete them with "Delete history on this device" in the room. Set a screen lock on your device.
What Meeks cannot do
- Anyone you approve can read the room, including its history. Decide carefully who to approve.
- Display names are self-declared. Confirm who someone is with the confirmation code or another means of contact.
- The server knows when and from which IP address someone connected.
- Meeks runs in the browser. If the program delivered to the browser were itself tampered with, encryption could not prevent it.
Open source
The source code of Meeks is published on GitHub under the MIT License, so anyone can check how it works.