FINDING · DEFENSE
By extracting TLS session keys through library debugging hooks (SSLKEYLOGFILE for GnuTLS/NSS/Rustls; an injected SSL_new() callback for OpenSSL) rather than reimplementing the TLS handshake, Balboa leaves the ClientHello entirely untouched. This prevents the class of fingerprinting attacks documented by Frolov and Wustrow that identified meek and similar tools via observable differences in cipher-suite ordering and TLS extension patterns, while remaining compatible with OpenSSL, GnuTLS, NSS, and Rustls without requiring application source-code modifications.
From 2021-rosen-balboa — Balboa: Bobbing and Weaving around Network Censorship · §2.4, §7 · 2021 · USENIX Security Symposium
Implications
- Prefer TLS key-extraction hooks over any form of TLS reimplementation; modifying the ClientHello creates a persistent fingerprint that is independent of how carefully the rest of the traffic is mimicked.
- Binding to an unmodified TLS library binary means the circumvention tool automatically inherits updated cipher suite and extension patterns each time the underlying application upgrades.
Tags
Extracted by claude-sonnet-4-6 — review before relying.