Docs › Encryption
How the at-rest encryption works.
The key is derived from your password in your browser. Every message on the server is an opaque envelope. Decryption happens locally when you open a message.
The shape of the design
xail.me uses one cryptographic primitive for at-rest encryption: an authenticated encryption with associated data envelope that the browser seals before any message leaves your device. The server stores the sealed envelope, the routing metadata the mail system needs to deliver and list mail, and nothing else. Decryption happens in your browser when you open the message.
Where the key comes from
- Your password is the input the web client uses to derive the key. The derivation happens locally; the password never leaves your device.
- The web client produces a key the server has no copy of. The server only stores the salt the derivation needs and the public half of any keypair the browser generates for the envelope.
- On a new device, the web client re-derives the same key from the same password and the same stored salt; the stored mail opens on that device the same way it does on any other.
What the server holds
For each stored message the server holds:
- The sealed envelope — an opaque blob the server cannot open.
- The header parameters needed to identify the envelope primitive (algorithm name, ephemeral key, nonce).
- The routing metadata any mail system needs: which account the row belongs to, the sender and recipient addresses, when the message arrived, the folder it sits in, the byte length of the envelope, and the SMTP threading id.
The full read boundary — every field, marked as visible or sealed — is on the security model page.
What happens when you sign in on a new device
- You sign in on my.netquirk.com with the same identity that owns the mailbox.
- The xail.me web client asks for the password. The browser uses the password and the stored salt to derive the same key on the new device.
- The browser pulls the stored envelopes from the server and opens them locally. The server never sees the plaintext.
What this does not do
- The key is not a service you can recover from a server console; the operator of xail.me cannot read your stored mail. A forgotten password on a fresh device means the stored mail cannot be opened.
- At-rest encryption is not the same as end-to-end encryption. xail.me stores mail encrypted at rest; mail in transit follows the same TLS posture every modern web service uses.
- The signature on an outgoing message is sealed like the body and the subject; the recipient's view of the signature is the same shape as the recipient's view of the body.
Read next
- Security model — the field-by-field read boundary.
- FAQ — common questions about sign-in, storage, and recovery.