Skip to content

Commit b9b4bb9

Browse files
author
Rick Dicaire
committed
2nd
1 parent 6eb1097 commit b9b4bb9

1 file changed

Lines changed: 20 additions & 3 deletions

File tree

_posts/2026-01-22-Mitigate-Correlation.md

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,31 @@
22
layout: post
33
title: "Mitigating User Tracking Caused By Correlation Attack"
44
lang: "en"
5-
author: "@rdica"
5+
author: "rdica"
66
heading: "Mitigating User Tracking Caused By Correlation Attack"
77
---
88

99
By default the Jamulus protocol does not map usernames to IP addresses in any publicly available data.
1010
However it is possible to execute a correlation attack to achieve user<‐>IP mapping.
1111
This was first reported to Jamulus developers here: [https://github.com/orgs/jamulussoftware/discussions/3545](https://github.com/orgs/jamulussoftware/discussions/3545)
1212

13-
<!--more-->
14-
1513
## Scope
14+
15+
This document will attempt to summarize the problem, and provide mitigations for both users, and server admins.
16+
17+
## The Problem - Pings and Join Events
18+
19+
### Pings
20+
21+
When a user attempts to connect to a server, they open the Connect dialog window. The client will **start** sending &ldquo;pings&rdquo; to every server listed in that genre to report delay latency &lpar;basically network distance&rpar; to those servers.
22+
23+
Anyone running a server can capture those &ldquo;pings&rdquo; using tools like `tcpdump` or `tshark/wireshark` and view the IP addresses of the clients that are sending them.
24+
**No username data is sent.** This is part of the Jamulus protocol, by design, to maintain a level of privacy and prevent others from finding the IP addresses of specific users.
25+
26+
### Join Events
27+
28+
A user will either select a server from the list, or type in a server address:port, click Connect or hit Enter, and the client will then attempt to connect to the server. At this point the client **stops** sending the &ldquo;pings&rdquo; and the client typically completes the connection to the server.
29+
30+
Each genre has a directory server. The purpose of the directory server is to provide clients with a listing of servers registered to it, and the users connected to each server. This is public data, and viewed in the Connect dialog window, and available through a number of websites, like [https://explorer.jamulus.io](explorer.jamulus.io) or [https://jamulusjams.com](jamulusjams.com).
31+
32+
Anyone can run an explorer instance. An explorer queries each genres directory server to get a list of servers, then queries each server directly to get a list of connected users. This is public data. **There is no IP address information on users, just the user profile data**. Again this is by design to prevent IP&lt;&dash;&gt;username mapping. This data can also be saved for later processing.

0 commit comments

Comments
 (0)