Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature]: Timing attack mitigations #4002

Open
1 task done
NearestWater262 opened this issue Apr 8, 2024 · 4 comments
Open
1 task done

[Feature]: Timing attack mitigations #4002

NearestWater262 opened this issue Apr 8, 2024 · 4 comments
Labels
core enhancement New feature or request

Comments

@NearestWater262
Copy link

Is there an existing issue for this?

  • I have searched the existing issues

Platform

all

App version

any

Feature

It would also be nice if there were timing mitigations so that chat profiles can be automatically started or shutdown as random intervals of maybe few minutes in between or interval of choosing. ElectronMail is a project that does this for email accounts

Or an option to manually turn on and off chat profiles, instead of them all connecting at once automatically upon start. This would also prevent timing attacks that involve sending someone a message then observing the traffic spike across the global network grid, which is something that has long been known

@NearestWater262 NearestWater262 added enhancement New feature or request triage labels Apr 8, 2024
@epoberezkin
Copy link
Member

I think the solution is in introducing delivery delays to relays - we're considering it.

@epoberezkin epoberezkin added core and removed triage labels Apr 11, 2024
@NearestWater262
Copy link
Author

@epoberezkin thanks for responding.

What do you think also about having option to only start chat profiles manually? As in, We can start up Simplex, and a chat profile will only connect when we press the appropriate button?

So, This button in the Database Export to toggle "Run Chat/Chat is running". Except this button could also be somewhere in the main menu. I am assuming that this button disconnects us from the simplex relay as well.

I think this will really help with people who have extreme opsec

@Rubber-Duckie
Copy link

Rubber-Duckie commented May 8, 2024

@epoberezkin thanks for responding.

What do you think also about having option to only start chat profiles manually? As in, We can start up Simplex, and a chat profile will only connect when we press the appropriate button?

So, This button in the Database Export to toggle "Run Chat/Chat is running". Except this button could also be somewhere in the main menu. I am assuming that this button disconnects us from the simplex relay as well.

I think this will really help with people who have extreme opsec

The terminology for the method of identifying a target by observing data in and out of various nodes is Network Traffic Analysis (NTA), Network Detection and Response (NDR), or Network Analysis and Visibility (NAV).

By examining network traffic, NTA can be used to identify nodes sending or receiving certain types of network traffic which can be observed to occur around the same time. Useful where you suspect a node, such as your mobile phone, as the node sending a message to another node which is being monitored, such as a known simplex relay.

By correlating your sending of a message, the activity on a relay, and the subsequent post appearing in a group, for example, it becomes trivial over a number of such posts to isolate who might be sending them.

Few mitigations to consider;

Traffic Correlation: By observing the time at which certain messages or packets are sent and received, an attacker can correlate the traffic patterns to identify communication paths within the network,. This can potentially reveal the source and destination of the messages, compromising the anonymity of the users involved.
https://www.infosecinstitute.com/resources/hacking/timing-analysis-attacks/

Latency Measurements: Attackers can measure how long it takes for a network to respond to certain requests. Variations in these timings can reveal information about the network’s structure, the distance between nodes, or the presence of specific security measures
https://en.wikipedia.org/wiki/Traffic_analysis

Active Timing Attacks: In some cases, attackers may even manipulate the timing of packet transmissions to create a recognizable pattern on the network. This can help them link different flows of traffic across the network and break the anonymity of the users

To mitigate such attacks, network security measures may include introducing random server side relay delays, using constant-time algorithms to handle sensitive data, and employing traffic padding techniques to make analysis more difficult for potential attackers. However, it’s a complex challenge because the very nature of network communication involves timing information that can be difficult to completely obfuscate.
https://tom.vg/papers/timeless-timing-attack_usenix2020.pdf

@serrq
Copy link

serrq commented May 8, 2024

So, This button in the Database Export to toggle "Run Chat/Chat is running". Except this button could also be somewhere in the main menu. I am assuming that this button disconnects us from the simplex relay as well.

I think this will really help with people who have extreme opsec

SimpleX is not an email service where you can decide when you read the incoming emails. So you turn ON the gate and boom, emails arrive.

This is a live chat instant messenger. If you turn OFF the gate you will become unreachable. Understood?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants