-
Notifications
You must be signed in to change notification settings - Fork 299
Description
Thanks to @jackiszhp for referring in #1108 to the detail of the onion
protocol which leads to the problem discussed below.
When Alice wishes to connect to Bob, she first finds via the onion a node,
Eve, on which Bob is announced. Alice then sends to Eve an onion data packet
as the payload of a data to route request. The onion data packet contains
Alice's long-term pubkey, and it is encrypted to the data pubkey. This data
pubkey is provided to Alice by Eve.
The intention is that the data pubkey was previously generated by Bob and sent
to Eve in Bob's announce request. However, there is nothing to prevent the
Eve generating her own pubkey and sending that to Alice as the data pubkey.
The result is that Eve is able to obtain Alice's long-term pubkey. Meanwhile,
she also knows Bob's long-term pubkey. So, she has determined that the two
pubkeys are friends. This is something the onion was intended to prevent.
Note also that Eve can position herself to be used as an announce node by Bob,
by generating an appropriate DHT key.
It looks like this problem was introduced by commit 639b37d.