Cyberdione Labs
Cyberdione Labs

Zero-install Tor from the browser

THE ONION SHELL — A STATIC WEB TOR CLIENT

HOPE 26 · SATURDAY 1100 · GRAND BALLROOM

Cyberdione Labs · The Onion Shell · HOPE 26© 2026
Background

What is Tor?

Free, open-source software for private, uncensored access to the internet
browse privately, explore freely.

Browse privatelyTrackers can’t follow you across sites.
Defy surveillanceYour network sees Tor — not what you read.
Resist fingerprintingTor Browser makes every user look the same.
Explore freelyReach sites your home network blocks.

It works by routing your traffic through three volunteer relays, each wrapped in encryption — so no one in between can tie you to what you read.

Cyberdione Labs · The Onion Shell · HOPE 26© 2026
How it works
Cyberdione Labs · The Onion Shell · HOPE 26© 2026
The hostile endpoint

What actually reaches each Tor tool

Cyberdione Labs · The Onion Shell · HOPE 26© 2026

Escape the Walled Garden

The Onion Shell is a static web application: no install, no extension, and no application backend. Arti runs locally as WebAssembly, builds a real three-hop Tor circuit, and gives you an in-page SSH client over Tor.

one URLArti-WASMTor + SSHall inside the tab

It exists for the people Tor was built for but who can't install it: managed laptops, school Chromebooks, locked-down phones, censored networks. The population that most needs Tor is the one least able to install it — so this removes the install.

if you can open a tab, you can reach the onion network.

Not affiliated with The Tor Project. The Onion Shell is not an official client of The Tor Project, Inc. We publish to gitlab.torproject.org as an independent open-source contribution — this does not imply endorsement by The Tor Project, Inc.

The Onion Shell
Cyberdione Labs · The Onion Shell · HOPE 26© 2026
How it reaches the network

Snowflake — Tor over WebRTC

The Onion Shell uses WebRTC to reach a temporary Snowflake volunteer proxy.

The proxy forwards Tor traffic to one of two fixed production bridges. The client selects snowflake-01 or snowflake-02 by pinned identity; the broker only matches it with a proxy.

The Onion ShellWebRTCSnowflakevolunteer proxytemporary browser tabTorselected backendbridgesnowflake-01 or -02circuitTornetwork.onion servicespublic internet
Cyberdione Labs · The Onion Shell · HOPE 26© 2026
Trust boundary

Two roots of trust, one browser

TLS authenticates the root. Its SRI hashes pin the loader and Arti-WASM.
Arti authenticates Tor.

1 · WEB BOOTSTRAP CHAINroot of trust · TLS-authenticated index.htmlDNS / DNSLinkmutable name → CIDIPFS releaseimmutable bytes · CIDHTTPSTLS proxy(if present) · system CAcan replace root pageBROWSER · STATIC FILES · NO APP BACKENDindex.htmlroot + SRI hashesSRIor refuseverified-wasm loaderJavaScript · hash pinnedSRIor refuseosh.wasm + ArtiRust → WebAssembly · real Tor client2 · TOR AFTER STARTUPtrust anchor · Tor directory authorities + relay keysArti-WASMreal Tor clientWebRTCSnowflake proxycarries opaque cellsbackend bridgesnowflake-01 / -02Tor networkauthenticates relays.onionTWO INDEPENDENT TRUST DECISIONSTLS authenticates the root · SRI pins local code · Arti authenticates the Tor network
Cyberdione Labs · The Onion Shell · HOPE 26© 2026
Where it runs
Wanix

An OS that runs in the page

A Plan 9-inspired, Wasm-native Unix — everything is a file, per-process namespaces, sandboxed in the browser. The Onion Shell plugs into it as Wanix capabilities: Tor, an SSH client, and a key manager — all mounted under #cap and used from the RC shell.

# the Wanix namespace
#cap/snowflakeSnowflake transport (volunteer proxy)
#cap/torfull Tor client (Arti)
#cap/sshSSH client
#cap/keymgrSSH key manager (keys in the Harelock vault)
#vmroadmap: Linux VM (v86)

