Privacy Tools Guide

Signal, Session, and SimpleX are the gold standard for encrypted messaging—but they make different security/usability trade-offs. Signal is user-friendly but relies on phone numbers (metadata leakage). Session removes phone numbers but has slower usability. SimpleX adds another layer (no user IDs at all) but requires manual contact exchange. This deep comparison helps you choose based on your actual threat model and who you’re messaging.

Quick Comparison Table

Aspect Signal Session SimpleX
Encryption Double Ratchet (Signal Protocol) Double Ratchet + Onion routing Double Ratchet + encrypted transport
Phone Number Required Yes No No
Metadata Visible to Server Connection timestamps, IP Onion-routed (hidden) Encrypted (hidden)
Server Open Source Partial (Signal server is open) Yes (based on Loki) Yes
Client Open Source Yes (iOS, Android, Desktop) Yes (iOS, Android, Desktop) Yes (iOS, Android, Desktop)
Device Sync Message history synced Limited sync No sync (by design)
Usability Excellent (SMS-like) Good (similar to Signal) Fair (manual contact exchange)
Group Chats Excellent Good Limited (experimental)
Video Calls Yes, encrypted Yes, encrypted Yes, encrypted
Ease of Setup Very easy (phone number) Easy (no phone needed) Hard (must exchange keys)
Best For Privacy-conscious daily use Higher threat model Maximum privacy
Recommendation General population Activists, journalists Ultra-sensitive communications

Deep Dive: Signal

Signal is the most popular secure messenger for good reason: military-grade encryption + extreme usability.

How Signal Works

Signal encryption architecture:
1. Your message is encrypted with Double Ratchet Protocol
2. Encryption keys change with every message (forward secrecy)
3. If attacker gets one key, can't decrypt old/future messages
4. Server stores encrypted message until recipient downloads it
5. Server doesn't have decryption keys (zero-knowledge)

Simplified flow:
Alice sends "Meet at 3 PM":
  → Message encrypted with unique key
  → Server stores encrypted blob (server sees: "message from Alice to Bob")
  → Server does NOT see: "Meet at 3 PM"
  → Bob decrypts message locally

Signal’s Strength: Encryption

Threat level: Government wants to read your messages

Can Signal protect you?
✓ YES — Signal Protocol is mathematically proven
✓ Court orders can't unlock past messages (forward secrecy)
✓ Signal doesn't have decryption keys, even if forced

Can government still get info?
⚠ YES — Metadata:
  - Knows you're communicating with Bob
  - Knows when (timestamp)
  - Knows from where (IP address if Signal server in US)

Signal’s Weakness: Phone Number = Identity

Problem: Your phone number is your Signal username.

Consequences:
1. Phone number reveals your identity
2. Anyone with your number can see you use Signal
   (shows "Signal user" in their contacts)
3. Government can subpoena phone number ↔ identity mapping
4. Attacker with your number can re-register as you
   (unless you enable registration lock)

Example attack:
Attacker knows: "Alice uses Signal"
Attacker gets your phone number: (503) 555-1234
Attacker opens Signal, adds (503) 555-1234
Attacker sees: "Alice" (knows it's you)

Signal Setup: 10 Seconds

1. Download app: https://signal.org
2. Enter phone number
3. Verify via SMS code
4. Set display name (optional)
5. Done — contacts using Signal appear immediately

That's it. Frictionless.

Backup/restore across devices:
→ Create "backup password" in Signal
→ On new device: Enter phone + password → restored

Best Use Case: Signal

General population: Friends, family, business ✓ Privacy-conscious professionals: Journalists, lawyers ✗ High-risk activists: (metadata still visible to US Signal server) ✗ Ultra-sensitive: (phone number is a liability)

Deep Dive: Session

Session removes the phone number problem by using Session IDs instead. It’s Signal’s codebase but with different identity model.

How Session Works

Session architecture:
1. No phone number — identity is a Session ID (random string)
2. Session ID: example "05de1b6e0b96f88ff2c7d3c6... " (55 characters)
3. You share your Session ID with people (like username)
4. Messages routed through Onion network (like Tor)
5. Server doesn't know who you are or who you're talking to
6. Only metadata visible to server: "Message received"
   (doesn't say from whom or to whom)

Session’s Strength: No Phone Number + Onion Routing

Threat level: Government monitors who you're talking to

Can Session protect you?
✓ YES — No phone number means no identity tied to number
✓ YES — Onion routing hides metadata from server
✓ YES — Server doesn't know you're talking to Bob

Attack scenario: Compare Signal vs Session
─────────────────────────────────────────────

Signal scenario:
  Government subpoenas Signal server
  Sees: Alice (503) 555-1234 ↔ Bob (503) 555-5678, Mar 15 2 PM
  Conclusion: Alice and Bob are communicating

Session scenario:
  Government subpoenas Session server
  Sees: "Message routed through onion layer"
  Conclusion: ??? (doesn't know who's talking to whom)

Session’s Weakness: Slower Usability

Problem 1: No automatic contact discovery
  Signal: Add phone number → contacts show up automatically
  Session: Must manually exchange Session IDs

  Reality: Session ID: "05de1b6e0b96f88ff2c7d3c6c..."
  You must share it via Signal (ironic), email, QR code

Problem 2: Slower delivery on Tor
  Session routes through onion network
  Adds 2-5 second latency vs Signal's instant
  Not a deal-breaker for messages, but noticeable

Problem 3: Limited device sync
  Signal syncs message history across devices
  Session: Devices maintain separate message history
  If you message on phone, desktop doesn't see it

Session Setup: 2 Minutes

1. Download: https://getsession.org
2. Create Session ID (randomly generated)
3. System shows your Session ID: "05de1b6e..."
4. Share with contacts via:
   - QR code (scan with other's Session app)
   - Copy ID and text via Signal/email
   - Write it down and meet in person

Contacts add your ID, they can message you.

Restore on new device:
→ Export recovery phrase (12 words)
→ On new device: Enter recovery phrase
→ Restored (message history is NOT synced)

Best Use Case: Session

Activists, journalists in surveilled countriesHigh-risk communications (metadata matters) ✓ People who don’t want to reveal phone numberCasual group chats (device sync is limited) ✗ Mainstream adoption (very few people use it)

Deep Dive: SimpleX

SimpleX is the newest and most privacy-focused. Removes the concept of user IDs altogether.

How SimpleX Works

SimpleX architecture (radically different):
1. No usernames, no phone numbers, no Session IDs
2. Instead: Unique contact links exchanged per person
3. Each contact has separate encryption keys
4. Server never knows your identity or who you're talking to
5. Even SimpleX can't know who's messaging whom

Simplified flow:
Alice creates a "contact link": "https://simplex.chat/contact/#..."
Alice shares link with Bob (via email, in person, etc.)
Bob clicks link, establishes encrypted channel to Alice
Only Alice and Bob know they're talking
SimpleX server: Sees encrypted blob, doesn't know sender/receiver

SimpleX’s Strength: Maximum Anonymity

Threat level: Adversary has access to server + government pressure

Can SimpleX protect you?
✓ YES — Even SimpleX developers can't see who's talking to whom
✓ YES — No usernames = no identity at all
✓ YES — Forward secrecy (every message has unique key)
✓ YES — Even if server is hacked, no metadata

Example attack (impossible):
Government: "Show us Alice's messages"
SimpleX: "We don't know who Alice is. She has no username."
Government: "Show us who's using app"
SimpleX: "We see encrypted blobs. We don't know usernames."
Government: "Show us who Alice is talking to"
SimpleX: "We don't know if she's even on our server."

SimpleX’s Weakness: Extreme Friction

Problem 1: Manual contact exchange required
  Signal/Session: Add someone, they appear automatically
  SimpleX: Must exchange contact links for every person

  Reality:
  Alice: "Here's my SimpleX link: https://simplex.chat/contact/#..."
  Bob: "Here's mine: https://simplex.chat/contact/#..."
  Both: Add each other

  Multiplied across 100 contacts = tedious

Problem 2: No group chats (yet)
  Signal: Create group, add 50 people, works instantly
  SimpleX: Group chats experimental, limited to ~10 people
  Not practical for large teams

Problem 3: No auto-sync
  Message only stored locally on your devices
  New device: Install SimpleX, all history is gone
  Must manually export/import if you want backup

Problem 4: Niche adoption
  Signal: Everyone heard of it
  Session: Privacy people know it
  SimpleX: Very few people use it (smaller network)

SimpleX Setup: 5 Minutes per Contact

1. Download: https://simplex.chat
2. App generates unique contact link for you
   (looks like: https://simplex.chat/contact/#...)
3. Share your link via:
   - QR code
   - Copy URL and email
   - Text it
   - Send physical print

For each contact:
1. They send you their SimpleX link
2. You click their link in app
3. Encrypted channel established
4. Can now message

Repeats for every new contact (tedious but private).

Best Use Case: SimpleX

Ultra-sensitive communications (whistleblowers, activists at extreme risk) ✓ Temporary conversations (no sync = no lingering trace) ✓ Maximum anonymity neededNormal messaging (too friction-heavy) ✗ Group chat (experimental, limited) ✗ General adoption (very small user base)

Detailed Comparison: Real-World Scenarios

Scenario 1: Business Messaging (Team of 5)

Requirement: Secure, but need group chat and device sync

Signal:
✓ Group chat: Excellent, can add 5 people instantly
✓ Device sync: Works across laptop, phone, desktop
✓ Usability: Everyone can use it immediately
✓ Adoption: Team already has Signal usually
Answer: Use Signal

Session:
⚠ Device sync: Limited, devices have separate histories
⚠ Group chat: Works but slower
⚠ Adoption: Team may not be on Session
Answer: Not ideal for this use case

SimpleX:
✗ Device sync: None (messages local only)
✗ Adoption: Too friction-heavy for business team
Answer: Not suitable

Scenario 2: Journalist Source Protection

Requirement: Source anonymity + metadata protection

Signal:
✓ Encryption: Excellent
✓ Metadata: Server sees journalist ↔ source (phone visible)
⚠ Risk: Government subpoenas phone number mapping
Answer: Acceptable if source uses public WiFi/VPN to hide IP

Session:
✓ Encryption: Excellent
✓ Metadata: Onion-routed, server doesn't see who's talking
✓ Phone: No phone number required
Answer: Better choice than Signal for this use case

SimpleX:
✓ Encryption: Excellent
✓ Metadata: SimpleX literally doesn't know source exists
⚠ Friction: Journalist + source must exchange links (doable once)
Answer: Best, but requires one-time setup

Scenario 3: Large Group Chat (50+ People)

Requirement: Encrypted, but needs to work at scale

Signal:
✓ Group chat: Handles 50+ people easily
✓ Device sync: All devices stay in sync
✓ Usability: Seamless
Answer: Use Signal

Session:
⚠ Group chat: Works but slower than Signal
⚠ Adoption: Most people aren't on Session
Answer: Not ideal

SimpleX:
✗ Group chat: Experimental, max ~10 people
Answer: Not suitable

Detailed Comparison: Encryption & Security

Does Their Encryption Differ?

Signal protocol (used by Signal, Session, SimpleX):
- Double Ratchet algorithm (proven cryptography)
- Forward secrecy (if one key leaked, can't decrypt history)
- Future secrecy (if compromise happens, can't predict future keys)

All three apps use fundamentally same encryption.

Differences:
────────────────────────────────────────────────
Signal: Encryption is strong. But metadata visible to server.
Session: Same encryption. Plus onion routing hides metadata.
SimpleX: Same encryption. Plus server doesn't know identities exist.

Analogy:
─────────────────────────────────────────────────
Signal: Lock on your message, but envelope has sender/recipient written.
Session: Lock + sender/recipient are routed anonymously.
SimpleX: Lock + envelope has no sender/recipient, just encrypted blob.

Forward Secrecy: All Three Have It

Forward secrecy = If attacker gets today's key, can't decrypt past messages.

Test scenario: Attacker compromises Signal server March 15, 2026

Signal before compromise (March 1):
  ✓ Messages encrypted with key-A
  → Attacker can't decrypt (doesn't have key-A)
  → Forward secrecy protects past messages

Signal after compromise (March 20):
  ✓ Messages encrypted with key-B
  → Attacker can't predict key-B
  → Future secrecy protects new messages

Result: Only messages from March 15-19 are at risk.
Messages before/after are safe.

All three (Signal, Session, SimpleX) have this protection.

Setup Comparison: Time Investment

Signal: 30 seconds
  1. Download
  2. Phone number
  3. SMS verification
  4. Done

Session: 2 minutes
  1. Download
  2. Session ID generated
  3. Share with contacts (find their IDs)
  4. Done

SimpleX: 5+ minutes per contact (once)
  1. Download
  2. Get your SimpleX link
  3. For each contact: Share link, receive theirs, add each other
  4. Repeat 10-50 times depending on contact count

Reality: Most people will choose Signal.

Switching Between Apps

Can you use multiple simultaneously?
Answer: YES

Recommended approach:
- Signal: Default for friends, family, most people
- Session: For privacy-aware contacts
- SimpleX: For journalists, high-risk sources

They don't interfere. Contacts appear in each app separately.

Migration path if you're a privacy person:
Year 1: Use Signal
Year 2: Introduce Session to privacy-conscious contacts
Year 3: SimpleX for ultra-sensitive conversations
(Gradual adoption is better than switching everyone at once)

Recommendation by User Type

General user (friends, family):
→ Signal (best usability, still very secure)

Privacy-conscious professional:
→ Signal for most contacts, Session for privacy people

Journalist with sources:
→ Session for anonymous sources
→ SimpleX for ultra-sensitive whistleblowers

Activist in surveilled country:
→ Session (metadata protection matters)

Software engineer (checking updates in chat):
→ Signal (most stable, widely available)

Person in high-risk situation:
→ Session + SimpleX combination
→ Session for regular communication
→ SimpleX for critical information

How to Get Contacts to Adopt

The private messaging app with the most users wins.

Signal:
  Most likely success: "My work/lawyer recommends it"
  Most people already know about it

Session:
  Success method: "It's like Signal but more private"
  Message: "If you care about metadata, use Session"

SimpleX:
  Success: Very limited (only privacy extremists)
  Best approach: For one critical contact/situation
  Not a mainstream replacement

Built by theluckystrike — More at zovo.one