Security
Plain statements about what protects you, what does not, and how to report a problem.
Rooms
Rooms are not encrypted. They are files on a pod, protected only by that pod's permissions (Web Access Control). A room created here lets anyone with the link read and post, and only the owner change or remove messages. Every write is signed by your key, so the pod can tell who wrote what, but a pod owner with write access can alter any message; trust the pod you post on as you would trust a forum's operator.
Direct messages
Direct messages use NIP-17: the message is sealed and gift-wrapped with NIP-44 encryption, so relays carry only an opaque envelope from a throwaway key. Only the recipient and you can read it.
Identity and keys
You are a key pair. The private key never leaves your browser, extension or remote signer, and we cannot reset or recover it. Anyone with your private key is you; keep the backup from Settings safe. Requests to pods are signed with a short-lived event bound to the exact URL and method (NIP-98), so a captured request cannot be replayed elsewhere. A profile's NIP-05 address is only shown as verified after a direct check against that domain.
The code you run
Solid Chat is static files with no build step. Every library is vendored and pinned, with recorded checksums that are checked in continuous integration, and the page's Content Security Policy allows scripts from this origin only. There is no runtime dependency on a CDN. Events from relays and directories are signature-verified on your device; chat files from pods are data, rendered as text, with links clickable and media loaded only from https addresses.
Deletion
Deleting your own room message removes it from the pod where the pod lets you (room owners can; guests of an open room cannot). Deleting a direct message publishes a standard deletion request that well-behaved relays and clients honour, but cannot force every copy to disappear. "Delete for me" hides a message on your devices only.
Limits you should know
- Pods and relays see your IP address and when you are online. Solid Chat is not an anonymity tool; use it over a VPN or Tor if that matters to you.
- Room content is public to whoever the pod allows, including search engines if the pod lets them in.
- Standard NIP-17 messages have no forward secrecy: a private key stolen later can decrypt past envelopes still held on relays.
- A compromised device, browser extension or signer can read what you can read.
- There are no push notifications while the tab is closed.
Reporting
Found a vulnerability? Please open an issue at github.com/solid-chat/v2/issues, or, for something sensitive, send the maintainer an encrypted direct message from inside Solid Chat.
Source: github.com/solid-chat/v2.