Wanix by progrium (Jeff Lindsay)

Cyberdione Labs · The Onion Shell · HOPE 26© 2026
Key management

Harelock, a wasm crypto vault

Harelock — a detective hare holding a key

Harelock guards SSH keys and Snowflake settings.

Unlock takes a passphrase plus an optional WebAuthN hardware key.

Honest limit: software, not a security chip — a compromised page could still read its memory.

Post-quantum (ML-DSA) signing is built in, unused by The Onion Shell.

Cyberdione Labs · The Onion Shell · HOPE 26© 2026
Coming soon

A browser inside your browser

The Onion Shell Browser tab — the Ladybird engine running in WebAssembly, attempting to load a page

Ladybird — an independent browser engine — compiled to WebAssembly and painted to a canvas. A second browser, in a tab, nothing installed.

Its socket layer is being rewired through the Tor bridge, so every fetch would ride the same onion circuits as the shell.

Status: the engine runs; torified networking is still landing.

Cyberdione Labs · The Onion Shell · HOPE 26© 2026
Demo
Cyberdione Labs · The Onion Shell · HOPE 26© 2026

The Onion Shell, by the numbers

daily 2xx responses served by The Onion Shell webapp

loading correlated Tor metrics…
  • ~26 GB served since 2026-03 — every byte a static file, verifiable by hash.
  • 2xx only: errors excluded (requests − 4xx − 5xx), so this is successful delivery.

source: CloudWatch AWS/AmplifyHosting, app5106 (hourly, fetched 2026-08-08)

Cyberdione Labs · The Onion Shell · HOPE 26© 2026

The network it rides

estimated daily Snowflake users, worldwide

loading correlated Tor metrics…
  • 44k–55k users/day, ~83% of all Tor bridge users.
  • Volunteer browsers are the bridges — the same mechanism this client uses.

source: Tor Metrics users (The Tor Project, fetched 2026-08-09)

Cyberdione Labs · The Onion Shell · HOPE 26© 2026

When censorship moves, Snowflake moves

Tor usage + Tor's curated event timeline

loading correlated Tor metrics…
  • Russia, Dec 2021: Tor blocking begins; estimated Snowflake use rises from 437 to 3,174 in two weeks.
  • Iran, Sep 2022: protests and shutdowns; the estimate jumps from 487 to 9,214 the next day.
  • Red verticals are censorship events from Tor's curated timeline — each spike has a cause.

sources: Tor Metrics users · country × transport bounds · Metrics Timeline

Cyberdione Labs · The Onion Shell · HOPE 26© 2026
The mirror

Emergent threat: XSS to Tor

A Tor client that fits in an XSS payload. No binary, no process, no inspectable destination.

staging payload may be embedded with the XSS payload or fetched.

victim origin
page runs the payload
network sees
browser → WebRTC peer
DLP sees
nothing to inspect or block
C2
no public address

verified: Open WebUI 0.7.2 (CVE-2026-44549) → .onion hidden service, real Tor

Cyberdione Labs · The Onion Shell · HOPE 26© 2026
Demo · offense
Demo · offense — exfiltration evidence
Cyberdione Labs · The Onion Shell · HOPE 26© 2026
Defense

Mitigation for defenders

Site operator
script-src 'nonce-…' blocks injected scripts at the source connect-src 'self' https://api.… blocks outbound fetch / WebSocket to attacker-controlled origins script-src without wasm-unsafe-eval WebAssembly.compile() requires it since Chrome 114 — blocks the Tor client even if the JS executes fix the XSS CSP is defense-in-depth — the injection is the root cause
Browser
Firefox: media.peerconnection.enabled = false — kills RTCPeerConnection entirely. GPO / policies.json Firefox: javascript.options.wasm = false — kills WebAssembly.compile Chrome: no equivalent toggles WebRtcUdpPortRange constrains ports but cannot disable the API iOS Lockdown Mode disables JIT — WASM interpreted,
Cyberdione Labs · The Onion Shell · HOPE 26© 2026