Packet Timing and Data Leaks

Chris Rapier rapier at psc.edu
Tue Aug 8 01:28:15 AEST 2023



On 8/6/23 3:46 AM, Damien Miller wrote:
> On Thu, 3 Aug 2023, Chris Rapier wrote:
> 
>> Howdy all,
>>
>> So, one night over beers I was telling a friend how you could use the timing
>> between key presses on a type writer to extract information. Basically, you
>> make some assumptions about the person typing (touch typing at so many words
>> per second and then fuzzing the parameters until words come out).
>>
>> The I found a paper written back in 2001 talked about using the interpacket
>> timing in interactive sessions to leak information.
>> https://people.eecs.berkeley.edu/~dawnsong/papers/ssh-timing.pdf
>>
>> I'm sure this has been addressed (or dismissed) but I'm looking for the
>> specific section of code that might deal with this. Any pointers?
> 
> The main issue raised in that paper was that it was trivially detectable
> when terminal echo was switched off and so an attacker could specifically
> observe the moments when users were typing their passwords into (say)
> sudo. This got fixed around the time the paper was released IIRC,
> search for "Simulate echo" in channels.c:channel_handle_wfd().

Excellent! Thank you for the pointer.

> 
> The broader issue of hiding all potential keystroke timing is not yet fixed.

Could some level of obfuscation come from enabling Nagle for interactive 
sessions that has an associated TTY? Though that would be of limited 
usefulness in low RTT environments. I don't like the idea of having a 
steady drip of packets as that seems problematic both in terms of code 
complexity and network usage. I also don't like the idea of imposing 
random jitter though that might be easier to implement. However, without 
actual modeling I have no idea if that would actually improve things.

Anyway, I was simply thinking about this because the whole bugging of 
typewriters thing crossed my mind recently.

Chris


More information about the openssh-unix-dev mailing list