DocsPrivacy

What Knit encrypts, and what stays visible

Direct and group chats are end-to-end encrypted: only the people in the conversation can read them, even though other people's phones carry them. The Nearby room is open by design, and a few routing details stay visible so phones know where to take each message.

Checked against Knit 2.9.0

On Knit, your messages travel through phones that belong to strangers. That's what makes the mesh work, and it's why direct and group messages are sealed on your phone before they leave it, with keys that only the people in the conversation hold.

What's sealed

Direct messagesGroup chatsNearby room
Text, photos, voice notesSealedSealedOpen
Reactions and ticksSealedSealedOpen
Forward secrecyIf both apps are currentIf every app is currentNone

Open means anyone in range can read it. Sealed means locked with keys that only the people in the conversation have. A phone that carries a direct or group message holds a copy it can't open, and so does an Internet relay, which is opt-in.

In direct and group chats, the seal also covers what kind of attachment a message has, so a carrying phone can't tell a photo from a voice note. A reaction or a delivery tick looks like any other sealed message, so nobody passing it along can tell who reacted to what, or when your message arrived.

The Nearby room is plaintext by design. It's for talking to everyone around you, with no fixed list of people to seal it for, so treat it like speaking out loud in a crowd.

What stays visible, and why

A message has to say where it's going, or no phone could deliver it. So the outside of each message, its envelope, stays readable while what's inside stays sealed:

  • Which Knit identity sent it, who it's for, when it was sent and how big it is.
  • For a group: its member list, and its name and photo if the group has them. Every group message carries these, so a member who missed a change still gets the current version.
  • Your profile: the name, status and profile picture you choose go out openly to the phones around you, so people can recognise you before they've added you. Updates also reach your contacts sealed, but the open version still goes out.
  • Whether two messages carry the same file. A carrying phone can't see the file, but it can tell when two messages point at the same one.

Someone watching the radios can also see that your phone sent something, and when, without being able to read it. Encryption protects what you say, not the fact that you're talking.

Checking you're talking to the right person

  1. Open the person's profile and find the Encryption section, which shows a safety number.
  2. With them in front of you, scan each other's code, or compare the numbers and tap Mark as verified.
  3. If you added them from a link and can't meet, compare the number over a call instead.

A match means the keys on your phone really are theirs, so nobody is sitting in the middle of the conversation. Your safety number stays the same while the message keys change, so a verified contact stays verified.

Every message also carries its sender's signature, Nearby room posts included. Nobody can post under your identity or change a message on its way without the change being caught and the message thrown away.

Forward secrecy: recorded messages stay closed

In direct and group chats, Knit keeps changing the keys as a conversation goes on, and deletes the ones it's finished with. Someone who records your sealed direct or group messages as they pass can't open them later, even if they get hold of a phone's keys afterwards, because the keys that would open them no longer exist.

  • Keys change by block of messages, not with every single message. A new block starts when the conversation turns around and the other person replies, after 200 messages, or after 24 hours.
  • A phone holds on to a finished key for a while longer, normally two days and never more than about a month, in case a late copy of a message still needs it. That recent stretch is the part someone holding a copied key could still open.
  • If someone did copy a phone's keys, they're locked out again once they lose access to the phone and each of you has started a fresh block.
  • When someone leaves a group, the members who stay switch to new keys, so what's sent after their leave reaches you is closed to them.

On your phone

Knit keeps your messages, contacts and keys in an encrypted database. Its key is locked by a hardware-backed key in Android's keystore, which never leaves the phone and isn't included in cloud backups, so the files are unreadable if they're copied off the phone. Reading them takes unlocking the phone and opening Knit, so your screen lock matters as much here as anywhere.

A backup from Settings › Backup and restore is one encrypted file, locked with a recovery key that Knit shows you once and doesn't keep. Without that key nobody can open it, Knit's developer included. Restore it onto one phone at a time: two phones sharing one identity keep resetting each other's conversations.

Keeping your conversations private

  • Verify the people you talk to most, in person if you can.
  • Keep Knit up to date, and ask the people you talk to to do the same, so your chats keep forward secrecy.
  • Use a screen lock on your phone.
  • Keep anything private out of the Nearby room.
  • Store your backup's recovery key somewhere safe, like a password manager.

What to expect

  • Routing details stay visible, as listed above: who a message is from and for, when, how big, and a group's member list, name and photo. Your profile's name, status and picture are public to the phones around you.
  • Anyone in range can read the Nearby room, and phones carry its posts for 6 hours.
  • If you pair an optional Meshtastic radio, its Meshtastic room sits outside Knit's encryption, like the Nearby room. A direct message sent over LoRa stays sealed, but its sender, recipient, timing and size travel on a public channel that reaches kilometres, which is why LoRa for direct messages has a switch of its own.
  • Internet relays are opt-in. A relay holds sealed copies of direct and group messages that it can't read, but it sees that a conversation is active and the IP addresses connecting to it.
  • Someone who can unlock your phone and open Knit can read what's in it, as with any messenger.

Common questions

Can Knit's developer read my messages?

No. Your direct and group messages are sealed on your phone, and only the phones in the conversation hold the keys. The mesh needs no server. Knit lists one Internet relay, run by its developer, and relays are opt-in. That relay holds sealed copies of your direct and group messages that it can't read, and it sees that a conversation is active and the IP addresses connecting to it.

Who can read the Nearby room?

Anyone in range, on purpose. It's plaintext by design, an open broadcast to everyone around you, so there's no fixed group of people to seal it for.

Do link previews leak anything?

Link previews are off until you turn them on. When they're on, your own phone fetches the page's title and picture, so that site sees your IP address, and sends them with your message. The people you send to never contact the site.

What if I lose my phone?

The database on it is encrypted, so reading your messages takes unlocking the phone. To carry on as yourself on a new phone, you need a backup and its recovery key; without them, you start over with a new identity and your contacts see someone new.

Read next

Something here unclear, wrong, or missing? Tell us and we'll fix the page.

← All docs

Bring your people into the conversation

Knit is on Android. Grab it on Google Play or F-Droid, and support development on Ko-fi, Liberapay or GitHub Sponsors. Knit for iPhone is on the way.

Requires Android 10+ — no Google Play services, no SIM, no account.