[tor-bugs] #2876 [Tor bundles/installation]: Enable arbitrary delays on keypress event delivery in TorBrowser

Tor Bug Tracker & Wiki torproject-admin at torproject.org
Sat Apr 9 01:56:12 UTC 2011


#2876: Enable arbitrary delays on keypress event delivery in TorBrowser
--------------------------------------+-------------------------------------
 Reporter:  mikeperry                 |          Owner:  mikeperry
     Type:  enhancement               |         Status:  new      
 Priority:  normal                    |      Milestone:           
Component:  Tor bundles/installation  |        Version:           
 Keywords:                            |         Parent:  #2871    
   Points:                            |   Actualpoints:           
--------------------------------------+-------------------------------------
 Apparently firms are using typing cadence to fingerprint users:
 http://arstechnica.com/tech-policy/news/2010/02/firm-uses-typing-cadence-
 to-finger-unauthorized-users.ars

 At first, I thought we wanted to solve this by providing randomized high-
 res timing information to JS Date() because this would also help against
 fingerprinting the computational resources of a user, but I've since come
 to my senses. This will likely break the web all over the place (online
 video buffering, seek, and playback, synchronized animation, online
 games). Also, computational fingerprinting can be amortized over long
 periods of time in the background using WebThreads. There's not much we
 can do about that.

 So instead, let's focus on what the fingerprinting firms are focusing on.
 Let's alter Firefox keypress event delivery so that the DOM does not get
 any keypress information for a randomized jitter of something like
 0-500ms. Since most users type on the order of 2-4 characters per second
 (20-40WPM), an avg of 250ms delay should be sufficient to obfuscate this.

 However, we need to think carefully about the distribution of this delay:
 uniform may be good enough, but is a shape-shifting meta-distribution
 better?

 Also, we should think at which level we want to introduce this delay. It
 could just be delay to the DOM, so the user does not even notice it while
 using forms, but this may introduce a way for AJAX sites to repeatedly
 submit their forms in the background to measure how many characters tend
 to be accumulating per second.

 Based on http://en.wikipedia.org/wiki/Keystroke_dynamics, it sounds like
 the key properties we need to obscure is flight time and dwell time, and
 that character rate of formfill won't be as useful.
 However, if we can also handle formfill it without impacting user
 experience, maybe we should.

-- 
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/2876>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list