Habr•October 6, 2026•🇷🇺Translated from Russian

Building Prizrak: How a Developer Created a Federated Messenger That Masks All Traffic as Legitimate HTTPS

A developer has built Prizrak, a federated messenger that uses end-to-end encryption and makes all traffic, including voice and video calls, appear as ordinary HTTPS connections on the wire.

The project began because existing messengers could not be configured to remove three persistent problems: a central point that can be shut down, mandatory phone number registration, and traffic that remains identifiable even when encrypted. Prizrak uses identifiers in the form name:domain, OpenPGP long-term keys for identity, X3DH and Double Ratchet for forward secrecy, and ChaCha20-Poly1305 for encryption. Federation occurs between independent homeservers that locate each other automatically.

Transport designed to resist DPI

The developer discovered that perfect encryption is useless if the first bytes of a packet reveal the protocol. Standard WebRTC calls expose the STUN magic cookie 0x2112A442 and DTLS record type 22. The solution was to stop imitating HTTPS and instead become it: clients perform genuine TLS 1.3 handshakes to real domains and present a hidden token only after the channel is encrypted. Servers listen on multiple stable ports including 443, 8801, 993 and others, silently ignoring occupied ones. Clients start at port 443 and discover a working port automatically.

Key management and multi-device support

Long-term OpenPGP keys serve as identity passports verified via QR code and sign ephemeral X25519 prekeys. Each device receives its own identity key signed by the account root. Messages are encrypted separately for every device of the recipient. Revoking a device simply stops delivering envelopes to it. The design accepts O(participants × devices) encryption cost and plans to adopt MLS (RFC 9420) for very large groups.

Resilient delivery through storage nodes

When homeservers cannot reach each other directly, messages travel through a network of storage nodes. Each node stores opaque blobs addressed by HKDF-derived identifiers. The system replicates data across four nodes using a placement model taken from Ceph RADOS, including rendezvous hashing, Merkle reconciliation, and anti-entropy. Delivery acknowledgments are the only source of truth; nodes delete blobs only after receiving a signed ACK.

Native media stack and careful buffer sizing

Calls use a fully native media stack on Android with Camera2, MediaCodec, AudioRecord and Opus. A custom address-mapping service replaces public STUN to avoid detectable signatures. After switching to direct P2P paths, video frames were being truncated because the receive buffer was only 2048 bytes. Raising the buffer to 65536 bytes, adding proper fragmentation, and implementing PLI-based recovery eliminated artifacts. Bitrate is now controlled by queue length rather than observed loss.

Ringback tones and call-state machine

Users complained that calls lacked ringback tones. The developer added a full state machine that reports presence after an offer is sent, distinguishes “subscriber unavailable,” “busy,” and “no answer” conditions, and plays 425 Hz tones with familiar cadences. The same work exposed several signaling bugs that had previously gone unnoticed.

Built-in two-hop VPN

The stealth transport is reused for a two-hop VPN. The first hop sees the user’s IP but not the destination; the exit hop sees the destination but not the user. Messenger traffic is excluded from the tunnel to avoid loops. Node selection uses Bayesian reputation with 60-day freshness and make-before-break switching.

Related articles

Habr•Privacy & Surveillance

ONYX 2.0 Removes Central Servers for Fully Decentralized Tor-Based Messaging and Calls

ONYX 2.0-beta marks a major shift from its previously centralized design to a serverless architecture that relies entirely on Tor for all communications. Each user account is now represented solely by a cryptographic key pair generated on first launch, with recovery handled through a 12-word seed phrase. Devices connect directly via onion services, and the application bundles its own Tor daemon on desktop platforms while using tor-android on mobile devices. Voice calls are supported through an embedded local TURN server, delivering acceptable quality with 1-3 second latency despite the anonymity overhead. Message delivery now depends on recipient availability, with undelivered messages stored locally on the sender and retried automatically. The update deliberately removes features such as HTTP or SOCKS5 proxies and link previews to prevent IP leaks or external traffic. Developers released the beta to gather feedback on stability across network changes and multi-device scenarios.

Habr•Privacy & Surveillance

Privacy-Focused Browser Tool Compresses PDFs Locally Without Uploading Sensitive Documents

A developer created a PDF compression tool that runs entirely inside the browser to protect sensitive personal and professional documents from third-party servers. The solution addresses repeated situations where embassy submissions, financial presentations, contracts, and internal reports exceeded size limits, forcing users to choose between installing desktop software or risking data exposure through online services. The tool reduces scanned and photographic PDFs by 66 to 97 percent depending on quality settings while honestly reporting weaker performance on text-heavy files compared with Ghostscript. It works on both desktop and mobile platforms, including iPhone and Android, requires no installation, and continues functioning offline after the first page load. On mobile devices the application respects memory constraints by limiting images to four megapixels, preserving readability for A4 documents intended for printing. The project originated from a single evening script built around Ghostscript and evolved into a full web application after similar compression needs recurred across multiple devices and locations.

Habr•Privacy & Surveillance

GrapheneOS Setup Guide: Configuring Pixel Phones for Corporate Surveillance-Free Daily Use

This comprehensive engineering guide explains how to deploy GrapheneOS on supported Google Pixel devices to eliminate corporate telemetry collection. It follows three core principles: rejecting proprietary ecosystems, applying Zero Trust through cryptography and open-source audits, and enforcing strict compartmentalization via isolated user profiles. The tutorial covers official installation via the Web Installer, basic owner profile hardening with PIN shuffling and automatic reboot, and the use of Obtainium for direct FOSS app management from GitHub repositories. Detailed recommendations include privacy-focused tools such as KeePassDX, Aegis Authenticator, AmneziaVPN, Signal, and Fossify applications, along with VPN kill-switch configuration. Regional profiles are created for sandboxed Google Play, Aurora Store, RuStore, and Huawei AppGallery to safely run banking, marketplace, and social apps without cross-profile tracking.

Habr•Privacy & Surveillance

Following the White Rabbit: Developer Builds Custom Rust VPN PAYPHONE Using QUIC and Obfuscation to Evade Detection

A Russian developer has released PAYPHONE, an experimental IPv4 VPN written entirely in Rust that uses QUIC datagrams and optional TLS-over-TCP transport with custom obfuscation. The project aims to provide an alternative to AmneziaWG and Xray/VLESS+REALITY stacks that are commonly used to bypass Russian internet filtering. The article details the full packet path from TUN interface through a 16-byte PAYPHONE header, session management with Ed25519 tokens, and multiple post-launch bugs including MTU miscalculations, self-routing loops on macOS, and timer lifetime issues in Tokio. Key technical choices include RFC 9221 datagram support to avoid head-of-line blocking for multiplexed TCP flows and token-bucket rate limiting tied to subscription tokens. The author also describes route monitoring every 400 ms and interface-bound sockets to prevent the tunnel from swallowing its own control traffic.