-
Notifications
You must be signed in to change notification settings - Fork 312
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Router/Tunnel: xor message IDs in order to prevent cross-context leaks.
Adds unique message ID's per context to bloom filter for safer replay protection. The transport and client tunnel managers use a message ID in order to prevent messages from being replayed. Prior to this checkin, the message ID queue used the same IDs in clients and transports. If a message was sent to a transport and a client with the same message ID, the message ID in one would cause a replay to be detected in the other. The result would be that the message reply would come back empty, creating a point of evidence that a client and a transport were hosted on the same router. However, there is no way from the attackers POV to determine with certainty that the message was dropped because the message was replayed, making it very easy to demonstrate a potential information leak using a known router and a known client, but more difficult, to use to deanonymize a known client on an unknown router (i.e. by trying routers from the local NetDB). So what we have here is a situation where an attacker observing router behavior can say that a message was dropped, and that they have reason to believe it is because it contained an ID which was replayed. This constitutes a potential information leak and is resolved by this checkin.
- Loading branch information
Showing
4 changed files
with
91 additions
and
29 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters