Security
In short
- Messages and calls are encrypted end to end between the two phones.
- Your identity keys stay in your iPhone’s Keychain.
- There are no servers. Your messages never pass through us.
- Some information, such as your display name and IP address, is visible on the local network.
- Found a security issue? Email [email protected] with “Security” in the subject.
How encryption works, in plain language
When you send a message or make a call, LanCall encrypts it on your iPhone. Only the other person’s iPhone can decrypt it. Anyone in between sees scrambled data. That includes the Wi‑Fi network owner, other people on the same network, and us.
Each iPhone has its own identity key. It is created on the phone and kept in the iPhone Keychain. It never leaves your phone. When two phones connect, they use their keys to agree on a secret that only those two phones know. That secret is used to encrypt everything they send each other.
Encryption is strong protection, but no software is perfect. We describe what LanCall protects, and what it doesn’t, as accurately as we can.
Technical details
LanCall uses Apple’s CryptoKit. It doesn’t use any custom cryptographic algorithms.
- Identity: each device has a long-term Ed25519 identity key, stored in the iPhone Keychain.
- Key agreement: X25519 is used to set up shared keys between the two phones.
- Encryption: messages and call audio are encrypted with ChaCha20-Poly1305. This is authenticated encryption, so tampered data is detected and rejected.
Trust on first use, and how to verify
Encryption only helps if you are talking to the right phone. LanCall handles this in three ways:
- QR code and NFC are verified by key. When you add someone by scanning their QR code or tapping their NFC tag, LanCall gets their key directly from the code or tag. This confirms you are connected to that phone.
- Other contacts are trusted on first use. When you add someone from Nearby, by IP address or by link, LanCall remembers the key their phone presents the first time you connect. It then uses that key to recognise their phone later. This protects later conversations, but it can’t prove who was on the other end of the first connection.
- Safety numbers. To check a contact, compare the safety number for that chat on both phones, in person. If the numbers match, your conversation is with that phone and nobody is in the middle.
For people you meet in person, adding them by QR code or NFC is the easiest way to be sure.
What isn’t protected
Encryption protects the content of your messages and calls. It doesn’t hide everything:
- Your display name and a random device identifier. When “Visible to nearby phones” is on, these are advertised on the local network so nearby LanCall users can find you. They are not encrypted. You can turn this off in My card.
- IP addresses. Phones you connect to can see your iPhone’s local IP address, as with any local network connection.
- Traffic patterns. The network operator, and others on the network, may see that two devices are exchanging data, when, and roughly how much. They can’t read the content.
- Your unlocked phone. Anyone who can unlock your iPhone can read your chats. Use a strong passcode.
- The other person. The person you talk to can screenshot, record or share what you send.
- Backups. If you back up your iPhone, iOS may include LanCall’s data in that backup. Its protection depends on your backup settings.
Reporting a security issue
If you think you’ve found a security vulnerability in LanCall or this website, please tell us.
- Email [email protected] with “Security” in the subject.
- Include what you found, how to reproduce it, and the LanCall and iOS versions you used.
- We will acknowledge your report within 72 hours and keep you updated while we work on a fix.
- Please give us reasonable time to fix the issue before you make it public.
We won’t take legal action against good-faith research that follows this policy. That means research that doesn’t access other people’s devices or data, doesn’t harm users, and is reported to us privately.