Issue Details
- Number
- 28760
- Title
- Evicting and filling attack for linking multiple network addresses
- Description
- I've [discovered a paper](https://cybersecurity.springeropen.com/articles/10.1186/s42400-023-00182-9) published earlier this month. I haven't found any discussion in the repo, so I will summarize the relevant parts here and share my thoughts.
Let's say we have a node that operates both over ipv4 and TOR. We don't want an observer to link these two addresses to the same node. For example, ADDR caching (#18991) was implemented for this reason.
The paper suggests the following attack:
1. Fill all (115?) victim's inbound slots in `networkA.`
2. Make sure these connections are candidates for eviction (higher latency, etc.).
3. Make connection to the presumably-victim's node in `networkB`
4. Observe whether `networkA` connections from (1) are dropped as you add connections in networkB.
I haven't verified the experiments, but even understanding the attack assures me the problem exists. Authors claim to reach high precision at a very low cost (optimized by inspecting`VERSION` data and block relay data).
They suggest the following countermeasures:
1. Have separate connection pools (for the sake of eviction) for each network (say TOR and ipv4).
2. Make eviction unpredictable (e.g. after a random delay)
- URL
-
https://github.com/bitcoin/bitcoin/issue/28760
- Closed by
-
Back to List