Privacy Tools Guide

Union organizers face unique challenges when protecting member communications. Unlike typical enterprise environments, union communications often involve sensitive discussions about workplace conditions, organizing strategies, and member personal information that could subject participants to retaliation. This guide provides practical privacy tools and implementation strategies specifically tailored for union organizing contexts.

Understanding the Threat Landscape

Before selecting tools, organizers must understand what they are protecting against. Employer surveillance has evolved beyond simple monitoring of company devices. Modern threats include:

The tool selection below addresses these threats through defense-in-depth strategies.

Encrypted Messaging: Signal and Matrix

Signal remains the gold standard for secure messaging due to its rigorous implementation of the Signal Protocol. For union organizers, Signal provides:

For larger organizing campaigns requiring group coordination, consider Element (Matrix protocol) for these additional capabilities:

# Self-hosted Matrix server configuration example
# /etc/matrix-synapse/homeserver.yaml
server_name: unionorganize.local
report_stats: false

# Disable federation for maximum privacy
federation_sender_whitelist:
  - unionorganize.local

# Enable end-to-end encryption by default
encryption:
  enabled: true
  default_settings:
    algorithm: m.megolm.v1.aes-sha2

Matrix’s self-hosting option allows organizers to maintain complete control over their communication infrastructure, eliminating reliance on third-party servers that could be subpoenaed or compromised.

Secure File Sharing for Membership Data

Organizing campaigns require secure document sharing for member lists, strategy documents, and training materials. Several approaches provide varying levels of protection:

Cryptomator for Client-Side Encryption

Cryptomator encrypts files before cloud upload, ensuring that even if the cloud provider is breached, member data remains protected:

// Using cryptomator-core in a Node.js context
const { Vault, CryptoModule } = require('@cryptomator/core');

async function createSecureVault(masterPassword, vaultPath) {
  const cryptoModule = new CryptoModule();
  const vault = await Vault.create(vaultPath, masterPassword, cryptoModule);

  // Now you can add files that auto-encrypt on write
  await vault.write('member-list.enc', sensitiveData);
  return vault;
}

OnionShare for Anonymous File Transfer

OnionShare enables completely anonymous file sharing without requiring recipients to install special software:

# Installing and running OnionShare from command line
sudo apt install onionshare
onionshare --verbose --public \
  --title "Union Resources" \
  --content /path/to/organizing-materials/

OnionShare generates a unique Tor hidden service URL that recipients can access through the Tor Browser, providing anonymity for both sender and receiver.

Email Encryption: OpenPGP Implementation

For formal communications requiring verifiable authenticity, OpenPGP email encryption remains valuable. However, usability challenges make it essential to provide member support during adoption:

# Generating a GPG key pair for secure union communications
gpg --full-generate-key
# Select RSA, 4096 bits, expiration of 1-2 years
# Use a strong passphrase and store backup securely

# Exporting public key for member exchange
gpg --armor --export yourname@union.org > public_key.asc

# Encrypting sensitive documents before distribution
gpg --encrypt --recipient member@union.org \
  --armor sensitive_document.pdf

Consider establishing a key signing party within your organizing committee to build trust in key authenticity and reduce phishing risks.

Network-Level Protection

Protecting communication metadata requires network-level countermeasures:

VPN Infrastructure

A self-hosted VPN using WireGuard provides:

# WireGuard server configuration
[Interface]
PrivateKey = <server-private-key>
Address = 10.0.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = <organizer-device-key>
AllowedIPs = 10.0.0.2/32
PersistentKeepalive = 25

This configuration routes all organizer traffic through a centralized server, obscuring individual connection metadata from internet service providers.

DNS over HTTPS Implementation

Prevent DNS queries from revealing browsing activity:

// JavaScript snippet demonstrating DNS-over-HTTPS query
async function resolvePrivacyDNS(hostname) {
  const dnsQuery = {
    name: hostname,
    type: 'A'
  };

  const response = await fetch('https://dns.quad9.net:5053/dns-query', {
    method: 'POST',
    headers: { 'Content-Type': 'application/dns-message' },
    body: encodeDNS(dnsQuery)
  });

  return decodeDNS(await response.arrayBuffer());
}

Device Security Fundamentals

No tool suite protects against compromised devices. Implement these baseline security measures:

  1. Full disk encryption: Enable FileVault (macOS) or LUKS (Linux) to protect seized devices
  2. Separate devices: Consider using dedicated devices for sensitive organizing work
  3. Secure boot with UEFI passwords: Prevent hardware-level compromise
  4. Regular security updates: Patch vulnerabilities promptly
  5. Hardware security keys: Use YubiKeys for two-factor authentication on all accounts

Implementing Incident Response

Prepare procedures for device compromise:

## Device Compromise Response Protocol

1. IMMEDIATE: Disconnect device from network
2. ASSESS: Determine what data may have been accessed
3. NOTIFY: Alert affected members through pre-established secure channels
4. PRESERVE: Document timeline for potential legal proceedings
5. WIPE: Securely erase device before any further use
6. TRANSITION: Migrate communications to new secure channels

Establish a communication tree so that if one organizer is compromised, others can continue operations without interruption.

Building Member Privacy Culture

Technical tools work best within a culture of privacy awareness:

Built by theluckystrike — More at zovo.one