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
_______________________________________________
openssh-unix-dev mailing list
openssh-unix-dev@xxxxxxxxxxx
https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev