Privacy Tools Guide

Overview

Activist communication faces unique threats: state surveillance, device seizure, network monitoring. This guide covers four secure messaging platforms—Signal, Briar, Session, and Cwtch—each designed for different threat models. No messaging app is perfect; this guide helps you choose based on your specific risks.

Threat Model Spectrum

Before choosing a tool, understand your risks:

Low Risk (Domestic journalist, researcher):

Medium Risk (Activist in semi-authoritarian country):

High Risk (Dissident in authoritarian state):

Extreme Risk (Journalist covering dangerous protests):


Signal

Signal is the most-used secure messenger. It’s backed by Signal Foundation (non-profit), uses Double Ratchet encryption, and has been audited multiple times.

How It Works:

  1. Download Signal app (iOS, Android, Desktop)
  2. Verify phone number (SMS or voice call)
  3. Contact list auto-loads (checks Signal users)
  4. Messages encrypted end-to-end (Double Ratchet protocol)
  5. All contacts see if you’re “online” (metadata leak)

Encryption Strength:

Metadata Leakage:

Strengths:

Weaknesses:

Best For: Journalists, civil rights organizations, organized activism (not clandestine)

Phone Number Alternative: Use a Google Voice number (USA) or Twilio number (BYOD), but Signal may suspend accounts it suspects are burner numbers.


Briar

Briar is a decentralized peer-to-peer messenger. It works over Tor and offline (via Bluetooth/WiFi direct). No server required.

How It Works:

  1. Download Briar (Android only, unfortunately)
  2. Create username + password (no phone number needed)
  3. Share unique QR code to add contacts
  4. Messages encrypted and stored locally
  5. Transmit over Tor, Bluetooth, or WiFi mesh
  6. Works completely offline with local contacts

Encryption Strength:

Metadata Hiding:

Strengths:

Weaknesses:

Best For: Dissidents, journalists in authoritarian countries, high-risk activists, decentralization advocates

Device Seizure Scenario: If arrested with Briar:

  1. Use weak password (so “I forgot it” is plausible)
  2. Or have separate Briar account for public discussions (deniable)
  3. Or use biometric unlock that can’t be forced (in some jurisdictions)

Session

Session is a fork of Signal that removes the phone number requirement. It uses Tor-based onion routing (Session Open Group Server network) instead of a central server.

How It Works:

  1. Download Session (iOS, Android, Desktop)
  2. Create Session ID (cryptographic, no phone number)
  3. Download Tor (automatic, built-in)
  4. Contact others via Session ID (QR code or username)
  5. Messages routed through decentralized Loki network (Session’s backbone)
  6. Open groups (public, non-encrypted) or closed groups (encrypted)

Encryption Strength:

Metadata Hiding:

Strengths:

Weaknesses:

Best For: Privacy advocates, activists in high-surveillance regions, those avoiding phone number requirement, intermediate-risk scenarios

Loki Dependency Risk: If Session Foundation is compromised or forced to log metadata, Session users are at risk. This is a centralization weakness compared to Briar (fully decentralized).


Cwtch

Cwtch (Welsh for “hug”) is a decentralized messenger built on Tor. It uses mixnets (sender ambiguity) and onion routing for extreme privacy.

How It Works:

  1. Download Cwtch (currently beta, limited mobile support)
  2. Create profile (no identity needed)
  3. Connect to Tor (automatic)
  4. Add contacts via unique address (Cwtch identity)
  5. Send messages (routed through Tor + Ricochet-IM infrastructure)
  6. Complete anonymity (even server doesn’t know sender)

Encryption Strength:

Metadata Hiding:

Strengths:

Weaknesses:

Best For: Academics researching privacy, extreme-risk dissidents, theoretical privacy exercises, long-form asynchronous communication

Use Case: Whistleblowing (slow, anonymous, deniable messages), not organizing (requires real-time)


Comparison Table

Feature Signal Briar Session Cwtch
No Phone Number
Offline Capable
Decentralized Partial (Loki)
Metadata Privacy Low Very High High Maximum
Ease of Use Excellent Good Good Poor
User Base Size 10M+ 100K+ 500K+ 10K
Platforms iOS, Android, Desktop Android only iOS, Android, Desktop Desktop (beta)
Audit Status Multiple audits Peer-reviewed Limited Academic
Group Messaging ✗ (beta)
Voice/Video
Setup Time 2 min 5 min 5 min 15 min
Cost Free Free Free Free

