I just signed up on the TOR StackExchange. Let me preface my question by warning everybody that I am not a technical expert and apologizing in advance if some of my assumptions are incorrect or naive.

From what I understand about TOR, a user could potentially be de-anonymized in the following scenario (however improbable it may be):

A TOR circuit consists of 3 nodes connecting the user and the clearnet. If, hypothetically, all 3 nodes were compromised (or even the entry and exit node), being operated and monitored by an adversarial entity, then it could be ascertained that a certain file of a known file size was downloaded from the exit node. If several milliseconds later your Internet Provider has a record of you downloading a file of the exact same size and this information can be statistically determined, well, your anonymity is more or less compromised.

My question is, couldn't something along the lines of the following scheme be implemented to combat this?

Suppose at every node, as well as on the user's computer a random amount of "noise" data was tacked on to the packet before its encryption. Too prevent too much data from being appended and causing lag within the system, the data would need to be within a determined range, between some minimum and maximum value (a minimum value would not hide the actual size of the meaningful data packet well enough, one might argue). Then, at every step in the proxy chain, the data is unscrambled by a random amount (again within a given range of permissible values) is subducted and/or added on to the noise, repackaged, and sent along. Would this be possible to implement, and would it successfully spoof adversaries endeavoring to conduct malicious statistical analysis?

I do not know if what I have proposed is nonsense, technically impossible to implement, due to some consideration of which I am simply not aware. My ignorance may be apparent. But if it is possible, why not implement this as part of the TOR infrastructure? It would serve to strengthen anonymity in this increasingly Orwellian madhouse of a world.

Of course, someone has probably thought of this all before. It would then have been rejected for good reason, I'm sure. I appreciate any feedback on this matter. Thank you.

  1. All cells are already padded to 512 bytes, this means they're of equal size. However counting cells still defeats "padding".
  2. Resizing cells randomly would still be subject to cell counting and timing analysis.
  3. If all 3 relays in a circuit were compromised they could determine exactly that it was you, there is no need to look at size.
  4. It's still vulnerable to active attackers looking to insert detectable delays in the transit times of cells.

"Chaff", "noise" or "padding" data is covered in the FAQ: https://www.torproject.org/docs/faq.html.en#SendPadding

While in theory this might make it more difficult to determine, it does not make it impossible. Low-latency anonymity networks in general will always have trouble defeating an adversary with sufficient visibility of, and insight into, the network. High latency networks are far better placed to fend off such attacks. High latency mix networks like Mixminion, or shuffle based networks like Dissent have a much easier time combating traffic analysis, unfortunately their anonymity set is vanishingly small making their gains against traffic analysis moot since, no matter how good your anonymity network may be, if Bob and Alice are the only users of it distinguishing them is irrelevant.

  • Very helpful, thank you. – Aidan Nov 22 '16 at 15:16

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.