Security & Privacy

What's protected, what's visible, and what can be obtained under subpoena — organized by which features you use.

If your hosting provider is subpoenaed

They CAN provideThey CANNOT provide
Call/message metadata (times, durations)Note content, transcripts, report bodies
Encrypted database blobsVolunteer names (end-to-end encrypted)
Which volunteer accounts were active whenContact directory records (end-to-end encrypted)
Message content (encrypted on arrival, stored as ciphertext)
Decryption keys (protected by your PIN, your identity provider account, and optionally your hardware security key)
Per-note encryption keys (ephemeral — destroyed after wrapping)
Your HMAC secret for reversing phone hashes

The server stores data it cannot read. Metadata (when, how long, which accounts) is visible. Content (what was said, what was written, who your contacts are) is not.


By feature

Your privacy exposure depends on which channels you enable:

Voice calls

If you use…Third parties can accessServer can accessEnd-to-end encrypted content
Twilio/SignalWire/Vonage/PlivoCall audio (live), call recordsCall metadataNotes, transcripts
Self-hosted AsteriskNothing (you control it)Call metadataNotes, transcripts
Browser-to-browser (WebRTC)NothingCall metadataNotes, transcripts

Telephony provider subpoena: They have call detail records (times, phone numbers, durations). They do NOT have call notes or transcripts. Recording is disabled by default.

Transcription: Transcription happens entirely in your browser using on-device AI. Audio never leaves your device. Only the encrypted transcript is stored.

Text messaging

ChannelProvider accessServer storageNotes
SMSYour telephony provider reads all messagesEncryptedProvider retains original messages
WhatsAppMeta reads all messagesEncryptedProvider retains original messages
SignalSignal network is end-to-end encrypted, but the bridge decrypts on arrivalEncryptedBetter than SMS, not zero-knowledge

Messages are encrypted the moment they arrive at your server. The server stores only ciphertext. Your telephony or messaging provider may still have the original message — that’s a limitation of those platforms, not something we can change.

Messaging provider subpoena: SMS providers have full message content. Meta has WhatsApp content. Signal messages are end-to-end encrypted to the bridge, but the bridge (running on your server) decrypts them before re-encrypting for storage. In all cases, your server only has ciphertext — the hosting provider cannot read message content.

Notes, transcripts, and reports

All volunteer-written content is end-to-end encrypted:

  • Each note uses a unique random key (forward secrecy — compromising one note doesn’t compromise others)
  • Keys are wrapped separately for the volunteer and each admin
  • The server stores only ciphertext
  • Decryption happens in the browser
  • Custom fields, report content, and file attachments are all individually encrypted

Device seizure: Without your PIN and access to your identity provider account, attackers get an encrypted blob that is computationally infeasible to decrypt. If you also use a hardware security key, three independent factors protect your data.


Volunteer phone number privacy

When volunteers receive calls to their personal phones, their numbers are exposed to your telephony provider.

ScenarioPhone number visible to
PSTN call to volunteer’s phoneTelephony provider, phone carrier
Browser-to-browser (WebRTC)No one (audio stays in browser)
Self-hosted Asterisk + SIP phoneOnly your Asterisk server

To protect volunteer phone numbers: Use browser-based calling (WebRTC) or provide SIP phones connected to self-hosted Asterisk.


Recently shipped

These improvements are live today:

FeaturePrivacy benefit
Encrypted message storageSMS, WhatsApp, and Signal messages stored as ciphertext on your server
On-device transcriptionAudio never leaves your browser — processed entirely on your device
Multi-factor key protectionYour encryption keys are protected by your PIN, your identity provider, and optionally a hardware security key
Hardware security keysPhysical keys add a third factor that cannot be remotely compromised
Reproducible buildsVerify that deployed code matches the public source
Encrypted contact directoryContact records, relationships, and notes are end-to-end encrypted

Still planned

FeaturePrivacy benefit
Native call-receiving appsNo personal phone numbers exposed

Summary table

Data typeEncryptedVisible to serverObtainable under subpoena
Call notesYes (end-to-end)NoCiphertext only
TranscriptsYes (end-to-end)NoCiphertext only
ReportsYes (end-to-end)NoCiphertext only
File attachmentsYes (end-to-end)NoCiphertext only
Contact recordsYes (end-to-end)NoCiphertext only
Volunteer identitiesYes (end-to-end)NoCiphertext only
Team/role metadataYes (encrypted)NoCiphertext only
Custom field definitionsYes (encrypted)NoCiphertext only
SMS/WhatsApp/Signal contentYes (on your server)NoCiphertext from your server; provider may have original
Call metadataNoYesYes
Caller phone hashesHMAC hashedHash onlyHash (not reversible without your secret)

For security auditors

Technical documentation:

Llamenos is open source: github.com/rhonda-rodododo/llamenos