Threat Model Decision Tree

Q: Do you need to use a phone number?

Q: Do you need offline capability?

Q: How important is user base size?

Q: What’s your device seizure risk?

Q: Do you need anonymity even from receiver?


Device Seizure Preparation

Before Arrest (Signal):

  1. Disable “Send Read Receipts” (Settings → Privacy)
  2. Disable location sharing
  3. Disable message previews on lock screen
  4. Enable biometric lock on Signal
  5. Disable backup to cloud (Settings → Chats → Backups)
  6. Pre-arrange with team: “If I’m arrested, delete our group chat” (if possible)
  7. Use trusted contacts only (mutual OG relationships)

Before Arrest (Briar):

  1. Use strong password (but memorizable)
  2. Create separate “public” account (for plausible deniability)
  3. Store contacts locally (don’t email them)
  4. Document Briar ID on paper (hidden location)
  5. Test Bluetooth mesh with trusted people
  6. Have offline conversation plan (Bluetooth as fallback)

Before Arrest (Session):

  1. Use strong Session ID password
  2. Turn OFF cloud backups
  3. Store Session ID on paper (hidden)
  4. Pre-arrange group key with trusted contacts
  5. Create deniable open group (claim you didn’t start it)
  6. Disable message notifications

During Arrest:

Post-Arrest (if released):


Real-World Scenarios

Journalist Covering Protests:

Human Rights Documenter (Authoritarian Country):

Whistleblower Communicating with Journalist:

Labor Organizer (Democratic Country):


Operational Security (OPSEC) Tips

  1. Don’t mix identities. Don’t use Signal with your real phone number + Briar anonymously on same device. Use separate devices or virtualized profiles.

  2. Assume group chats are compromise points. If one member is infiltrated, assume all messages are read. Share only what’s necessary.

  3. Use code words. Instead of “protest at main square,” use “Tuesday meeting at usual place.” Understand that message timing is visible (even if content is encrypted).

  4. Verify contacts in person. For high-risk organizing, verify Session/Briar IDs face-to-face. QR codes can be spoofed.

  5. Delete often. Set message auto-delete (if available). Manual deletion is not secure against forensics.

  6. Use disappearing messages. Signal supports disappearing messages (24 hours default). Turn it ON for sensitive groups.

  7. Assume network-level surveillance. Even with encrypted messaging, law enforcement can see: who talks to whom, when, frequency, message size. Use randomized patterns (don’t always message at 9 AM).

  8. Have offline plans. If Signal fails, how do you communicate? Pre-arrange dead drop locations, Briar mesh fallback, burner phone protocols.


Backup and Recovery

Signal:

Briar:

Session:

Cwtch:


Integration with Other Tools

Signal + Dead Drops:

Briar + Tor Browser:

Session + ProtonMail:


When NOT to Use These Tools

Don’t use any encrypted messenger if:

In those cases:


Bottom Line

For general activism/organizing: Signal. Easiest to use, largest user base, sufficient security for most scenarios.

For high-risk/offline scenarios: Briar. No phone number, offline mesh capability, maximum decentralization.

For privacy advocates avoiding phone numbers: Session. Good balance of privacy, ease-of-use, and user base.

For extreme anonymity/whistleblowing: Cwtch. Theoretical maximum privacy, but slow and not production-ready.

No messaging app protects you from physical torture, legal pressure, or state-backed surveillance. Use encrypted messaging as one tool in a broader OPSEC strategy. Combine with dead drops, offline planning, legal support, and—most importantly—community networks you trust.

Verify Signal Setup via CLI

# Signal CLI (signal-cli) — send messages programmatically or verify setup
# Install: https://github.com/AsamK/signal-cli

# Register a number (requires SMS verification)
signal-cli -u +1234567890 register

signal-cli -u +1234567890 verify 123456

# Send a test message to verify end-to-end delivery
signal-cli -u +1234567890 send -m "Test secure message" +0987654321

# Check safety numbers (verify contact identity)
signal-cli -u +1234567890 listIdentities

# For maximum operational security: run Signal on a dedicated device
# with no other apps, a burner number, and Wi-Fi only (no SIM)

Built by theluckystrike — More at zovo.one