Show HN: Aroma: Every TCP Proxy Is Detectable with RTT Fingerprinting

Hacker News (score: 54)
Found: December 25, 2025
ID: 2840

Description

Other
Show HN: Aroma: Every TCP Proxy Is Detectable with RTT Fingerprinting TL;DR explanation (go to https://github.com/Sakura-sx/Aroma?tab=readme-ov-file#tldr-e... if you want the formatted version)

This is done by measuring the minimum TCP RTT (client.socket.tcpi_min_rtt) seen and the smoothed TCP RTT (client.socket.tcpi_rtt). I am getting this data by using Fastly Custom VCL, they get this data from the Linux kernel (struct tcp_info -> tcpi_min_rtt and tcpi_rtt). I am using Fastly for the Demo since they have PoPs all around the world and they expose TCP socket data to me.

The score is calculated by doing tcpi_min_rtt/tcpi_rtt. It's simple but it's what worked best for this with the data Fastly gives me. Based on my testing, 1-0.7 is normal, 0.7-0.3 is normal if the connection is somewhat unstable (WiFi, mobile data, satellite...), 0.3-0.1 is low and may be a proxy, anything lower than 0.1 is flagged as TCP proxy by the current code.

More from Hacker

Django: One ORM to rule all databases

Django: One ORM to rule all databases

Using Emacs Org-Mode With Databases: A getting-started guide

Using Emacs Org-Mode With Databases: A getting-started guide

An AI-first program synthesis framework built around a new programming language

An AI-first program synthesis framework built around a new programming language

NativeJIT: A C++ expression –> x64 JIT

NativeJIT: A C++ expression –> x64 JIT

No other tools from this source yet.