HabrAugust 28, 2026🇷🇺Translated from Russian

TLS MITM and Throttling to 10 Mbps: Two Distinct Network Degradation Patterns Observed in Russia

Russian users connecting through Tunnel Cat have encountered sudden slowdowns and instability on international links. Examination of logs and user reports identified two distinct mechanisms that produce overlapping symptoms yet differ fundamentally in cause and detection.

International traffic throttled after initial success

The first pattern shows connections that establish normally with TCP and TLS completing successfully. Data transfer begins at expected speeds before throughput collapses, sometimes within seconds and sometimes after several minutes, occasionally falling from roughly 80 Mbps to 8–12 Mbps. This behavior differs from outright blocking, where routes either function or fail completely. Russian operators appear to be applying graduated throttling to international traffic rather than cutting it off entirely. Two hypotheses have been proposed: deep packet inspection that initially permits a flow and later subjects it to heavier analysis, or a gradual regulatory tightening of permitted bandwidth. Both remain unconfirmed, but the observable effect is consistent degradation that begins only after the connection is already active.

TLS certificate substitution detected on Windows

The second pattern produces similar user-visible instability yet includes a clear additional indicator: affected Windows machines receive an unexpected TLS certificate. Tunnel Cat logs from dozens of Windows systems showed clients obtaining a substitute certificate instead of the legitimate server certificate. This constitutes classic man-in-the-middle interception in which an intermediary terminates the client TLS session, decrypts the traffic, and forwards it onward under its own credentials. The same connection type often functioned normally on other operating systems, pointing to a platform-specific interception mechanism.

When Tunnel Cat detects an incorrect certificate it immediately drops the session. To the end user the result appears as intermittent connectivity, slow page loads, and frequent tunnel drops—the same complaints that arise from simple route degradation. Distinguishing the two therefore requires inspection of certificate chains in addition to RTT and packet-loss metrics.

Practical diagnostic guidance

Operators and users troubleshooting similar issues should separate the scenarios: connections that start normally and then degrade point toward bandwidth throttling or DPI effects, while TLS errors that appear predominantly on Windows warrant immediate certificate validation. Tunnel Cat has released updates that mitigate some symptoms, yet the underlying network changes continue. The distinction matters because one scenario reflects capacity management while the other represents active interception of encrypted sessions.

Related articles

HabrPrivacy & Surveillance

From HAProxy to VLESS+Reality: Overcoming DPI Blocks for MTProto Telegram Proxies

A detailed case study describes the challenges of running an MTProto proxy for Telegram on Russian servers facing ISP-level DPI. Initial attempts using HAProxy TCP relays and SOCKS5 tunnels failed because modern DPI systems detect MTProto and fake-TLS signatures regardless of transparent forwarding. The author eventually succeeded by layering mtg with an Xray VLESS+Reality tunnel that performs genuine TLS 1.3 handshakes to legitimate domains. Key configuration pitfalls included the xtls-rprx-vision flow breaking non-TLS payloads, missing mux causing handshake timeouts on short-lived connections, and provider-specific network policies. Final architecture places mtg and an Xray client on the Russian entry server while the foreign exit server runs Xray in VLESS+Reality inbound mode. The guide supplies complete docker-compose examples, key generation commands, and a checklist of common misconfigurations to avoid.

HabrPrivacy & Surveillance

Deleted Database Records Remain Recoverable in SQLite Files Despite DELETE Operations

A standard DELETE query in SQLite removes rows from the table view but leaves the actual data intact inside the database file until pages are reused. The pragma secure_delete setting controls whether freed pages are zeroed immediately or simply marked as available. With the default setting of 0, strings containing names and credit card numbers can still be extracted using grep even after deletion. The same behavior appears in PostgreSQL through dead row versions until VACUUM runs and in MySQL InnoDB through undo logs and the binary log. The issue directly affects compliance with personal data deletion requests because backups, replicas, and analytics exports often retain the original records. Proper mitigation requires enabling secure_delete, running VACUUM after bulk deletions, or encrypting sensitive fields with per-record keys that can be destroyed on request.

AntiMalwarePrivacy & Surveillance

Russian TSPU Systems Redirect DNS Queries to Google and Cloudflare Servers Toward National Domain Name System

Since the evening of August 26, Russian technical means of countering threats (TSPU) began intercepting open DNS queries sent to Google and Cloudflare public resolvers. For domains such as YouTube and RuTracker, UDP-based queries received NXDOMAIN responses while TCP queries successfully reached the original servers and returned valid IP addresses. Analysis with low TTL packets revealed that responses originated from IP address 195.208.5.1 belonging to the National System of Domain Names (NSDI). The mechanism performs targeted DNAT on recognized DNS traffic, making the query appear directed to NSDI rather than the foreign resolver. The redirection is imperfect, allowing subsequent identical queries sent in quick succession to bypass the system and reach Google. The findings come from experiments conducted by Habr user angry_agent and have not yet received official confirmation from Russian authorities.

HabrPrivacy & Surveillance

HTTPS Lock Icon Present but List of Visited Sites Remains Visible

Even when HTTPS is active and passwords stay protected, DNS queries and the SNI field in TLS handshakes expose the exact domains a user visits over public Wi-Fi. Classic unencrypted DNS over UDP sends domain names in plaintext, allowing anyone on the same network to observe them with simple packet captures. The SNI extension reveals the target hostname before encryption is negotiated, enabling domain-based filtering without decrypting traffic. DNS over HTTPS moves queries inside encrypted channels but shifts visibility to the chosen resolver instead of the local network. Encrypted Client Hello offers partial protection for SNI yet requires support from both browsers and server infrastructure. The practical takeaway is that metadata about services used, timing, and frequency leaks more readily than credentials in modern public networks.