Privacy Tools Guide

Set up an OnionShare dead drop by installing the application, creating a receive-only mode, and hosting it as a Tor onion service that accepts file uploads over encrypted channels. Sources access the service via an one-time URL over Tor, submit documents, and disconnect without leaving identifying information. OnionShare never logs IP addresses, doesn’t require accounts, and automatically deletes files after retrieval—creating truly anonymous submission channels for developers and power users protecting sources.

Understanding the Dead Drop Model

A dead drop works like a physical mailbox in espionage tradecraft: one party leaves information at a predetermined location for another party to retrieve later. In digital form, this means your source can submit encrypted documents or messages that only you can decrypt, without any direct communication or IP address correlation.

OnionShare provides the infrastructure by hosting a Tor onion service—a private, encrypted website accessible only through the Tor browser. The connection is end-to-end encrypted, and the server leaves no logs on traditional internet infrastructure.

Prerequisites

Before setting up your dead drop, ensure you have:

Step-by-Step Setup

1. Install OnionShare

On macOS with Homebrew:

brew install --cask onionshare

On Linux:

sudo apt install onionshare

On Windows, download the installer from the official website.

2. Configure OnionShare for Dead Drop Mode

Launch OnionShare and select “Receive Files” mode. This configures OnionShare as a dead drop where sources can upload files to your server.

In the settings panel, configure these options:

3. Set Up Receive Options

Configure the receive behavior in the settings:

Maximum file size: 50MB (adjust based on your needs)
Receive length: 0 (unlimited—sources can submit anytime)

You can also add a custom welcome message that sources see when they visit your onion service.

4. Generate and Secure Your Onion Address

OnionShare generates a unique .onion URL. This address serves as your dead drop location. The application provides two versions:

For a source dead drop, share the long address. Copy this address and store it securely—you cannot recover it if lost.

5. Enable Persistent Storage

By default, received files are stored in OnionShare’s temporary directory. Configure a persistent storage location:

  1. Go to SettingsReceive
  2. Set “Save files to” to a dedicated directory
  3. Ensure proper filesystem permissions
mkdir -p ~/OnionShare/drops
chmod 700 ~/OnionShare/drops

For additional security, encrypt files before processing them. Create a simple GPG wrapper:

#!/usr/bin/env python3
import gnupg
import os
from pathlib import Path

class SecureDrop:
    def __init__(self, gpg_home='/path/to/gpg/home'):
        self.gpg = gnupg.GPG(gnupghome=gpg_home)

    def encrypt_file(self, filepath, recipient_keyid):
        with open(filepath, 'rb') as f:
            encrypted = self.gpg.encrypt_file(
                f,
                recipients=[recipient_keyid],
                output=f"{filepath}.gpg"
            )
        return encrypted.ok

# Usage
drop = SecureDrop()
drop.encrypt_file('uploaded_file.bin', 'YOUR_KEY_ID')

This ensures that even if someone compromises your server, they cannot read the submitted content without your private GPG key.

Operational Security Considerations

Running a dead drop requires attention to operational security:

Network Isolation

Run OnionShare on an isolated network segment if possible. Consider using a dedicated VPN in addition to Tor to prevent traffic correlation attacks.

File Handling

Create a processing workflow that minimizes exposure:

  1. Download files from OnionShare to an air-gapped machine
  2. Transfer to a secure analysis environment
  3. Wipe the original uploads immediately

Metadata Stripping

Sources should strip metadata from documents before submission. Provide them with tools or instructions:

# Using exiftool to strip metadata
exiftool -all= document.pdf
exiftool -all= image.jpg

Sharing the Dead Drop Address

When providing the onion address to sources, use multiple channels:

Example formatted instructions:

To submit information securely:

1. Download Tor Browser from torproject.org
2. Copy and paste this address into Tor Browser:
   [your-onion-address].onion

3. Follow the on-screen instructions to upload files

Important: Close Tor Browser after submission to protect your session.

Troubleshooting Common Issues

Connection Problems

If sources cannot connect to your dead drop:

Large File Uploads

OnionShare may time out with large files. Instruct sources to:

Server Availability

For high-stakes operations, run OnionShare on a VPS with uptime guarantees. Configure automatic restart scripts:

#!/bin/bash
while true; do
    onionshare --receive --persistent ~/OnionShare/config.json
    sleep 5
done

Built by theluckystrike — More at zovo.one