Slashdot Mirror


The Keyboard That Could Phone Home

An anonymous reader writes "University of Pennsylvania researchers have developed a keylogger they call the JitterBug that can modulate passwords or other information into normal traffic by adding imperceptible delays to keypresses as people use keyboard and network-intensive apps like telnet and remote desktop. The idea is that the delays in keypresses cause delays in packets, and data can be encoded in those delays. There's no software or extra network activity that the victim can see, but anyone who can see the traffic (even if it's encrypted) could grab the data. Here's the scary part: the researchers say that it could be manufactured into a keyboard, making these keyloggers widespread and virtually undetectable."

287 comments

  1. Could you get around this... by Saint+Aardvark · · Score: 5, Insightful

    ...by adding your own random jitter to outgoing packets? I'm thinking of something like an option in OpenBSD to do this for all TCP connections, say.

    1. Re:Could you get around this... by interiot · · Score: 5, Interesting

      There was a talk at the university I was at about the security measures on US government firewalls, for particularly secure computers. Covert timing channels are one clear class of things that a very security firewall needs to protect against (not just for JitterBugs... trojans/viruses could try to communicate this way as well), and they did just that... changed the timing of the packets at the firewall to try to prevent covert timing channels from being possible.

    2. Re:Could you get around this... by russ1337 · · Score: 3, Interesting

      If the information is contained in the 'gaps' between the traffic, buffer the traffic in hardware as it leaves the system. (Buffering and clocking the keypresses in hardware to remove the jitter may cause a percieveble lag). If the keyboard is the suspected source of the hidden jitter, then an inline clocked buffer could remove this, releasing the keypresses to the system at a uniform interval. If the system is suspected, buffering and clocking can be added at the system router.

      There is a similar concept in advanced TEMPEST, analysis but we cant talk about that here....

    3. Re:Could you get around this... by NemosomeN · · Score: 5, Funny

      The more likely workaround would be devices you put between your keyboard and the computer. Easier? No. Cheaper? No. Marketable? Maybe.

      --
      I hate grammar Nazi's.
    4. Re:Could you get around this... by wall0159 · · Score: 4, Informative

      Well, probably. But what you're doing is just adding noise to the system - this can be circumvented by just taking longer to send the time-based data (ie send the data with greater redundancy, so that it's more noise tolerant). Also, adding jitter would slow the network connection because you can't make transmission faster, you can only slow it by the mean delay of your introduced noise.

      A more effective method would be to use a method of transmission that wasn't time-dependent on what the user typed. For example, ssh could be designed so that it sent a packet every 100ms (whatever - I don't know the specific time) regardless of what the user had typed. I think this would render this attack useless, but would still introduce some latency...

      The article says 'In applications such as telnet and remote desktop, a packet is sent every time a user presses a key' - is this the case with ssh too? I mean - surely *nobody* uses telnet for secure communications!

    5. Re:Could you get around this... by russ1337 · · Score: 1

      bah, you beat me to it.. see my post below....

    6. Re:Could you get around this... by LincolnQ · · Score: 4, Interesting

      The thing I don't get is how you distinguish the miniscule delay introduced with this system from the much larger delay between subsequent keypresses the user makes. I don't think most people type at such a consistent rate that you could plug this in and immediately start observing traffic. (I wouldn't be too surprised if you could do it after observing the person's typing habits for a long time... but that would be different for every person, so most likely impractical.)

    7. Re:Could you get around this... by Short+Circuit · · Score: 1

      You'd still have to contend with UDP traffic. And some services might not like jitter there, like NTP, or even video games.

    8. Re:Could you get around this... by tomstdenis · · Score: 1

      Naggle would like to speak with you.

      Tom

      --
      Someday, I'll have a real sig.
    9. Re:Could you get around this... by Elemenope · · Score: 1

      Usable by the god-fearing tech-illiterate masses? Yes. And that's what matters. What good is privacy if only geeks who have crosshairs on them sixty ways from Sunday when the Revolution comes (you can SMELL them in a crowd. Yech.) have it?

      [OT]By the way, I hate grammar Nazi's periods, too. LOL.[/OT]

      --
      All the techniques ever used to make men moral have been themselves thoroughly immoral... (Nietzsche)
    10. Re:Could you get around this... by sploxx · · Score: 4, Insightful

      Maybe this is obvious, but anyway:

      This is also another reason for 100% open source code for any important part (which you use to transfer confidential information) of your computer.

      Especially for low-level parts like device drivers. Stallman wanted to have a free printer driver. Remember the yellow dots??

      I hope this is something which makes the closed source WLAN (it's working, it's ok) fans
      a bit quieter.

    11. Re:Could you get around this... by FhnuZoag · · Score: 4, Insightful

      No, you can't get around this, because if it's built into the keyboard, then it's a hardware thing, and any software based solution will be insufficient.

      But really, this whole issue is stupid. Built into the keyboard? WTF? If you allow a hostile agent to install hardware in your computer, then having a keylogger is the least of your worries. Where's the alarmist article about the possibility of keyboards with built in hand grenades?

      The system is also overcomplicated by far - for one, you are relying on people using telnet and remote desktop, which most home users do not. What advantages, if at all, does this tech hold over just modulating in delays with conventional traffic (e.g. HTTP requests)? Or other known systems of steganography? And don't forget that telnet is unencrypted in any case.

    12. Re:Could you get around this... by bhmit1 · · Score: 1
      is this the case with ssh too?
      In the login/password, no, that is buffered and sent all at once after you hit enter. Within the session, it's possible, individual characters are transmitted as you type. But I think the encryption and other overhead makes this more difficult than the researchers presume. See my post below for more details.
    13. Re:Could you get around this... by MyLongNickName · · Score: 1

      Meds run out again?

      --
      See my journal for slashdot ID's by year. Mine created in 2005. http://slashdot.org/journal/289875/slashdot-ids-by-year
    14. Re:Could you get around this... by Anonymous Coward · · Score: 0

      or just keep your current keyboard and use it instead of any newer keyboard.

    15. Re:Could you get around this... by dhasenan · · Score: 1

      Most home users aren't interesting enough to be targetted by keyloggers. :)

      The keyboard would have to send its information by delaying packet transfer, so it'd have to have either software or add a connected intermediate to the ethernet cable. That's what's fishy about it.

    16. Re:Could you get around this... by KarmaMB84 · · Score: 1

      The US government was going to buy PCs for use on a secure network from a Chinese company until they scrapped the deal over security issues. Many people accused the US of being alarmist over that, but here we see exactly how keyloggers etc could be shipped with PCs undetectable.

    17. Re:Could you get around this... by WCD_Thor · · Score: 1

      By not buying any new keybaords unless they are gareenteed to not have this in them (even then find someone who knows a lot about hardware and have them open the thing up to check). I think I'll stop buying new keyboards, my G15 works great!

    18. Re:Could you get around this... by LnxAddct · · Score: 1

      My thoughts are that packets already have a natural "jitter", so the device will already be designed to compensate for such delays. It wouldn't be hard to design around. Now if you did this at say the router level, then it'd be different. Just add random jitter sometime after the packets have hit the wire.
      Regards,
      Steve

    19. Re:Could you get around this... by MajinBlayze · · Score: 3, Insightful

      Except that something like this wouldn't have to go into a driver. It could be a chip built into the keyboard, and as you type it adds a short delay. reading that delay is how it would work.

      --
      "Hate is baggage. Life's too short to be pissed off all the time." Danny Vinyard -American History X
    20. Re:Could you get around this... by sacrilicious · · Score: 1
      Could you get around this by adding your own random jitter to outgoing packets? I'm thinking of something like an option in OpenBSD to do this for all TCP connections, say. [ Reply to This

      Yes, that'd work.

      As an alternative or supplemental approach, it'd also be useful to intersperse "chaffe" packets, i.e. garbage packets. Such chaffe packets could be inserted by a low level option in OpenBSD like you describe, or even by any link in the transmission chain, without application software even knowing about it; all that would be required would be sufficient info for the chaffe insertion layer to discard garbage packets. Maybe the right layer to do this in would be the encryption layer, e.g. within OpenSSH.

      --
      - First they ignore you, then they laugh at you, then ???, then profit.
    21. Re:Could you get around this... by Fordiman · · Score: 1

      The thing is this:
      The god-fearing, tech-illiterate masses seems to be quickly shrinking into a single group: corporate execs.

      Guess who the revolution is being planned against.

      --
      110100 1101000 1101000 1100110 0 1101111 1101000 1100011 1
    22. Re:Could you get around this... by Ant+P. · · Score: 1

      Random jitter? What, like an Internet connection?

      Besides that, how are they sending the keypresses back to the server? Is there some unknown exploit in the PS/2 port we haven't found for ~15 years? If they've got the means on the victim's PC to send this information back in the first place they don't need special hardware at all.

    23. Re:Could you get around this... by IntelitaryMilligence · · Score: 0

      It would still get scrambled by changing the packet timing. The delay would have to be to be statistically significant yet short enough that people wouldn't realize it's there. And anyhow it could be easily tested by connecting the keyboard to an extra keyboard port card. Just have a robot hit two keyboards at a time at equal rates.

    24. Re:Could you get around this... by brianerst · · Score: 0
      While the technique for creating the covert channel is novel, as you say, the workarounds are trivially simple (adding random jitter, enabling the Nagle algorithm, etc.)

      The hype about this study is really ridiculous, and I've named it the Duh!scovery of the day over on my blog.

      Now, maybe we're just too blasé, but if someone has physical access to your keyboard and can sniff all of your network packets, your security is so hosed that the use of a JitterBugTM is the least of your worries.

      Again, if a spy has your user name, access to your computer and hooks into your network... you are, as the geeks would say, pwnd.
      (A duh!scovery is a study or research paper that either states the obvious, is designed purely to get opinions into the news section, or wildly overstates its own case.)
    25. Re:Could you get around this... by jmv · · Score: 1

      No, you can't get around this, because if it's built into the keyboard, then it's a hardware thing, and any software based solution will be insufficient.

      Yes, software is sufficient because it has to go through lots of software before it goes out on the Internet (of whereever it's going). If (e.g.) you add jitter in the OS interrupt handler, then the only part that would know about the original message is the CPU hardware and it can't really tell anyone by itself (unless asked to by software).

    26. Re:Could you get around this... by NemosomeN · · Score: 1

      A software solution would be just as easy. After all, it could be as simple as an executable that puts itself in the startup menu/registry. Inserting a CD with Autorun is easier than fiddling behind the computer.

      --
      I hate grammar Nazi's.
    27. Re:Could you get around this... by Anonymous Coward · · Score: 1, Interesting
      And anyhow it could be easily tested by connecting the keyboard to an extra keyboard port card. Just have a robot hit two keyboards at a time at equal rates.


      Just remember to compare the suspect keyboard to one of those 1980's keyboards without NSA chip. And remember to program your standard keyboard comparison robot to trigger the covert channel sending mode as it might be in regular keyboard mode at first. Yes, detecting hidden hardware features is really, really easy (on Slashdot).

    28. Re:Could you get around this... by Anonymous Coward · · Score: 0

      Im thinking you could get around this (and all key loggers really) by typing your password onto an onscreen keyboard using your mouse.

      Anybody ever heard of a mouse logger?

    29. Re:Could you get around this... by Anne_Nonymous · · Score: 0, Offtopic

      Holy crap. Chaffe pockets suck. I had that issue with a pair of pants I got from The Gap last week and I *immediately* returned them. There's no reason for the consumer to put up with chaffe pockets in this day and age... er... packets... uh. Hm. Never mind.

    30. Re:Could you get around this... by Anonymous Coward · · Score: 0

      Tom,

      Were you at one time a poster to PGP usenet groups?

    31. Re:Could you get around this... by cbreaker · · Score: 1

      What is hardware but software that can't be changed?

      You can always insert another layer of security elsewhere, and in this case the software COULD prevent the transmission of data by altering the delay of packets being sent away.

      This is not likely to be something that reaches far and wide like an Outlook virus, but it IS another thing to consider when building ultra secure systems. It's interesting that you could transmit data by altering the delay of network packets or keystrokes. I feel better just knowing that such a thing is even possible, and it opens up new possibilities for locking down computer systems.

      Don't be such a killjoy. And YES WE KNOW telnet is not encrypted!

      --
      - It's not the Macs I hate. It's Digg users. -
    32. Re:Could you get around this... by Duhavid · · Score: 1

      Unless of course, the item placed in line to remove the jitters is compromised.

      --
      emt 377 emt 4
    33. Re:Could you get around this... by nacturation · · Score: 1

      Unless of course, the item placed in line to remove the jitters is compromised.

      In that case, you're kinda screwed already.

      --
      Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
    34. Re:Could you get around this... by EotB · · Score: 1

      Why couldn't you just delay every 100ms block then? Seems to me that'd be easier...

    35. Re:Could you get around this... by Duhavid · · Score: 1

      Right. My point is that it is kinda hard to prove that nothing in your
      system doesnt do this, unless you examine all of it ( assuming this is possible ),
      or built it all yourselv ( and I mean from the "design the circuits" and up ),
      not just component assembly.

      --
      emt 377 emt 4
    36. Re:Could you get around this... by afidel · · Score: 1

      Your post brings up a good point, I would think things like cutthrough vs store and forward switching and various routing strategies and queues would disrupt intricate timing so as to make this vector useless for all but the most pristine of local LAN segments.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    37. Re:Could you get around this... by charleschuck · · Score: 3, Informative
      The article says 'In applications such as telnet and remote desktop, a packet is sent every time a user presses a key' - is this the case with ssh too?

      Far be it from me to question the article, but I had been under the impression that Nagle's Algorithm had been designed to concatenate small buffers—such as telnet—to prevent them from necessarily sending a packet with each keypress.

      I am not a TCP stack guru (IANATCPSG?!), but it seems like, though this algorithm was designed to reduce congestion, it would upset a timing attack by having to wait for the ACK of the last packet—at least on high latency links.

      SSH, at least as of 2002, according to this e-mail, turns on TCP_NODELAY, which disables the algorithm to reduce latency of keypresses in a connection when it believes an interactive session has been started. Thus, SSH does indeed send a packet with each keypress.

    38. Re:Could you get around this... by Alain+Williams · · Score: 1

      This morning I thew my keyboard away and have gone back to punched card input.

    39. Re:Could you get around this... by sploxx · · Score: 1

      Well, it goes into firmware then, which can also be closed or open source!

    40. Re:Could you get around this... by citizenr · · Score: 1

      >I hope this is something which makes the closed source WLAN (it's working, it's ok) fans
      >a bit quieter.

      Wlan? Think NVIDIA + http://eckbox.sourceforge.net/

      --
      Who logs in to gdm? Not I, said the duck.
    41. Re:Could you get around this... by binarybum · · Score: 1

      yes, but next thing you know they'll be selling robots with jitterbugs built in!

      --
      ôó
    42. Re:Could you get around this... by montyzooooma · · Score: 1
      "WTF? If you allow a hostile agent to install hardware in your computer, then having a keylogger is the least of your worries."

      The big PROPERTY OF SMERSH sticker on the bottom of the keyboard will be a giveaway anyway.

    43. Re:Could you get around this... by jimicus · · Score: 2, Insightful

      Remember the yellow dots

      Yes. They're in the firmware of the printer, not the driver, so a free printer driver wouldn't make much difference in this case.
    44. Re:Could you get around this... by Anonymous Coward · · Score: 0

      lol. Slashdot adds rel="nofollow" to user links you fucking retard.

    45. Re:Could you get around this... by FireFury03 · · Score: 1

      Well, it goes into firmware then, which can also be closed or open source!

      But verifying that the compiled firmware that's factory-loaded into the EEPROM of a microcontroller matches the source code that's been distributed is a problem. The device may not let you read the firmware back out of the EEPROM, and even if it does - how do you know it's really sending you the code that it's running and not just telling you what you want to hear?

    46. Re:Could you get around this... by James+McGuigan · · Score: 1

      I'm reminded of the self-replicating gcc exploit. Once the complier was compiled, it would check to see if it was recompiling gcc, and even if the exploit had been removed from the source in a future version, the complier would add it back in. To remove it you had to go back and recompile using a version from before the exploit. You can only trust the source to the extent that you can trust your toolchain and in turn it depends on being able to trust your hardware.

    47. Re:Could you get around this... by jmf · · Score: 1
      But really, this whole issue is stupid. Built into the keyboard? WTF? If you allow a hostile agent to install hardware in your computer, then having a keylogger is the least of your worries.

      What if the hostile agent is the keyboard manufacturer?

      Dell 600m with keylogger?
    48. Re:Could you get around this... by Anonymous Coward · · Score: 0

      Think Belkin. Remember their firewall/router that periodically subverted html requests to go to a site advertising their anti-mal-ware services? This would be a perfect opportunity for a less-than-ethical manufacturer to do a little covert data-gathering.

    49. Re:Could you get around this... by Phreakiture · · Score: 1

      Actually, I think I am missing some important detail here....

      The jitter is introduced between the keypress and the encoding of that keypress.... so how does the jitter get measured if there is no awareness of when the keypress took place aside from the post-jitter packet? In other words, how do you know that the packet is "late" if you don't know when the key was pressed?

      --
      www.wavefront-av.com
    50. Re:Could you get around this... by Phreakiture · · Score: 1

      is this the case with ssh too?

      Yes. If it did not do so, then interactive typing with the machine on the other end of the link would not happen.

      To prove this, you can take two machines in your spare time, connect them with a switch or hub, no other network connection. SSH from one to the other, and watch the blinkenlights on the switch or hub as you type.

      --
      www.wavefront-av.com
    51. Re:Could you get around this... by ichigo+2.0 · · Score: 2, Funny

      Just have a robot hit two keyboards at a time at equal rates.

      Why of course. Just let me jump in my flying car and go to the hypermarket on the moon, I hear robots are on sale there.

    52. Re:Could you get around this... by Anonymous Coward · · Score: 0

      You are making assumptions about the data rates of these packets. If he packet is send at a much lower rate than the jitter you've introduced, then they get through.

    53. Re:Could you get around this... by Anonymous Coward · · Score: 0


      The thing I don't get is how you distinguish the miniscule delay introduced with this system from the much larger delay between subsequent keypresses the user makes. I don't think most people type at such a consistent rate that you could plug this in and immediately start observing traffic. (I wouldn't be too surprised if you could do it after observing the person's typing habits for a long time... but that would be different for every person, so most likely impractical.)


      Interesting question. Could you pass info in the correlation coefficient between the delays of successive packets? I am just thniking off the top of my head here. say the original timing delays are t_1 t_2 \ldots t_n you want to get numbers \epsilon_1 \epsilon_2 \ldots \epsilon_n such that the average correlation coeff between 1 and 2, 2 and 3, 3 and 4 etc. is less than a certain threshold (or greater than a certain threshold)

      Can something like this work? Actually maybe changing the variance is easier, but I would imagine that the variance of people's typings could be pretty variable, and in that case decoding the channel would be a problem.

    54. Re:Could you get around this... by Anonymous Coward · · Score: 0

      You could do even better: saturate the covert channel with your own information. The more you use it, the less bandwidth you leave for malicious attackers to exploit. And as an added bonus, you increase your own bandwidth! (albeit by a really small margin)

    55. Re:Could you get around this... by tomstdenis · · Score: 1

      Maybe I dunno. Check google groups.

      I still hate Callas though. That prick needs to get a hair cut and stop emulating Bruce Schneier.

      Tom

      --
      Someday, I'll have a real sig.
    56. Re:Could you get around this... by bluephone · · Score: 1

      The yellow dots printed by color lasers are printed out from firmware in the printer. OSS drivers would be useless. BUnnie has been trying to determine exactly where in his incredibly rare free time. http://www.bunniestudios.com/wordpress/?p=53

      --
      jX [ Make everything as simple as possible, but no simpler. - Einstein ]
    57. Re:Could you get around this... by smellsofbikes · · Score: 1

      Your sarcasm may be a little funny, but entirely misplaced. A metal bar with two pointy bits that poke keys, attached to a solenoid, would take, oh, fifteen minutes to make, and would simultaneously push keys on two keyboards at equal rates. "Robot" doesn't mean "positronic brain, bilaterally symmetric, humanoid, dances like J.Lo" -- it can mean 'a machine that does the work of a human.'

      --
      Nostalgia's not what it used to be.
    58. Re:Could you get around this... by Anonymous Coward · · Score: 0

      Delay each packet enough so it leaves at the next integer multiple of 10ms plus 0ms or 1ms or 2ms etc, to covertly send a number 0-9 in each packet. (So of course they would be 'delayed', because you can't send them extra early.)

    59. Re:Could you get around this... by Anonymous Coward · · Score: 0

      Who should I hire, this guy with a 2-line solution, or the guy above who wrote a full page on "I don't see how this could work"? Hmm I think a longer speech sounds better in a meeting, and people don't like to think anyway.

  2. Hmm... by bcat24 · · Score: 5, Funny
    This threat, however far-fetched, seems particularly relevant in light of the U.S. government's decision in May to use computers built by Lenovo only for processing unclassified data. The Chinese government owns 28% of Lenovo, information that has sparked fears of espionage. As it turns out, numerous keyboards are also manufactured in China.
    With Communist computer, keyboard spy on YOU!
    1. Re:Hmm... by madcow_bg · · Score: 2, Funny

      In Russia, YOU spy on the keyboard!

    2. Re:Hmm... by cryfreedomlove · · Score: 0

      Fears about the current government of China are well founded. Perhaps the decision to exclude Lenovo where inspired by this man. If so, then I applaud.

    3. Re:Hmm... by coaxial · · Score: 2, Insightful

      With Communist computer, keyboard spy on YOU!

      In freedom loving countries, keyboard KEEPS YOU SAFE!

      Be afraid! Or the terrorists' goal to make us change our lives and live in terror will succeed!

    4. Re:Hmm... by megaditto · · Score: 2, Insightful

      Hey, I wonder if NSA/AT&T used Chinese boxes to wiretap citizens?

      Warrants or no warrants, but as a patriot, I sure hope they use 100% American?

      --
      Obama likes poor people so much, he wants to make more of them.
    5. Re:Hmm... by zlogic · · Score: 1

      In America, you spy on keyboard! (the one you secretly installed on somebody else's computer)

  3. Scary! by Fred+Porry · · Score: 1

    So I better go out tomorrow and buy myself another 100 Keyboards before its too late...they can see what you do!

    1. Re:Scary! by Larry+Lightbulb · · Score: 1

      You mean you don't have a couple of dozen laying around the house already? And you're reading /.?

    2. Re:Scary! by Anonymous Coward · · Score: 0

      As long as nobody trojans Xeyes, they see everything I type.

    3. Re:Scary! by Fred+Porry · · Score: 1

      Nah, got my first 100 when Win95 came out, but already smashed 23 on my monitor...;)

    4. Re:Scary! by Physics+Nobody · · Score: 2, Funny

      See, that's why I only use Model Ms: Smashing the keyboard on the monitor breaks the monitor, not the keyboard. In retrospect that may not be a good thing...

      --

      Physics is good

    5. Re:Scary! by Anonymous Coward · · Score: 0
      So I better go out tomorrow and buy myself another 100 Keyboards before its too late...they can see what you do!


      Nah, just wait for ThinkGeek to come up with a USB keyboard "scrubber" dongle to counteract this.
    6. Re:Scary! by Bombcar · · Score: 4, Funny

      So if you had 40 USB keyboards plugged into one machine, and used a different one to type each character of the password, you wouldn't have a problem, correct?

    7. Re:Scary! by Hoch · · Score: 1

      Yea, but remember that each needs to be on one of 40 different usb busses. Otherwise they would be able to snoop each others' data. You will have to install a lot of usb cards or do a lot of hotswapping. Also, I would recomend that you get as many different brands of keyboards as possible. Holy water might be a good investment too, to sanctify them. If the keyboard daemon gets is not removed, all efforts are in vain anyway.

      Good luck with your crusade.

      --
      2*31*37*263
  4. manufactured by Anonymous Coward · · Score: 5, Insightful

    Couldn't any kind of virus or malicious "software" be manufactured in to many different hardware. It's the trust and accountability we have in companies that keeps this from happening in general. It's kind of crazy we would have to worry about something like that...

    1. Re:manufactured by bcat24 · · Score: 1

      Yeah, but if you're dealing with classified information, you have to be paranoid.

    2. Re:manufactured by bunions · · Score: 2, Interesting

      meh, maybe sorta.

      On reflection, I don't see how it'd be so out of the question for some engineer somewhere to add in a delay in the firmware unbeknownst to the employer. All he'd have to do then is install some free shell and/or IRC machines somewhere, maybe some altered game servers, something like that, and wait for someone with his compromised keyboards to walk in.

      Seems pretty straightforward, if you buy the initial premise that someone would do this. I don't see it working for a company. A person is smart and could pull this off. A group of people is stupid and would fuck it up somehow.

      --
      there is no need to sign your posts. this isn't usenet. your username is right there above your post. stop it.
    3. Re:manufactured by timeOday · · Score: 1
      Couldn't any kind of virus or malicious "software" be manufactured in to many different hardware.
      I think the real trick here is in *covertly* transmitting the captured information. A virus that simply establishes a TCP connection to some server in russia WILL be detected; this thing may not. Of course, to do this packet timing analysis you have to "own" a router that's carrying the encrypted information, which is somewhat limiting.
    4. Re:manufactured by steve_l · · Score: 4, Informative

      yeah, laptops could implement this in the keyboard controller. Or even the USB hub could do it.

      you have to trust the pc vendors, as they have nothing to gain, and everything to lose, in lawsuits and lost sales. But what if their government comes along and says 'add this back door'. They'd comply.

      Case in point: Lotus notes put a back door in export versions of notes:
      http://catless.ncl.ac.uk/Risks/19.52.html#subj1

      they sent messages with 64 bit encryption (!), but 24 bits of the key was hidden in the message, where the NSA knew to look, or otherwise given to them. You only had 40 bit keys, which upset the swedish government.

      Moral: You cant trust closed source apps any more than closed source hardware.

    5. Re:manufactured by forgotten_my_nick · · Score: 2, Informative

      It wasn't so much a backdoor but as a way to comply with the export regulations at that time. You couldn't export 128bit encryption at that time but they could if NSA where given half the key.

      But this isn't just US doing this. France for example around that time only allowed 40bit keys to be used and Lotus had to comply with that too.

      Btw, Lotus have long since stopped doing this once it was legal to do so. (hence you post relates to 1997).

    6. Re:manufactured by jez9999 · · Score: 1

      Do most keyboards have a high-resolution internal clock that they can use to time the 'jitter', then? Or any firmware, for that matter?

    7. Re:manufactured by bunions · · Score: 1

      Most? Of course not. But my hypothetical rogue engineer can simply cram them in and no one would be the wiser, especially if it's a fancypants 'media' keyboard. I'm sure the required stuff would be pretty easy to hide.

      --
      there is no need to sign your posts. this isn't usenet. your username is right there above your post. stop it.
    8. Re:manufactured by Detritus · · Score: 1

      On a simple microcontroller, you can count cycles and rely on the system clock. That's how some old systems generated video timing in software.

      --
      Mea navis aericumbens anguillis abundat
  5. Manufactured into a keyboard by Anonymous Coward · · Score: 5, Funny

    The "Made in Nigeria" had me worried, but with a quality name like Sony on the keyboard, I decided not to worry.

    1. Re:Manufactured into a keyboard by SeaFox · · Score: 1

      Yeah, I know a MagnetBox when I see one!

  6. it's your own damn fault by circletimessquare · · Score: 4, Funny

    ...i .blame ....the ..user ....for ..not ....being ....more .......vigilant .if .....this ..ever .....happened ..to .....me (..and ..it .....wouldn't) ...i ..wouldn't .....be ..blaming ....some ."hacker" ....for ..my ....own ..lax .......security

    --
    intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
    1. Re:it's your own damn fault by ozbird · · Score: 1

      "Dammit, Jim - I told you not to buy Romulan keyboards!" - Bones.

  7. Cool, where can I get the source? by mr_stinky_britches · · Score: 0, Redundant

    Would love to see how exactly they implemented this ;)

    On a more serious note though..
    I always thought it was easier to just torture somebody for the password?

    Okay, seriously.. is there any way that we could protect against this in hardware or software? This could be a little bit tricky. I'll let you know as soon as I come up with a solution!

    /me heads off to go watch some MacGuyver/Stargate for ideas

    --
    Censorship is obscene. Patriotism is bigotry. Faith is a vice. Slashdot 2.0 sucks.
    1. Re:Cool, where can I get the source? by dyamkovoy · · Score: 2, Informative

      I don't know about the source, but you can get the paper right here. It has a little more details than the article.

    2. Re:Cool, where can I get the source? by portmapper · · Score: 0, Flamebait

      > On a more serious note though..
      > I always thought it was easier to just torture somebody for the password?

      Where you by any chance stationed in Iraq ;-)

    3. Re:Cool, where can I get the source? by jumpingfred · · Score: 2, Insightful
      On a more serious note though..
      I always thought it was easier to just torture somebody for the password?

      Often times it might be nice to get the password without the victim's knowledge that the password is compromised.
    4. Re:Cool, where can I get the source? by Secrity · · Score: 2, Interesting

      "I always thought it was easier to just torture somebody for the password? "

      I thought that it was easier and more reliable to just bribe somebody who has hte password. There was an article a while back that indicated that some people will divulge passwords for something as trivial as a latte' or chocolate -- the cost goes up from there.

    5. Re:Cool, where can I get the source? by Architect_sasyr · · Score: 2, Interesting

      On a more serious note though..
      I always thought it was easier to just torture somebody for the password?


      Who needs torture when there is vodka? Also, if they're like me you have two passwords, one overwrites the hard disk ;)

      --
      Me failed English...
      FreeBSD over Linux. If my comments seem odd, this may explain...
    6. Re:Cool, where can I get the source? by marcansoft · · Score: 1

      Real easy to detect. Just play DDR/StepMania in keyboard mode. If you fail all songs, either you suck, or your keyboard has been bugged.

    7. Re:Cool, where can I get the source? by neuro.slug · · Score: 1

      I always thought it was easier to just torture somebody for the password?

      I love cryptologists. This is technically known as the rubber hose attack, I believe. Seriously, how awesome is that? Don't you immediately envision someone being thwacked with a rubber hose? Excellent. ...but in the United States, we call it The Waterboard Attack. Not so funny.

    8. Re:Cool, where can I get the source? by Anonymous Coward · · Score: 0

      Exactly how reliable do you think that survey was? If someone offers you something for telling them something you can make up on the spot since it isn't going to be checked, why not lie about it?

    9. Re:Cool, where can I get the source? by Secrity · · Score: 1

      The latte' bribe survey was done by somebody who was working for the company who's passwords were compromised, and most of the passwords were found to be valid. If somebody would offer me something to divulge a password, I would refused the offer; also, the triviality of this bribe would have raised serious alarm bells with me. Some people have enough integrity and are not desperate enough to lie.

      In practice, I would imagine that the bribe for a useful Login/Password would be a bit more substantial, and that if the Login/Password were not valid, that the person who took the bribe would be made to realize that welshing on a bribe is not a good choice to make.

  8. My question is... by jarg0n · · Score: 2, Interesting

    My question is why are University of Pennsylvania researchers developing keyloggers!!??

    --
    Error 2101: all your sig are belong to us
    1. Re:My question is... by SpaceLifeForm · · Score: 1

      Maybe Senator Spector got them an NSA contract.

      --
      You are being MICROattacked, from various angles, in a SOFT manner.
    2. Re:My question is... by AHumbleOpinion · · Score: 2, Funny

      To catch students logging into termpapersfor10dollars.com

    3. Re:My question is... by Firefly1 · · Score: 2, Informative

      If it's a choice between UP researchers developing this and educating relevant entities to the potential threat (and, of course, said entities taking prompt and appropriate action), and blackhats fielding it unbenownst to the world at large...
      Now what was your question again?

      --
      - White Knight of the Order of Mihoshi Enthusiasts
    4. Re:My question is... by EvanED · · Score: 2, Informative

      For the same reason that security researchers do any of their destructive research; the same reason that I'm just starting to study how to build a rootkit. People need to know what risk factors are present in decisions they make with regards to hardware, software, and configuration choices, and how to protect against those risk factors. If there were no white hat hackers, the black hats would ALWAYS be a step ahead because the white hats wouldn't be able to anticipate possible other attacks.

  9. What about user -induced lag? by hguorbray · · Score: 1

    I RTFA'd and I don't see how this would work with regular, semi-random typing -ie. I may 'sit on a character' while I space out or think about what to type next -or try to find the next key....

    It seems that this could only work if there were a regularly timed stream of data -such as that of a TTY playing back a paper tape or someone who was Mavis Beacon Prime typing at a completely regular rate to which the 'jitter' could be added to. I don't *think* that most remote apps use any kind of buffer dumps or anything that would add the type of regularity that would allow this to be exploited.

    That would leave out all of us one fingered-wonders. Feel free to correct me as I may have missed some subtle point of the article.

    -What's the speed of Dark?

    1. Re:What about user -induced lag? by Anonymous Coward · · Score: 1, Insightful

      Well the bug could wait until a stream of network activity commences (say downloading a file), and hijack that stream as a timed channel, but I still fail to see how the bug could communicate with a remote machine to which the stream of packets were not already destined. It would require a 'man in the middle' such as a compromised router or active sniffer on the network to use this.

    2. Re:What about user -induced lag? by Bryansix · · Score: 2, Interesting

      Correct me if I am wrong but from how I understand it the rate at which you type does not matter. The jitter is added to network traffic and it probably has to do with the timing between two packets. The program could just make the jitter be in the off position when no data is being sent and in the on position when there is data to phone home with. It's very analog but it works.

    3. Re:What about user -induced lag? by Bill+Dog · · Score: 1

      I think the keyboard hardware would have to buffer up a set of keypresses, to factor out the irregular delay patterns in peoples' typing, and then return those keypresses to the OS individually with the proscribed delays between each. Then as long as the OS didn't suddenly become majorly busy during the processing of those characters...

      --
      Attention zealots and haters: 00100 00100
    4. Re:What about user -induced lag? by Anonymous Coward · · Score: 0

      The keyboard can't collect keypresses. The user would notice the delay. Every keypress has to be delivered to the attached computer within a couple dozen milliseconds. There are certainly many ways how data can be encoded, but you could reliably transmit information by creating a regular "grid" and sending a keycode at (i*40ms) for a 0 and at (i*40ms+20ms) for a 1. (Add plenty redundancy for detecting valid transmissions.)

    5. Re:What about user -induced lag? by bhmit1 · · Score: 1
      The jitter is added to network traffic and it probably has to do with the timing between two packets.
      This wasn't described in the article, but I think it's the most feasible option described yet. We are no longer talking about a hacked keyboard, but rather some trojan software running on the computer that doesn't want to be detected. Considering the amount of network traffic compared to the number of keys a user types, I think there is more than enough space to hide a good bit of binary data. The users throughput may go down by a few percent, but if you don't delay when they aren't typing, they probably won't notice.

      And now for another idea. What if you simply changed the outgoing TCP in a rarely noticed way, say by dropping the window size or max hop count. As long as no one is looking for the change, and you only make the change when there's data to send, it would be an easy way to encode some data in a more reliable fashion that isn't impacted by outside sources of jitter. And as long as you aren't on the fringe of the max hop count, the bandwidth is completely unaffected.
    6. Re:What about user -induced lag? by adrianmonk · · Score: 3, Insightful
      I RTFA'd and I don't see how this would work with regular, semi-random typing -ie. I may 'sit on a character' while I space out or think about what to type next -or try to find the next key....

      There may be several schemes that would work, but here's the simplest one I can think of off the top of my head. Basically, you figure out what the maximum delay that can go unnoticed is, and you buffer keystrokes for that length of time. For example, if you determine that nobody ever notices when a keystroke is delayed 100 ms, you buffer keystrokes for that long.

      Now, if during that period of time you get multiple keystrokes, then you spit the keystrokes out of your queue with a predefined timing. If you want to send a 0, you might send the first keystroke out, then wait 50 ms, then send the second. If you want to send out a 1, then you might wait 75 ms between the keystrokes. So basically, you get opportunistic about it. Only if you have two keystrokes in a short period of time do you try to encode data in the timing.

      But of course there will be times when the user is typing slowly, and you don't get 2 or more keystrokes in a short interval, but you still have to send them out. The solution to that problem is easy: if you aren't trying to send a 0 or 1, just make sure you never send out any keystroke sooner than 100 ms after you sent the last one. Now you have a system where (at the remote end), if you see two packets arrive about 50 ms apart, that's a 0, and if you have two arrive about 75 ms apart, that's a 1, and if you have two arrive about 100 ms or more apart, that's no data (a no-op).

      And of course you want all kinds of redundancy built in because the network and the TCP/IP stack and the operating system will add lots of noise and corruption to your covert data stream, so you'll have to piece it back together. But that's an easy enough problem provided you don't mind reducing the bandwidth even further than what it is already is.

      Oh, speaking of bandwidth, you can probably encode more than one bit per keystroke pretty easily. Coincidentally enough, today I was observing network latency between two sites about 1000 miles apart, and I noticed that even though the latency was usually around 70 ms, the standard deviation seemed to be much lower, down around 2 or 3 ms. So in this case, depending on how much you want to delay things (you can't delay things so much that an average typist can outpace you!), you could use one of a set of several different delays between keystrokes. You might encode 3 bits by doing intervals spaced 5 ms apart. So, 50 ms for 000, 55 ms for 001, 60 ms for 010, 65 ms for 011, ..., 85 ms for 111, and 110 ms for no-op. (Things get complicated, but I'm assuming you'd want a bigger gap between no-op and the others since no-op will occur very frequently.)

    7. Re:What about user -induced lag? by bunions · · Score: 1

      I don't believe that's the what the article is talking about.

      The article is talking about a keyboard that incorporates a keylogger. This keyloggers output is encoded somehow in specifically timed artificial delays between the actual physical keydown and kbd driver reporting a keydown. This delay is then apparent in every connection in which individual keystrokes are sent as soon as they're generated. I don't know how common these connections are, however. How they extract useful data from that I don't know, but error-correcting algorithms are pretty fancy and I don't pretend to understand most of them. I'll just choose to trust them when they said the tests proved reasonably reliable until someone disproves it.

      --
      there is no need to sign your posts. this isn't usenet. your username is right there above your post. stop it.
    8. Re:What about user -induced lag? by Mister+Transistor · · Score: 1

      IIRC, every key hit in a PC actually sends 2 "packets" or bytes - called "scancodes". Normal ASCII characters send the MSB as 0, with normal ASCII code as LSB. Non-printing scancodes are things like Pause, Keypad Arrows, etc. with the MSB nonzero.

      Point being, even single keystrokes send multiple "packets".

      --
      -- You are in a maze of little, twisty passages, all different... --
    9. Re:What about user -induced lag? by TheRaven64 · · Score: 1
      I wonder if the designers of this system realised that most people run a multitasking OS. A keystroke going between the keyboard and the network interface has to pass through:
      1. The keyboard controller, which sends an interrupt to
      2. the bottom half of the kernel, which puts the data into a pipe which is then read from by
      3. the SSH client when it invokes the read system call. It is then processed here and put in a buffer which goes into
      4. the top half of the kernel which copies the buffer and hands off to
      5. the bottom half of the kernel which passes it through
      6. the TCP/IP stack and then
      7. the network interface driver.
      Any of these steps can be a separate thread (and in some cases definitely is a separate process). Thread scheduling is deterministic, but not always easily predictable. If I am running any other applications on my computer then each of these threads will get their quanta at different times. This means that there will be a noticeable jitter inserted into each packet due to scheduling irregularities.

      This is also assuming that no other process is using the network. If others are, then you get extra locking / contention issues at the network stack layer, and it's up to the network subsystem to schedule which packets are sent when.

      And this is assuming that you can sniff one hop away. Most routers will buffer a few packets and try to achieve fair allocations between connections. This will add even more noise to the system.

      It sounds a lot like something that would work well in the lab, under controlled conditions, but not very well in the real world.

      --
      I am TheRaven on Soylent News
  10. Just spreading FUD by BrewerDude · · Score: 1

    OK, so they can make a device that adds jitter to the time it takes from when I hit a key to when the computer knows I hit it. Great. Kudos to them for there nice bit of hackery. But, how exactly does that transmit any information to the outside world? In order to read information out of my delayed key strokes, you'd have to know the cadence that I'd normally be typing at and then measure the deltas to get the bits. Sorry folks, but my typing rate just isn't that consistent. No, no, that's just an example, you say. The real trick is to embed this in the TCP/IP stack and add jitter to the outgoing packets. Again, nice try, but it's not going to work in the real world. All sorts of things both inside the computer (e.g., page swaps and single-threaded paths in the kernel) and outside of it (e.g. TCP congestion control and Ethernet exponential backoff for collision control) are going to have an effect on the timing of when packets leave the computer. Interesting in an academice lab, perhaps, but for the real world, schmeh.

    1. Re:Just spreading FUD by drinkypoo · · Score: 2, Informative
      Again, nice try, but it's not going to work in the real world.

      On the other hand, they performed a test, and it seems to have worked. No details on the test but you would really have to go through a lot of effort to be sure that in fact you had a good network connection and a steady typing cadence, and the test was between countries. FTFA:

      Researchers say that in tests, the JitterBug was able to transmit data from the University of Pennsylvania to the National University of Singapore fairly reliably.

      Provided there is sufficient traffic, who cares if you have a high error rate? Use error correction.

      Ordinarily I would raise the same objections, but I read the fine article, and am willing to accept that some people may be a lot smarter than I am, while it is patently obvious that some people are a lot better-educated.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    2. Re:Just spreading FUD by BrewerDude · · Score: 1

      yeah, I read the fine article, too. They also had this to say: To intercept this data, a spy would need to use a packet sniffer to intercept a connection from the target computer. This would require that the attacker have access to a network somewhere between the victim and the victim's destination - not a trivial goal, but probably easier than attaching the JitterBug in the first place.

      Note that transmitting data between UPenn and Singapore does not mean that the jitter transmission was robust betwen the two points. It just means that they had an observer somewhere (probably as close to the tapped computer as possible) in there that could watch the traffic from the tapped computer and report back to the remote site.

      My real issue with the article is that it's so fluffy and fear mongering that it's pretty much useless. The research may be good, but the article certainly doesn't do anything to show that. I'll have to see if I can dig up any refereed publications from these guys and take a closer look.

    3. Re:Just spreading FUD by AHumbleOpinion · · Score: 2, Informative

      In order to read information out of my delayed key strokes, you'd have to know the cadence that I'd normally be typing at and then measure the deltas to get the bits.

      No, I don't think so. I am just making a guess, I have not read the article, but I think a simple "rounding" of your cadence would be enough. Pick a small time interval, round your actual timing to the nearest interval, done. For discussion purposes let's say the interval is 0.1s, encode a 0 bit as x.x3s and a 1 bit as x.x6s.

    4. Re:Just spreading FUD by Anonymous Coward · · Score: 0

      It could alter the keyboard press timings so that they are all 0.0025 or 0.0075 seconds modulo 0.01, and interpret the former as a 0 and the latter as a 1. No need to try to muck about with a user's cadence. Now something this straightforward is obviously detectable, but the principle of encoding the data in the least significant digits (or low order bits, if you prefer) of the time gaps is still valid.

    5. Re:Just spreading FUD by llZENll · · Score: 1

      I agree that its FUD. But, the logger doesn't need to know your typing cadence. For example, say it stores the last 20 characters, then over the next X characters it sends out that data in the form of delays. By slightly buffering the X characters and sending them out in an even flow, encoding the delay for the 20 characters within.

      I don't see how you can get around the other delays though, OS, memory, buffer, and CPU delays should all be neglible, but the TCP delays are going to blow your packet delaying away unless you have a really fast connection, honestly I don't see this working over the internet.

    6. Re:Just spreading FUD by Anonymous Coward · · Score: 0

      The thing is, it doesn't have to be reliable to work. If they manage to alter certain bits of the timing even 5% of the time, they can still transmit data using (e.g.) turbo codes -- the way NASA transmits data over noisy, low-power radio signals.

      This kind of resiliance makes it hard to block. Adding noise to the delays will not necessarily block the channel.

    7. Re:Just spreading FUD by poliopteragriseoapte · · Score: 1
      Another problem with the proposed scheme is this.

      The keyboard cannot possibly know whether you are typing a password, or some other data. From the article, it seems that the bandwidth is limited: they can delay-encode 1 (or perhaps at most 2) bits per keystroke. But each character typed contains more than 2 bits of entropy (and it is not realistic to delay transmission so that you compress the stream to the optimal size).

      So, if you knew where the passwords are in the stream of data, you could possibly transmit them (subject to the problems mentioned by the parent post; mod it up). But you don't know which keystrokes correspond to passwords (the keyboard does not know in response to what prompt you are typing). And, the bandwidth of the channel is too small according to the article to send everything you type. Therefore, the attack seems to be a very impractical, if not far-fetched, one.

    8. Re:Just spreading FUD by Anonymous Coward · · Score: 1, Interesting

      It's not that hard, actually. The logger can simply check for typing sequences that are likely to be followed by or enclose a password. For example, "ssh username@host\npassword\n", or even "username\tpassword\n" if the target uses a web form or a popup password prompt.

    9. Re:Just spreading FUD by adrianmonk · · Score: 1
      I don't see how you can get around the other delays though, OS, memory, buffer, and CPU delays should all be neglible, but the TCP delays are going to blow your packet delaying away unless you have a really fast connection, honestly I don't see this working over the internet.

      --- elided.example.com ping statistics ---
      100 packets transmitted, 100 packets received, 0% packet loss
      round-trip min/avg/max/stddev = 59.322/62.689/79.781/3.203 ms

      These are ping times between me and a host that's about 1750 miles (2800 km) away. Note the minimum and maximum ping times here. Round-trip times for these 100 packets varied between about 59 ms and 80 ms. (I don't have data for single-direction packet travel times, but round-trip times will do for analysis. They aren't conceptually different -- it's all just network hops.) Anyway, if I add a 25 ms delay to those packets, then the delayed packets will be in the range roughly from 84 to 105 ms. The two ranges (59-80ms and 84-105ms) don't overlap, so if other packets behave like the 100 packets I measured, I should be able to get data through just fine. Of course, there are no guarantees on how long packets will be delayed, so there will be overlap between the ranges, but if it is infrequent, I can correct for it.

      You're right, though, that if the network pipe is saturated, the delay is going to get all unpredictable. But TCP/IP doesn't work well at all with network pipes that are completely saturated, so people don't build networks like that, usually.

    10. Re:Just spreading FUD by Anonymous Coward · · Score: 0

      Thought you might appreciate this article for some more possible detail...

      http://www.usenix.org/events/sec06/tech/shah/shah_ html/index.html

    11. Re:Just spreading FUD by Anonymous Coward · · Score: 1, Interesting

      Another example: The keyboard could also send out the first 32 characters typed after a long delay, assuming that the user had their screensaver lock the computer automatically, or that the computer was starting up. With a kilobyte or two of flash memory, the keyboard could even check out which parts of these "after a long delay" sequences are identical with each other, in order to filter out the user simply using the mouse for a while, or not using screensaver passwords at all.

  11. yea by Danzigism · · Score: 1

    i think my $10 walmart keyboard will do just fine for now..

    --
    *plays the Apogee theme song music*
  12. Could you get around this...Tech Fight. by Anonymous Coward · · Score: 0

    "...by adding your own random jitter to outgoing packets? I'm thinking of something like an option in OpenBSD to do this for all TCP connections, say."

    Translation: Can I foil the process of obtaining a signal by adding random noise? I don't know. Why don't you ask a HAM?

    1. Re:Could you get around this...Tech Fight. by ender_ · · Score: 2, Informative

      If the noise is of the same or greater order of magnitude then the signal. Yes, you can foil the process.

      Ever heard of a SNR?

      Ender

      --
      Bzzt Whir Click
    2. Re:Could you get around this...Tech Fight. by lonasindi · · Score: 1

      *beep*

      SARCASM ALERT

    3. Re:Could you get around this...Tech Fight. by megaditto · · Score: 1

      The noise level does not matter if you collect enough samples. I mean, that was freaking high-school physics' material in my day.

      But you probably got better PE and sex-ed instead...

      --
      Obama likes poor people so much, he wants to make more of them.
  13. Internet security by chrisranjana.com · · Score: 0

    Assume 50 million keyboards are sold. There needs to be Many Many Hackers to decode so much stealth information. It is good though that the research had pointed valid security related points.

    --
    Chris ,
    Php Programmers.
  14. Huh? by tgd · · Score: 4, Insightful

    Who uses telnet? And if they are, sniff the damn packets directly.

    And RDP is not a keystroke-per-packet, 100% of the time. Neither is SSH. Without that, you couldn't make any assumptions about the data you may have missed.

    Encryption latency, packet retransmissions upon collisions at routing equipement... there are 1000 reasons outside the lab this wouldn't be even remotely useful for tracking activity off the desktop, and there's way easier ways of doing it on the desktop.

    1. Re:Huh? by Bender0x7D1 · · Score: 1

      And RDP is not a keystroke-per-packet, 100% of the time. Neither is SSH. Without that, you couldn't make any assumptions about the data you may have missed.

      That's why you send the data multiple times. Even if you miss 10% of the data each time, if you send it 100 times, its likely you will receive it all. You could even add some sort of checksum so you would know when you receive it all.

      Encryption latency, packet retransmissions upon collisions at routing equipement... there are 1000 reasons outside the lab this wouldn't be even remotely useful for tracking activity off the desktop, and there's way easier ways of doing it on the desktop.

      There are 1000 papers on covert channels on how to get this to work. It has been done outside of a lab, using the real Internet under real conditions. Easier ways to do this? Absolutely. However, the idea is to get the signal hidden in the "noise" so it's never detected and the data channel lasts for a long time.

      --
      Reading code is like reading the dictionary - you have to read half of it before you can go back and understand it.
    2. Re:Huh? by QuantumFTL · · Score: 1

      Encryption latency, packet retransmissions upon collisions at routing equipement... there are 1000 reasons outside the lab this wouldn't be even remotely useful for tracking activity off the desktop, and there's way easier ways of doing it on the desktop.

      If the "secret" data being sent was very small, and the number of packets being sent was very large, and the interference was fairly well behaved (followed a fairly discernable distribution), the signal could be pulled out of the noise using modern signal analysis. Remember, passwords are only a few bytes of data, as are credit card numbers and many other sensitive pieces of information. As long as none of these processes destroy the information of the packet jitter, but rather perform addititively, I think a short message could easily be recovered.

    3. Re:Huh? by asb · · Score: 1

      Did you read even the Slashdot snippet about the article?

      "A keylogger they call the JitterBug that can modulate passwords or other information into normal traffic."

      So, the important idea is to hide sensitive data into a normal communication channel. Hiding here is done by encoding the data as time delays between packets. The fact that the time delays can in some circumstances be implemented in the keyboard, without any software required in the computer, is just an added bonus (although very limited, as the article says).

      As other people have said, this can be overcome by adding jitter to packets in a firewall or in the network device driver. The keylogger can try to fight this by using longer delays but longer delays can be detected easier (read automatically) and thus the sensitive data could not be hidden as well.

      --
      Antti S. Brax - Old school - http://www.iki.fi/asb/
    4. Re:Huh? by tgd · · Score: 1

      You, and the other first reply to my post basically said the same thing, so I'll only reply to one of them.

      The problem with what you both are talking about (a password typed in 100 times, eventually you have enough data to pull it out of the noise) is that you have no context when the only thing that can be seen is packet jitter in encrypted packets. Anyone monitoring that has no way of knowing (especially over RDP when authentication happens at a non-determined point after the connection starts) when I'm actually typing my password. There are hundreds of strings I type repeatedly all day long. Without some software context to know where those keystrokes are going, there isn't much benefit to even tracking the keystrokes. Without context, if I type 200,000 keystrokes a day and 1/10th of 1% of them are password related, you'd have a hell of a time picking them out of the noise if you weren't 100% sure you had all the keystrokes. This is why software keyloggers typically watch the application they are targeted at.

      Add two factor in, and there'd be no way you could get enough data in time to do anything useful with it.

      There are certainly ways to pass data "stenographically" across a network, but this keyboard solution is too far out from the point where someone would be monitoring... you've got 1000 reasons timing can change, zero context of what keystrokes are actually passwords, etc.

      On a risk scale, this is so far down field, it shouldn't even be on the radar of anyone who hasn't taken hundreds of other steps to secure their systems... and one should ask why they're giving remote access to an application over a non-secure tunnel with single factor authentication at that point.

      This is like worrying that someone could send a remote control robot from the street, up your sewer pipe, out your toilet, across the floor to your front door to turn the deadbolt to break in, in a house with no alarm, no locks on the windows, and the owner on vacation.

      Its just silly.

    5. Re:Huh? by TheRaven64 · · Score: 1
      It sounds like they can send a maximum of one bit per character; less with error correction. This leads me to wonder how, exactly, the keyboard knows when I am trying in a password. This is not something I do very often, since I have ssh keys set up for all of the machines I have access to. If it can send about 10% of what I type, the odds are than some very bored individual will be reading a lot of slashdot posts...

      This does raise an interesting point, however. Last year there was an OpenSSL vulnerability that relied on testing the timing between packets and responses to determine how long had been spent checking the key (the closer to the correct key, the longer the processing took). It would make sense for a firewall to add in a random jitter to all encrypted traffic to hamper this kind of thing.

      --
      I am TheRaven on Soylent News
  15. Look! Someone gave me a new keyboard! by LuminaireX · · Score: 1

    If someone magically places a new keyboard on your desk, and you don't think something is amiss, you deserve what's coming to you.

    1. Re:Look! Someone gave me a new keyboard! by inKubus · · Score: 4, Funny

      That's why I keep a liberal supply of dandruff and chicken grease on my keyboard at all times. Even if the boffins manage to make an identical keyboard (with the windows keys ripped out, no less), they could never recreate the back-alley ambiance.

      --
      Cool! Amazing Toys.
    2. Re:Look! Someone gave me a new keyboard! by Larry+Lightbulb · · Score: 1

      I think that the company I work for replaces a third of the PCs each year, and parts such as mice, keyboards, and monitors as soon as they need it inbetween the cycle. So getting a new keyboard wouldn't be a shock here, and I guess it wouldn't be at a lot of large companies.

    3. Re:Look! Someone gave me a new keyboard! by Joebert · · Score: 1

      If you're at work & actually notice that you have a different keyboard, you just might be, a jitterbug.

      --
      Wanna fight ? Bend over, stick your head up your ass, and fight for air.
  16. I think it's just as likely... by Anonymous Coward · · Score: 2, Interesting

    ...that US corporations would install these. The American government/corporations (same thing really) has clearly demonstrated their belief that people exist for them to prey upon.

  17. Very limited by stienman · · Score: 4, Insightful

    It would only work when the pressing of a single key causes the generation and transmission of a packet. Telnet is what they talk about, but most terminal programs would be vulnerable. Connecting to a mainframe is obvious, but you'd have the same problem with windows remote desktop, any remote client programs, etc. The SSL telnet program send passwords as a single packet, so that would prevent transmission of information during the password phase, but would not prevent it during interactive use.

    Normal websurfing, email, and desktop applications run on the computer itself (instead of remotely) would not pass any usable jitter information.

    Ajax web based applications could be vulnerable if they generate packets each time a key is pressed. Not many do this, but more will as time goes on.

    The key problems are:
    1) It can, at best, transmit 1 bit per keypress
    2) All of the intelligence would have to be in the keyboard for deciding *what* to send.

    Further, I haven't read the paper, but I don't see how this would work unless the user's typing patterns are very well known to the program, or the jitter introduced is significantly greater than 1/2 the average keypress to keypress time. This would be noticable to most people, though they would get used to it. This could be adaptive though, if you know that a particular keyboard is used by one user, and the keyboard spends a significant amount of its bandwidth on known patterns.

    Also, the keyboard cannot query the computer - the only information it could gain is what is typed in it. And since it could only get 1/7 of the possible information that's typed in (or perhaps 1/3 if good compression is used) then it wouldn't be able to get very much at all.

    All in all, it seems like a cool trick, but like tempest it requires some fairly specific conditions. For most things there are other ways that are likely easier, less detectable by the end user, and more informative than this one. But under appropiate conditions, it could be just the ticket.

    -Adam

    1. Re:Very limited by sploxx · · Score: 1

      1) It can, at best, transmit 1 bit per keypress


      I would not be so quick to say this. A sophisticated parasitic channel would be not constrained to only a single bit delay (no delay/unit delay). Finer-grained timing information could be used.

      A thorough analysis of the SnR of such a time channel in a typical-internet-usage setting would be interesting.

      And, if the controller in the kbd is only slightly intelligent (which should be no problem to mass-produce cheaply nowadays), it could repeat the transmission of data deemed to be interesting (user/pass combinations for example) several times to increase the chance of getting it through.
    2. Re:Very limited by Anonymous Coward · · Score: 0
      It would only work when the pressing of a single key causes the generation and transmission of a packet. Telnet is what they talk about, but most terminal programs would be vulnerable. Connecting to a mainframe is obvious, but you'd have the same problem with windows remote desktop, any remote client programs, etc. The SSL telnet program send passwords as a single packet, so that would prevent transmission of information during the password phase, but would not prevent it during interactive use.

      Normal websurfing, email, and desktop applications run on the computer itself (instead of remotely) would not pass any usable jitter information.


      In many applications there are keys or shortcuts that are more likely to fire a packet. For example, the Return key in browsers, IM applications, IRC, etc. Transmitting information using a single key would give less bandwidth but better reliability. If all you're looking for is a password, it's a good tradeoff.

      The key problems are:
      1) It can, at best, transmit 1 bit per keypress


      There is no reason it could not transmit more.

      2) All of the intelligence would have to be in the keyboard for deciding *what* to send.


      If you know the target's username and want their password, listening for the former will often give you the latter. Usernames and passwords are also often followed by Return or Tab. If not, you can watch for "ssh *@*", it's also likely to give you a password.

      Further, I haven't read the paper, but I don't see how this would work unless the user's typing patterns are very well known to the program, or the jitter introduced is significantly greater than 1/2 the average keypress to keypress time. This would be noticable to most people, though they would get used to it. This could be adaptive though, if you know that a particular keyboard is used by one user, and the keyboard spends a significant amount of its bandwidth on known patterns.


      You don't really need to know typing patterns. To give a very simple example, let's assume OS or network jitter is constant, or is significantly less than 1ms (I know it probably isn't!).

      When you want to encode a 0, wait for a multiple of 3ms on your internal clock. When you want to encode a 1, wait 1 more ms after a multiple of 3ms.

      Let's say you implemented this and that the packets arrive at the following times from when you start listening:

      1,7,10,11,55,56,211

      Modulo 3, this gives:

      1,1,1,2,1,2,1

      Obviously, there has been an offset of 1ms and this corresponds to the binary sequence 0001010.

      In practice you'd use a much bigger window than 3ms, intervals large enough to cover most of the noise coming from the upper layer, and you'd also use proper error correction mechanisms, but it's definitely feasible.
    3. Re:Very limited by bhmit1 · · Score: 1
      Further, I haven't read the paper, but I don't see how this would work unless the user's typing patterns are very well known to the program, or the jitter introduced is significantly greater than 1/2 the average keypress to keypress time.
      They do it but having a regular timer on the keylogger. From the usenix article, they pick a window, say 30ms, and you want to put in three values per stroke, 0, 1, "no transmission", with each value being at a 10ms point within the 30ms window. So when you type a key, if it's trying to transmit data, it waits for the appropriate 10ms time and sends it. 10ms is large enough to get around most network induced jitter. And 30ms is small enough to go undetected by the user.

      Now, to keep the regular transmissions at 10ms intervals from getting someone's attention, they further hide it by rotating the timer with a preset array of offsets. Say your offset array is {2, 16, 29, 13, 27, 8}. You easily synchronize your sniffer timer to the keyboard timer by looking for that pattern to show up from the "no transmission" bits that you put at the start of every transmission. Then, when you want to transmit a 01010101, you would send at the timing offsets 2, 26, 29, 23, 27, and 18ms. Now, for the first bit at 2ms that you're transmitting, if you typed some key at 8ms into the timing cycle, you would wait 24ms (2ms-8ms mod 30ms) for the keystroke to appear. Continue through each key press and reverse the process on the sniffer.
    4. Re:Very limited by TheRaven64 · · Score: 1
      data deemed to be interesting (user/pass combinations for example)

      The problem I have is how the keyboard is expected to know when I am typing a username and password. I never do for SSH, since I have keys set up for that. I might type in the root password when I su, but I have remote root login disabled, so that won't help an attacker. Most of the time I type in a password you would need to be able to see my screen to know that is what it was.

      --
      I am TheRaven on Soylent News
    5. Re:Very limited by Anonymous Coward · · Score: 0

      When I connect to an AS/400 machine, tn5250 uses some type of block editing.

    6. Re:Very limited by Deliveranc3 · · Score: 1

      Mechanism depends, on timing data in packet.

      Let's say the average person can type 6-7 key strokes a second that's about 120ms a keypress.

      Now let's assume that it's possible to monitor packet delay over a dedicated connection to within .5ms (Not unreasonable.

      Now all you need to encode into the keyboard is that it tries to transit a packet every 100ms + keyvalue x .5ms (forwards and backwards can double this number I.E. 5ms before = 10x2 5ms after = 10 etc.)

      Seems pretty smooth, you don't even need to know the latency of the system because it should be constant (Unless microsoft sends another packet every time you type bomb).

      Wouldn't count on this being entirely practical though.

  18. I'm skeptical, too. by alexhs · · Score: 2, Informative

    Here is the paper.
    A "Keyboards and Covert Channels" search on Google will give you the PDF, too.
    I don't have time to read it right now (time to sleep here in France ;) so if someone want to read and report his conclusion that I can read next morning...

    --
    I have discovered a truly marvelous proof of killer sig, which this margin is too narrow to contain.
    1. Re:I'm skeptical, too. by Anonymous Coward · · Score: 0

      > I don't have time to read it right now (time to sleep here in France ;)

      In other words, you surendered...

  19. problems by Lord+Ender · · Score: 2, Informative

    If you're going through a router with any kind of load, it will add unpredictable delays of its own.

    Any crypto that relies on the timing of packets is going to have this problem, because IP makes no promises about packet timing (or even order!).

    --
    A slashdotter who didn't build his own computer is like a Jedi who didn't build his own lightsaber.
  20. {sigh} by ScrewMaster · · Score: 0, Flamebait

    Why do people invent shit like this? So far as I'm concerned, this is just about as "useful" to society as the average trojan, worm or virus.

    --
    The higher the technology, the sharper that two-edged sword.
    1. Re:{sigh} by Elemenope · · Score: 3, Insightful

      I was thinking about that myself. I'm no Luddite, but it seems to me the inexhorable march of advancement is fast outstripping any hope of catching up with social and cultural adaptation. Stuff like this makes me think "Why would anyone (legitimate) do this? Just to see if they could?" It seems like a stupid justification.

      But then, isn't it stupendously better for this type of danger to show up in an academic paper, for all to see and think about how to counter, rather than spooks, foreign spooks, or some black hat with an attitude being able to use it surreptitiously for a long, long time because nobody else thought about it or publicized it?

      --
      All the techniques ever used to make men moral have been themselves thoroughly immoral... (Nietzsche)
    2. Re:{sigh} by ghettoimp · · Score: 1

      DARPA and the NSA are devoutly, religiously paranoid about computers, and they dominate the funding of computer science research. I'm sure they think they stuff like this is important, regardless of whether it is or not.

    3. Re:{sigh} by Anonymous Coward · · Score: 0

      1. DARPA and NSA do not dominate computer science research
            (and in particular, DARPA's share of blue sky CS research
            has virtually disappeared).
      2. The security researchers spend (almost) as much time attacking as
            they do defending systems. (Although they generally do not actually
            cause direct damage). Can't play defense without understanding offense.
      3. Security is hard, really hard. The keylogging technique is an example
            of covert channels, which has been studied by researchers for at least
            3 decades in the open literature. This form of attack (although the
            details are clever) is not a surprise.
      4. Fundamentally, OS design assumes a fairly benign environment. (Part out
            of ignorance at the time the mechanisms were developed and part to reduce
            cost).

      A security researcher

    4. Re:{sigh} by headonfire · · Score: 1

      I think that may be -exactly- why to continue research into security academically. There are people out there with a very real and practical (to them) urge to research this stuff: in order to use it against their perceived enemies. Pick a religious, ethnic, political, or racial minority OR majority, poor people, rich people, business people, you, me, everyone who buys a computer in a certain region, bugged hardware for export, foreign nationals and diplomats... The list goes on.

      It's better to have the flaws in our major systems exposed on a public level so that we can develop countermeasures, then it is to let the _real_ "bad guys" use it against us, the public.

      I don't know about you, but I cannot and will not stand for it. Nobody has the right to spy on me, or you, or anybody else. NOBODY. I don't care if it's for "legal" purposes or not.

      Laws are written to make criminals, not good citizens.

  21. Could you get around this...BANG! by Anonymous Coward · · Score: 0

    There's a way around that. Ah, damn! Now I have to shoot myself.

  22. Cool... but does it run on Linux? by Somebody+Is+Using+My · · Score: 1

    Seriously, wouldn't it need drivers to hook into the OS to access the network stack, at least for anything beyond Telnet and Remote Desktop (which, according to the article, sends "a packet ... every time a user presses a key"). Using the keyboard with webbrowsing or downloading seems safe, as far as I can understand (which, admittedly, may not be all that far :-) And if don't use Telnet or RD and use a bog-standard keyboard driver on Linux and you should be safe, right?

    (Or just use a telnet or remote client that is progmatically de-jittered)

  23. keep in mind that I 'm too lazy to RTFA.... by erotic+piebald · · Score: 1

    but, all of you thinking that your typing speed would influence the devices' output... couldn't the device just buffer up your keystrokes a little bit and then send them out timed the way they wanted. I don't know about you, but my hands have memorized many of my passwords and usually just send them out in a burst. If the device was buffering, say, 8-12 bytes at a time and then sending them out timed to perfection, I'd probably just chalk-up any delay that I noticed to normal network lag.

  24. Yeah... by Kawahee · · Score: 2, Interesting

    A keyboard keylogger? "Scary". I think not. It's not like these people are going to bust into internet cafe's, pick the lock and change the keyboard without anybody noticing. Nor are they going to do it to somebody's personal PC ("Hey, my keyboard's different. Oh well..."). The only market I see for this is for corporations, and they can either use a hardware dongle, or have a software keylogger. They can also run the user in a sandbox that prevents them from detecting the software one, and the software one probably has more power in it anyway.

    Undetectable data transfer is at least worrying, not the fact you can embed it in the keyboard. Also, external hardware devices can't be plugged in and execute arbitrary code, which means you require software installed, which can be detected. Not such an undetectable spy device now, is it?

    --
    I'll subscribe to Slashdot when I see a month without a dupe, a typo, or an article the "editors" didn't read.
    1. Re:Yeah... by _generica · · Score: 1

      > A keyboard keylogger? "Scary". I think not. It's not like these people are going to bust into internet cafe's, pick the lock and change the keyboard without anybody noticing.

      And what makes you think the internet cafe owner wouldn't just do this themselves?

      I know a friend who used an internet cafe to do net banking, and the next day, they had $3000 transferred from their credit card to a mysterious account

    2. Re:Yeah... by YrWrstNtmr · · Score: 1

      It's not like these people are going to bust into internet cafe's, pick the lock and change the keyboard without anybody noticing. Nor are they going to do it to somebody's personal PC ("Hey, my keyboard's different. Oh well...").

      How about a stack of them at your next local computer show. "Free keyboard with any purchase over $40!" You'd take one. And so would I. And not think twice about it.
      Well..maybe not now.

    3. Re:Yeah... by myowntrueself · · Score: 1

      It's not like these people are going to bust into internet cafe's, pick the lock and change the keyboard without anybody noticing.

      A few years back a bank in some Israeli town was broken into.

      The police were called but nothing seemed to have been stolen and they though nothing of it.

      A few months later large amounts of cash started vanishing from accounts there.

      It turned out that someone had broken in and installed a wireless access point.

      --
      In the free world the media isn't government run; the government is media run.
    4. Re:Yeah... by Kawahee · · Score: 1

      The internet cafe owners could just install software keyloggers. To use the keyboard to log keystrokes you'd need the software anyway. My point was this is no more scary than a more powerful software keylogger, so they don't need to hype it up.

      --
      I'll subscribe to Slashdot when I see a month without a dupe, a typo, or an article the "editors" didn't read.
    5. Re:Yeah... by Kawahee · · Score: 1

      The keyboards still need software to phone home, so it's practically no different to a software keylogger. Hence it would be cheaper and easier to give away a free CD with some stupid home-brew game on it with a keylogger hidden and get the same end-result.

      --
      I'll subscribe to Slashdot when I see a month without a dupe, a typo, or an article the "editors" didn't read.
    6. Re:Yeah... by Kawahee · · Score: 1

      1. The owners might just notice the keyboards are slightly different
      2. The keyboard still needs software for keylogging functionality, so they're going to have to install software (and since most internet cafe computers are stored inside locked boxes, there's no incentive to forceably open the boxes to install a keyboard and then software when they could just install software)

      Hence my point that this isn't any more scarier than a software keylogger, just stupider.

      --
      I'll subscribe to Slashdot when I see a month without a dupe, a typo, or an article the "editors" didn't read.
  25. I was a bit hasty... by BrewerDude · · Score: 1

    OK, thanks to someone else for digging up the real paper. It's actually quite interesting how they do it, and it makes sense. I encourage anyone who is interested to just avoid the article that was posted and read the paper instead. Much more intellectually satisfying...

    I just get worked up by how much the press tries to fear monger these days and, given the increbile lack of detail there, assumed it was overblown. After reading the real paper, I have to admit that I was wrong.

  26. Seems like an unlikely scenario by tji · · Score: 3, Insightful

    Maybe it's a proof of concept, or thought exercise, but I think there would be many hurdles against actually using this. Such as:

    - Discerning keyboard delays vs. user typing delays.
    - Discerning keyboard delays vs. network latency variability.
    - Getting the user to connect to a remote host using a direct keyboard interface like telnet. The much more common WWW connections do not expose keyboard input speed, the input is sent as one big request (unless you run some java app, or possibly other active code in the browser).
    - Compromising the network connection or destination host to expose the keyboard traffic.

    I'd say there are a whole lot of more likely exploits that are higher on my list of things to look out for.

    1. Re:Seems like an unlikely scenario by Hockney+Twang · · Score: 1

      Maybe I'm misunderstanding this, but my impression is that this is a keylogger which works in the following fashion:

      You have, for one reason or another, a constant stream of data outbound from your pc. When you press the "q" key, that introduces a 2ms delay before your next packet goes out. "W" might introduce a 2.5ms delay, and so forth. So they discern what you were typing by reading they delays in your outbound data stream.

    2. Re:Seems like an unlikely scenario by QuantumFTL · · Score: 1
      • Discerning keyboard delays vs. user typing delays.
      • Discerning keyboard delays vs. network latency variability.

      Of course, this system would undoubtably have a very low signal to noise ratio, but that only limits the bandwidth to very small amounts, it doesn't prevent it from working entirely. Sending a password is what, a few bytes?
      • Getting the user to connect to a remote host using a direct keyboard interface like telnet. The much more common WWW connections do not expose keyboard input speed, the input is sent as one big request (unless you run some java app, or possibly other active code in the browser).
      SSH is very popular, and has similar timing charactoristics to telnet...
      • Compromising the network connection or destination host to expose the keyboard traffic.
      If someone's operating over a VPN (thinking they are secure) this could be as easy as being their ISP, or an internet trunk. WIFI sniffing is also a good way to get this information (straight from the source) and that can be done for *miles* out of an office building, even further with good equipment.
  27. Trusted Input Device by NotQuiteReal · · Score: 4, Funny
    I don't trust anything that I didn't key into the front panel switches myself.

    This Trusted Input Device method, I call TID BITS, for short.

    --
    This issue is a bit more complicated than you think.
    1. Re:Trusted Input Device by Larry+Lightbulb · · Score: 1

      Ah, the joy of talking a user through reloading the bootstrap on a Molly - http://www.ps8computing.co.uk/BCL/models.htm

    2. Re:Trusted Input Device by wbean · · Score: 1

      Ah, 40+ years ago I used to work on Honeywell computers. To start one up you would first clear memory by setting 15 00 00 00 01 into the switches on the front pannel and pushing the go button. Those funny numbers translated into LCA 0000 0001, that is copy memory address 0001 to 0000, and continue copying. This would run around and around all 2k of memory and when you got tired of that you would press the stop button. Now why can I remember that sequence and not the grammar for an http link? (Oh yes, we did have modems. They worked at 15 cps, yes, that's right: 15 six-bit characters per second.)

  28. Interesting theory, but how likely in practice by bhmit1 · · Score: 4, Insightful

    SSH already went through the debate of timing style attacks and came out fine: http://www.ssh.org/company/newsroom/article/204/. Additionally, web forms aren't transmitted until you hit submit. So you need some interractive session to monitor to detect something like this. The article mentions telnet, which, if you're going to sniff to detect packet timing, you might as well watch the packets themselves. When you get into something that is encrypted and interractive, wouldn't there be enough random jitter from the encrypting and other data, like mouse position updates when you have remote GUI's, to make this very difficult without creating so much jitter to be obvious to the user that the keyboard is screwed up?

    Implementation wise, the article lacked detail, so it's time to guess what's involved. You can't simply add a fixed number of ms to each key. What you need to do is have a timer that you are always offsetting from. Otherwise, the time that the user takes to type a key would be added on to the keystroke jitter, making it useless. Say you only watch 90 keys, giving you up to 90X, where X is some measurable time. The timer would also need to be 90X, meaning that you really have a maximum possible delay of 180X. With a CPU context switch (this is an interactive user), encryption processing, and physical network delays, I'm guessing that X would have to be several ms to be detectable. That would make the maximum time, even with only a 3ms X, over a half second in the worst case, which a user will certainly notice. Of course you can reduce the number of keys that you monitor, I picked 90 because it made the math easy and eliminated the F1-F12 keys. But anything over a couple 1/10s of a second will be noticable.

    1. Re:Interesting theory, but how likely in practice by sploxx · · Score: 1

      How about clocking the keys out of the keyboard in a regular manner (even if they are typed irregularly) and then adding the delay for the information?
      There are some ways one can think of which would allow data transmission.

      And AFAIK the keyboard controller in a typical PC keyboard only scans the keyboard 15 times per second which means that there is a natural regularity in the data already.

    2. Re:Interesting theory, but how likely in practice by bhmit1 · · Score: 1
      How about clocking the keys out of the keyboard in a regular manner (even if they are typed irregularly) and then adding the delay for the information?
      That's what I described, up to 90X for the over all keyboard clock, and another 90X for the additional delay. Of course you could type the character encoded as 1X right at the start of the cycle and hardly see any delay. Actually, thinking through it a bit harder, your overall max is really just 90X since if someone typed the key encoded as 89X right after the start of the timing cycle, you'd still send it at 89X and not wait for the cycle to reset. Still, if X is something like 3ms, 90x3ms = 270ms will be noticable to someone that types fast in a document and notices the application lagging.

      However, now that I've read the usenix submission, the researchers are actually proposing to only encode 1 bit of data every 20ms, which can be done unnoticed. However, this means that your keyboard sniffer has to be intelligent enough to know what is important to send since it takes 7 key strokes to send one 7-bit character. How does a key logger know the important 1/7th of the data to send without some interaction with the OS and applications?
    3. Re:Interesting theory, but how likely in practice by bhmit1 · · Score: 1

      I hate replying to myself, but the 1/7th of the data that you want to send would obviously be the next 20 characters or so after the ssh user@.* string. Sorry for not finishing the article before posting, but it's pretty damn long and boring. For those that feel like reading along, the usenix article that was posted earlier is at http://www.usenix.org/events/sec06/tech/shah/shah_ html/jbug-Usenix06.html

      Pre-programming the logger with the username would also be a good method. Of course you could always switch to a different window (vi) and type some random stuff for a minute before going back to the ssh session if you suspected this problem. Or like everyone else has said, introduce your own jitter into the network traffic. I'd just hate to deal with that kind of throughput.

      The best example of using this would be by the police that don't feel like reentering your home and placing the tap on your equipment and can get a sniffer right at the ISP with minimum network lag. Beyond that, I think people are being paranoid. But then, that's what slashdot is here for.

    4. Re:Interesting theory, but how likely in practice by Anonymous Coward · · Score: 0

      or you could just use two symbols, binary, to encode whatever data you like...

  29. password exposed via timing. by Kaenneth · · Score: 5, Interesting

    I recall a story of someone who determined a co-workers password by listening to the timing of her keypresses.

    "mickeymouse" m i c k e y mou s e

    1. Re:password exposed via timing. by Anonymous Coward · · Score: 0

      Amazingly, the mods missed the joke.

      No, wait, I guess that's not really amazing.

    2. Re:password exposed via timing. by zobier · · Score: 1
      m i c k e y mou s e
      I think it's more like m ic k ey m ou se.
      --
      Me lost me cookie at the disco.
    3. Re:password exposed via timing. by Anonymous Coward · · Score: 0

      I recall an Isaac Asimov story where a secretary uses the timing of her keystrokes to transmit messages.

    4. Re:password exposed via timing. by forgotten_my_nick · · Score: 1

      You should of been modded funny. But then not everyone knows the mickey mouse song. :)

      On a similar topic wasn't there a story on /. that allowed you know what keys where being pressed by the sound of the keys in relation to a microphone?

  30. US controlled Swiss mfgrs of encryption equipment by Anonymous Coward · · Score: 0

    For a lot of years, we ensured that we could decrypt traffic of a lot of 3rd world nations, no problems.

    I sort of doubt those Swiss encryption equipment companies are still in business, but probably they took enough NSA/CIA money they don't much care.

  31. I don't see that with varying the delay. by khasim · · Score: 1

    About the only way I can see this working is if the keyboard had a buffer. Not only to capture your keystrokes, but to also pass them to the application.

    The keyboard would have to establish a standard delay for each packet and then lengthen/shorten that delay to indicate 0 or 1.

    If you're doing a lot of typing (like I am right now on /.), then should be easy for the keyboard to set the timing.

    If I start uploading a file or something else, then the system won't be able to transmit data during that process.

    So, this is a potential threat ... in very limited circumstances ... for very restricted input options.

    Not to mention that the attacker has to have a sniffer between you and the first router on your network. Otherwise that router will be introducing its own delays and further scramble the timing.

  32. So thats why government keyboards cost $1000 by llZENll · · Score: 1

    Making a keyboard without any parts that were manufactured or assembled outside of the USA, is this even possible? What about a whole computer? How much do you think it would cost?

  33. Headache by Foobar+of+Borg · · Score: 0, Troll
    Oh, fuck it! At this point I'm willing to go back to using a typewriter and an abacus (or at least a completely non-internet connected computer). Let me know when you geeks finally get all this "look I can pwn you better than you can pwn me!" infantile bullshit out of the way.

    And when I'm on slashdot and I get headache pain, I take Sanhedrin, the headache medicine (those of you old enough will get the joke).

    1. Re:Headache by Larry+Lightbulb · · Score: 1

      HeadOn - apply directly to the forehead
      HeadOn - apply directly to the forehead
      HeadOn - apply directly to the forehead
      etc

    2. Re:Headache by Anonymous Coward · · Score: 0

      And people laugh when I say I've got a collection of old computers in cold storage (from CBM PETs on up) for "future use."

      All kidding aside...it seems that we are in the middle of a digital arms race that is rapidly turning the entire digital world into a complete and total police state.

      What is it all accomplishing? "Researchers" at an accredited university spending grant money on this shit. And then we've got the security jockeys...you know the ones, the self-styled rock-stars that headline Black Hat and Def Con with the latest papers on how to further FUCK OVER everything that happens to be connected to something else. OOOH you found yet another inevitable hole in something, big fucking whoop. Thanks for releasing a paper on it and providing working code for all those shithead kiddies out there...you've solved nothing. You've just put another bar up on the prison of the digital police state.

      When will it end? Say in the future we have the ultimate computer and ultimate operating system that is 100% secure, so secure the "rock stars" of Black Hat have nothing more to say. Will it be useful? I doubt it. Will it allow the creativity that has been the hallmark of the computer revolution? Hardly. But ooh it'll be secure all right. So secure it'll be 100% useless.

    3. Re:Headache by Anonymous Coward · · Score: 0

      typewriter and abacus are just as susceptile. in the late 70's, both cia and soviets claimed they had the technology to measure the window vibrations (as you pounded away on the typewriter, it made noise which (reverberated towards the window).

      wonder if they ever thought of modifiyin the algorithm to meaures the noise as you slid discs on the abacus...

      This keyboard packet thing isn't really any different than measuring window vibrations (except it's evil phone home nature)...

    4. Re:Headache by Foobar+of+Borg · · Score: 1
      This keyboard packet thing isn't really any different than measuring window vibrations (except it's evil phone home nature)...

      Well, that's the real problem. Using the older technology requires a lot of time and effort and some activity by a human being trying to detect what is being typed. The evil phone home nature, along with the automated nature, of the device makes it trivial for someone to obtain a bunch of data on tons of people. This would not be possible in an earlier time since so much more human time and human effort would be required.

  34. Nagle's algorhitm by vadim_t · · Score: 5, Informative

    Just enable (as it's usually disabled for things like SSH) Nagle's algorhitm, and it should destroy most of the timing information.

    For those who don't know, it's a TCP optimization that buffers data until there's a packet worth of data, or an ACK is received for the last packet sent, so that writing 1 byte of data into a socket doesn't immediately result in sending a packet with 40 bytes of overhead, and 1 byte of data.

    1. Re:Nagle's algorhitm by seanadams.com · · Score: 1

      Just enable (as it's usually disabled for things like SSH) Nagle's algorhitm, and it should destroy most of the timing information.


      You'd be correct except that nagle doesn't really come into play these days except in unusal congestion situations or very long distance communication.

      It used to be really important when you'd have busy servers that can barely keep csh responsive, or a hundred users sharing a 56K frame relay line. Nowadays the echo/ack comes back on each keystroke.

    2. Re:Nagle's algorhitm by vadim_t · · Score: 1

      If your server is right nearby, sure. The best ping times I get for anything on the Internet is 100ms, and 200-300ms is a lot more usual. I can easily type fast enough so that it comes into play.

    3. Re:Nagle's algorhitm by Jonner · · Score: 1

      You're right that networks are faster now than they used to be. That means that it's even more important to enable Nagle's algorithm for interactive sessions like SSH. When it's enabled, the kernel won't send a datagram for every keystroke, but will wait until it has a good number of bytes to send. That keeps timing information from leaking out onto the wire.

    4. Re:Nagle's algorhitm by seanadams.com · · Score: 1

      You're right that networks are faster now than they used to be. That means that it's even more important to enable Nagle's algorithm for interactive sessions like SSH. When it's enabled, the kernel won't send a datagram for every keystroke, but will wait until it has a good number of bytes to send.

      Wrong - it will send each byte as fast as the acks are coming back. That's the whole idea.

      On a fact network, that's practically instantaneous - on the order of 1ms vs (for a very fast typer) 100ms between keystrokes.

  35. bullshit detector says hardly needed by frovingslosh · · Score: 4, Insightful
    Sure, you could add your own jitter, but it's not really needed. My bullshit detector went off right as I hit the text reading "adding imperceptible delays to keypresses as people". Come on! People add their own imperceptable delays to keypresses, particularly when typing passwords. Other system and network activity adds timing discrepencies to packets that would mask this "jitter". And in most cases when a password is sent, it is sent in a packet, not as individual packets for each character, meaning that the keyboard can't really influence the between letter spacing at all. Plus the keyboard has no comprehension of what is going on upon the screen, it has no way to know if what is being typed is a password or not, so there is no way it can detect and specially encode passwords, it would have to somehow influence the system in a way that allowed it to encode every single keypress as this magic keypress jitter. Because of other packet "jitter" already affecting traffic, I don't believe it could even work if robots were doing all the typing, but certainly not for humanas.

    Sure, there is valid reason to be concerned about spying hardware and software being built into computers.But unfortunatey bullshit hype like this just clouds the issue, when it is finally discredited it will just make it that much harder for people who are warning of valid concerns.

    --
    I'm an American. I love this country and the freedoms that we used to have.
    1. Re:bullshit detector says hardly needed by TMB · · Score: 1

      You're mistaking the data that is being clandestinely communicated (the password) and the data stream that it's being hidden in (an ssh/telnet session). The fact that the password is transmitted in one packet is independent of the packets of the ssh session in which that data is secretely transmitted.

      [TMB]

    2. Re:bullshit detector says hardly needed by frovingslosh · · Score: 1

      No, you are believibg that a keyboard can somehow do anything more than change the timing on keypresses. If the keyboard could somehow play games with the packets beyond just delaying keystrokes then, sure, it might be able to do a lot of things. But since all the keyboard can do is affect the input to the keyboard logic, and this is all they are claiming it can do, it can hardly use a bunch of packets to sneak out information on a password, even if it knew which keystrokes were the password, which it obviously does not.

      --
      I'm an American. I love this country and the freedoms that we used to have.
    3. Re:bullshit detector says hardly needed by x2A · · Score: 1

      Yeah I thought that - how can they determine the delay the keyboard added over the delay the user added? But then thinking about it, quite easily, using rounding.

      First you have to pick your unit of time (eg, a 100th of a second). Idealy you want it large enough so it's not lost in processing time inconsistancies, but short enough so the user doesn't detect it. Then you split your data into 1's and 0's (kinda already done in a computer). If you want to send a 1, you delay the packet until the nearest even 100th of a second, and if you want to send a 0, you delay the packet until the nearest odd 100th of a second. Throw in a few start/stop/parity bits so you can tell which is meant to be the odd vs even 100th of a second on the keyboard when you read it, and you're done.

      There are many ways you could improve on this techneque, but I didn't RTFA and I'm too tired to put more thought into it, but this should get ppl started :-p

      --
      The revolution will not be televised... but it will have a page on Wikipedia
    4. Re:bullshit detector says hardly needed by dustman · · Score: 1, Insightful

      A) It can 'transmit' any data it wants along the connection from the keyboard to the computer, encoded in the timing of keypresses. For example, it could transmit a keypress every 2ms max. If the keypress is transmitted on an odd ms, then the bit being transferred is a 1, otherwise it's a 0. This scheme seems a little naive, but it's a simple example.

      B) Some programs send packets interatively, on keypresses. As the article says, programs like SSH, and remote deskop.

      So, if you design your transmission protocol to be resilient enough to handle the noise introduced by all the processing between the keypresses hitting the computer and the computer transmitting a packet, as long as the packet transmission is still tied to the keypresses, you could eventually transmit information along this 'channel'.

      Now, the issue is just deciding which information to transmit.
      You could easily just dump its entire buffer over and over.
      Since this channel will probably be pretty slow, however, you might want to code "password detection" heuristics into your algorithm, so it can try to only send passwords, or at least send them first. A simple heuristic I thought of off the top of my head just now: A sequence of characters that does not form an actual word, but is repeated several times per day/week is probably either a password or a recurring typo. Send these sequences first.

    5. Re:bullshit detector says hardly needed by frovingslosh · · Score: 4, Insightful

      That makes no sense at all. Remember, and this is something that you seem to be completely ignoring, This is a keyboard, it sends keystrokes to the motherboard, it does not send packets to the Internet! Packets would be sent by some software that was in the computer after the keystrokes are reeceived. SO, ok, lets pretend that the keyboard can indeed slightly delay packets and know how long ago in milliseconds it was since the last key press, even if it was several minutes. Then yes, the keyboard could convey one bit of data with each keypress. But it can only convey it as far as the local computer that is receiving keystrokes. If that computer is not in on the game and is not running special software to detect the delays, then this whole thing is meaningless! And if it is compromised, then there are far simpler ways to capture and send passwords than to have a hardware hack keyboard that uses this bogus "jitter" nonsense.

      --
      I'm an American. I love this country and the freedoms that we used to have.
    6. Re:bullshit detector says hardly needed by Anonymous Coward · · Score: 0

      I think the point is that the keyboard records the first twenty or so characters typed after a long delay (probably containing a username and password) and then repeatedly transmits those twenty characters through the timing mechanism until it records a new set.

      Of course no-one could read the correct data after a single transmission, but if you had hundreds of samples of the same transmission it may be possible to perform statistical analyses of the timing data and extract the characters.

      There's always more to it than you think.

    7. Re:bullshit detector says hardly needed by Peter+Mork · · Score: 1

      The attacker doesn't need to control the local computer; the attacker only needs to trust that the local computer doesn't introduce its own jitter. Isn't it telling that the researchers implemented the attack without modifying the local computer?

    8. Re:bullshit detector says hardly needed by JavaBrain · · Score: 1

      Please mod parent up, and delete all other posts to this article, since this was the only relevant post. The article is complete nonsense.

    9. Re:bullshit detector says hardly needed by dustman · · Score: 1

      That makes no sense at all. Remember, and this is something that you seem to be completely ignoring, This is a keyboard, it sends keystrokes to the motherboard, it does not send packets to the Internet!

      It makes perfect sense. Remember, and this is something that you seem to be completely ignoring, despite the fact that the article mentions and I repeated it in my message: There are some programs, like SSH and remote desktop, that send packets to the internet as soon as keypresses are received.

      So, this method depends on an "unwitting accomplice", sure, but programs like this exist (and ssh, at least, is very common).

    10. Re:bullshit detector says hardly needed by frovingslosh · · Score: 1
      There are some programs, like SSH and remote desktop, that send packets to the internet as soon as keypresses are received.

      No, you are wrong. No program sends packets as soon as keypresses are received. All programs and all operating systems have latency. Even a true real time OS would be hard pressed to be exploited this way, as the latency would likely be enough to mask the impossed "jitter". But Windows is far from a real time operating system, it gaurantees no maximum latency between when the keypress is received by the hardware and when the software will run that understands it. And with Windows this latency can be and often is quite long. There is also latency that comes in after the program creates the packet and tries to send it out the network port. And there are other potential delays too (the OS can and often does snatch control from the program making that packet after it has received the keypress but before the packet can be sent so that it can do something else, for example). All together this makes it absurd that Windows could be exploited this way, it's just too poor of an OS to sneak information through by imposing jitter on the keyboard input, even if the user were typing through software that does one packet per keystroke (and most such software imposes it's own variable delays there too, so that if multiple characters are received back-to-back they can be sent out in one packet). Which is not to say that I believe that normal desktop versions of Linux could be exploited this way either, as they are also designed to be multi-process highly responsive desktop systems, and not real time systems that would allow a designer to impose latency limits on events like this. Add all of this to other network traffic (which certainly imposes delays for any packet sent or received), and you'll see why I have been sayiing this and people seem to show their agreement by giving karma to my comments against this hype.

      --
      I'm an American. I love this country and the freedoms that we used to have.
  36. Woo! I'm immune by Junta · · Score: 1

    Score one for dvorak, my traffic is as secure from the keyboard as the ROT13 I use on the nework... Also for massive amounts of bittorrent traffic in my upstream queue effectively destroying any timing information between my keyboard and the outside world. QoS probably actually works to keep it more intact, but still...

    If you were masochistic, have password prompts randomly shift your keymap back and forth while entering your password...

    --
    XML is like violence. If it doesn't solve the problem, use more.
  37. Here's what scares me about this... by spagetti_code · · Score: 2, Insightful

    The government of the USA has already shown a proclivity towards watching its citizens. To be fair, this phenomenon isn't limited to the USA, but Bush has taken it to new levels.

    We now know that the government secretly had printer manufacturers embed hidden ID codes on printer's output, thereby removing any possibility of anonymous document creation.

    I wouldn't be surprised if some enterprising Bush-ite didn't see the possibility here of having *every* keyboard manufactured with some form of this technology embedded. Imagine if the government could tell what you were typing just by listening to your traffic.

    Think of the terrorists we could stop! Think of the children!

    1. Re:Here's what scares me about this... by toxcspdrmn · · Score: 1

      That's why they can prise my 1980's Model M from my cold, dead, RSI-ridden hands.

      --
      "E pur si muove!" - attributed to Galileo Galilei, 1564-1642
  38. Yes, you can get around this by sacrilicious · · Score: 4, Informative
    No, you can't get around this, because if it's built into the keyboard, then it's a hardware thing, and any software based solution will be insufficient.

    Incorrect. It's true that there'd be no way to prevent the keyboard from collecting data, but one could certainly prevent the successful transmission of the collected data. The way the data would be encoded would be via the timing of the packets sent in response to keystrokes; that logic path most definitely involves software levels, specifically (in the example given of a remote terminal session) the choice of the software to send a packet once per keystroke. The proposed solution of introducing jitter to the packets is indeed a solution, and a simple straightforward one at that.

    --
    - First they ignore you, then they laugh at you, then ???, then profit.
    1. Re:Yes, you can get around this by Reziac · · Score: 2, Insightful

      I'm wonder if Treach^H^H^H^H^H Trusted Computing (the TC chip in the computer itself) might *prevent* a software solution from interfering with a compromised keyboard...???

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    2. Re:Yes, you can get around this by sacrilicious · · Score: 1
      I'm wonder if Treach^H^H^H^H^H Trusted Computing (the TC chip in the computer itself) might *prevent* a software solution from interfering with a compromised keyboard...???

      The TC chip only has power to do such things, against the user's will, if (a) the OS is written to prevent the user from running non-signed software even when the user wants to, and (b) the software solution being discussed isn't signed. (a) will generally not be true of linux; I'm not clear on what Windoze Vista's position will be on allowing the users to run non-signed software. In a way, this becomes an interesting argument against forced "trusted" (nee treacherous) computing, where a corporation forcing employees to run a locked-down TC OS would be the most unable to prevent the leaking of information due to this type of keylogger.

      For forced TC OS machines, an approach might be to proxy your network connections through some other machine where you CAN run a network stack tweaked to obfuscate time-encoded information. More simply than running a tweaked network stack, you could do rlogins through a machine with a tweaked rlogin shell, moving this logic to the application layer.

      --
      - First they ignore you, then they laugh at you, then ???, then profit.
    3. Re:Yes, you can get around this by Reziac · · Score: 1

      'In a way, this becomes an interesting argument against forced "trusted" (nee treacherous) computing, where a corporation forcing employees to run a locked-down TC OS would be the most unable to prevent the leaking of information due to this type of keylogger.'

      Very interesting point. Especially since the data that's worth the most is corporate; frex, a large volume of bank records. And if one can filch a few critical passwords out of an otherwise-protected keyboard datastream... 'creative' possibilities abound.

      --
      ~REZ~ #43301. Who'd fake being me anyway?
    4. Re:Yes, you can get around this by Anonymous Coward · · Score: 0

      If you had trusted computing, you wouldn't need to hide it in the keylogger. The TPM hardware itself can hide what code is doing from the user. In fact, TC makes things worse.

    5. Re:Yes, you can get around this by Reziac · · Score: 1

      An AC says, "If you had trusted computing, you wouldn't need to hide it in the keylogger. The TPM hardware itself can hide what code is doing from the user. In fact, TC makes things worse."

      Yep. In this case, we're hiding what the keylogger is doing from everyone but the TC, which may unwittingly enforce use of the keylogger... that's what the original poster was getting at. Do you really know about the integrity of everyone who works at the keyboard factory? how do you know that some mass-produced keyboard *doesn't* include a keylogging chip, and its own form of TC?

      It's farfetched, but the whole point of TFA is that it *could* be done.

      --
      ~REZ~ #43301. Who'd fake being me anyway?
  39. Should I worry about my HP Jitterbug Keyboard by rodion_schlatzski · · Score: 3, Funny
    A power supply problem zapped my HP Keyboard and the replacement arrived about 10 minutes ago. A lable on the outside reads:

    5069-7601 TASC

    -barcode-

    ASSY-KBD JITTERBUG PS/2 US/PAPE

    --- I guess it is time for HP to rename this sucker!

  40. Link to paper and website. by Anonymous Coward · · Score: 0

    Here is a link to the project website (the paper is linked from there):

    http://fuji.cis.upenn.edu/~gauravsh/jitterbug.html

    BTW, the channel output doesn't depend on the user typing pattern. The average delay added for each keystroke is of the order of 10 ms. The paper has more details. It will work with any application where there is causal relationship between keyboard and network activity (incl. SSH).

  41. The...William...Shatner...Keyboard. by darnok · · Score: 3, Funny

    Great...so...now...everything...I...type...will... look...like...William...Shatner...speaking...

    Each...word...gets...it's...own...sentence

    At least stuff I type will appear more dramatic

  42. Pah! by stunt_penguin · · Score: 2, Funny

    A keyboard that phones home? I want a phone that lets me type at 120wpm. Now that would be impressive ^^

    --
    When the posters fear their moderators, there is tyranny; when the moderators fears the posters, there is liberty.
  43. Finally... by chicago_scott · · Score: 4, Funny

    This sounds like a good way for citizens to track politicians' activity. As citizens we need better ways to serruptitiously monitor our public servants.

    Smaller cameras would be better too.

  44. This is why i use Vista Voice Recognition by jarg0n · · Score: 0
    This is why I use Vista Voice Recognition instead of a keyboard

    http://video.google.com/videoplay?docid=-112322121 7782777472&q=Vista+Voice/

    --
    Error 2101: all your sig are belong to us
  45. the users random timing isn't important by Anonymous Coward · · Score: 0

    c'mon, snark this out a little. They can ignore whatever randomness by users timing of keystrokes, because the individual keys are mapped with their choice of random (not really random, just all the keys needs to be different so the whole deal just looks random, it's really not a good word for this) timing sequence. They can throw out everything BUT their own keys, ignore your random speed or slowness, but it's a *conjunction*, and because they hold the key they can read it. (this tagged keyboard is a mechanical form of a one time pad, which you can use in conjunction with gibberish on top of it, they ignore the speed difference gibberish that doesn't fit their expected patterns) They can still read the traffic no matter who is using the keyboard or how weirdly they type. Even adding delays wouldn't help, because they would see those and chunk them out too as irrelevant to the real traffic, and they'd HAVE to do that anyway.

    Cute trick really. I guess you could sniff it, find their patterns, script something that mimics their patterns and transmits bullshit (pre determined by you, pages from a book or whatever), instead of the real stuff, by doing a substitution ciper using their data speed chunk signatures. If it was timely enough and not too stupid sounding (whatever your substitution was), they might even fall for it for quite a long time. You just have to make sure they see some of their expected patterns to keep them amused.

    I can think of a few other ways to play with them on this (one of them is hysterically funny), but that's enough for now.

  46. Of course it will work by Anonymous Coward · · Score: 0

    Many people don't seem to think this would work. However, it definitely will in the future if it doesn't now.

    Most terminal connections transmit one character per typed letter. This would be true of an ssh connection.

    The main objection seems to be that the attacker doesn't know the user's typing cadence. The keyboard itself can correct for typing cadence, delaying characters slightly to create slop that can be used to make cadence irrelevant. Human typists don't get much faster than 0.2 seconds per character. A few are slightly faster, but not much. So, the keyboard just needs to hold every keypress and release it on an even tenth of a second, modified by the key specific hundredths or thousandths of a second. So, 'a' = 0.n01 seconds, 'b' = 0.n02 seconds, 'c' = 0.n03 seconds, and so on. So, each packet will be emitted at 0.n?? seconds, where the ?? provides the key that the user pressed. If the time-to-packet is consistent to the thousandths of a second then the actual message can be hacked out of the character stream by solving a simple rot-n cipher.

    This just takes a high precision timer in the keyboard. It's not tough to get something working that's accurate to ten-thousandths of a second.

    A normal ping of my local gateway is consistent to ten-thousandths of a second right now.

    It's just a matter of time before the packet transmission delay between hitting a key and sending the key out of the network card makes this type of attack possible, if it isn't already. The article's "1 bit" of information is just a proof of concept. It would certainly be possible to tack on 8 bits of information through packet delay, as machine speeds improve.

    SSH claims that they are not vulnerable to the attack largely because of the cadence issue.

    http://www.ssh.org/company/newsroom/article/204/

    Their analysis is unimaginative. If SSH is not vulnerable now, it will be in the future. And it's not just vulnerable to password attacks. All information typed through the terminal would be hackable.

    Fortunately, there are solutions, like re-randomizing the network traffic release time at the network card. Or, randomizing single-character packet release times in the ssh code.

    Ah, and yes, I could walk into my local internet cafe or library and perform a quick keyboard switch without a problem. No one's watching. No one cares.

  47. {sigh}-Lost again. by Anonymous Coward · · Score: 0

    "So far as I'm concerned, this is just about as "useful" to society as the average trojan, worm or virus."

    Sounds like someone lost too many times at corewars.

  48. Telnet and SSH wouldn't be only affected. by stonefoz · · Score: 1

    Any sandboxed enviroment would have access to both the keyboard with short delays and at least the originating host. With a hidden channel between the keyboard and the running program, keypressed from outside of the sandbox could be sent. Activex, java, flash and possiably other web apps could be used to dump the keyboard contents with much closer timing tollarances, then encrypt and dump to remote host without any indication the user could detect.

    --
    I think I just cashed out all my cool points.
  49. What would Wham do in this situation? by Anonymous Coward · · Score: 0

    Wake me up before you go-go
    Don't leave me hanging on like a yo-yo
    Wake me up before you go-go
    I don't want to miss it when you hit that high
    Wake me up before you go-go
    'Cause I'm not plannin'' on going solo
    Wake me up before you go-go
    Take me dancing tonight
    I wanna hit that high (yeah, yeah, baby)

    (Jitterbug)
    (Jitterbug)

    Cuddle up, baby, move in tight
    We'll go dancing tomorrow night
    It's cold out there, but it's warm in bed
    They can dance, we'll stay home instead

    (Jitterbug)

  50. Low Bandwidh Signalling Channels by accessbob · · Score: 1

    Adding noise doesn't prevent timing channels, it only reduces their bandwidth. With error-correcting encoding and multiple sends, timing channels can defeat most "noise" based solutions. Actually, they might even add noise themselves to hide within.



    Even if the bandwidth is reduced to only 8 bits a day, useful information can still leak out



    Also: don't assume a timing channel in a keyboard would send the current keypress. It would send the relevant one (over time)

    1. Re:Low Bandwidh Signalling Channels by munpfazy · · Score: 1
      Even if the bandwidth is reduced to only 8 bits a day, useful information can still leak out.


      Of course when you get down to bits per day, you have to put together a some pretty smart filters to try to pull only useful information.

      I suppose it might not be too difficult, depending on your goal. Something as simple as recording the first thirty keystrokes after power-up is likely to catch usernames and passwords on a local machine. (If that's enough to get you in, then your victim isn't nearly as serious about security as you are about attacking him... but such isn't impossible.)

      The more you know about the victim and the information target, the better your chances of catching them, assuming you customize the bug before deploying it.

      If you want to really go to extremes, you might even be able to find a way to send information *in* to the keyboard by carefully delaying network packets. With a little experimentation, you could probably learn to measure the length of the delay in a keystroke echo using only the user's keystrokes. Then you just throw in a 1 second delay at precise intervals and include some pretty heavy analysis and error correction.

    2. Re:Low Bandwidh Signalling Channels by Sepodati · · Score: 1

      If you want to really go to extremes, you might even be able to find a way to send information *in* to the keyboard by carefully delaying network packets

      Since when do network packets get sent to the keyboard??

      ---John Holmes...

    3. Re:Low Bandwidh Signalling Channels by munpfazy · · Score: 1

      I repeat, "With a little experimentation, you could probably learn to measure the length of the delay in a keystroke echo using only the user's keystrokes."

  51. ThinkGeek.... by Rank_Tyro · · Score: 1

    How hard would it be for a manufacturer to install something like this Key Katcher! into a keyboard?

    --
    Today's show is brought to you by the number 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0: 25
  52. Remind me. . . by treak007 · · Score: 1

    . . .not to buy a new keyboard.Ever.

    --
    Klingon Software is not released, it escapes, inflicting terrible damage onto the enemy as it does
  53. bullshit by nazsco · · Score: 2, Insightful

    let's assume microsseconds delays in packets to transfer data. riiiiiiiiight...

    they should market it as a replacement for tcp/ip for real time applications rather then a scriptkiddie wet dream's keyloger.

    1. Re:bullshit by Anonymous Coward · · Score: 0

      Do you mean milliseconds? Micro would be millionths of a second.

      You only need thousandths of a second to make this work, which would be milliseconds from key press to packet, which is definitely possible.

  54. And cable boxes spy on you by transporter_ii · · Score: 1

    It's the trust and accountability we have in companies that keeps this from happening in general.

    Yeah, I know someone who swears that there is a camera in the remote sensor on cable TV boxes.

    While I figure it would take all of a day before someone figures out that the boxes have a camera in them, my main argument to him rested in the fact of what would happen to a company if it turned out every cable box they made had a camera in it.

    You know what, I think it goes beyond just having a bankrupt company and stock worth less than the price of some SCO stock (if that's mathmatically possible)...I think people would hunt down the upper management of the company and kill them.

    Of course, AT&T execs are still alive...

    Transporter_ii

    --
    Doctors destroy health, lawyers destroy justice, universities destroy knowledge, religion destroys spirituality
  55. Lag from the JitterBug or from network latency? by frdmfghtr · · Score: 3, Interesting
    FTA:

    In applications such as telnet and remote desktop, a packet is sent every time a user presses a key. By causing calculated "jitters" in keyboard input while such a program is running, a JitterBug could slightly delay data sent over the network. Certain amounts of delay could represent a one or a zero in each packet that is linked to keyboard use, allowing an attacker to send secret information in otherwise innocuous data without modifying software or initiating any new connections.


    How much jitter has to be introduced into the packet stream to be detected as inserted delay and not network latency?

    Pinging my own wireless router:

    10 packets transmitted, 10 packets received, 0% packet loss
    round-trip min/avg/max/stddev = 2.611/2.823/3.343/0.233 ms

    --- google.com ping statistics ---
    11 packets transmitted, 11 packets received, 0% packet loss
    round-trip min/avg/max/stddev = 10.530/10.839/11.361/0.251 ms

    --- yahoo.com ping statistics ---
    10 packets transmitted, 10 packets received, 0% packet loss
    round-trip min/avg/max/stddev = 61.703/65.211/68.176/2.781 ms

    Maybe the sample size isn't big enough, but how does one differentiate inserted delays from network latency? If the difference between the keystroke and the packet is the modulated data, how do you get this information to a recipient with to reference to when the keystroke was pressed? Maybe there's some fancy signal processing involved similar to spread spectrum, but that's never been a strong suit.

    (Asked by a network simpleton)
    --
    Government's idea of a balanced budget: take money from the right pocket to balance...oh who am I kidding?
    1. Re:Lag from the JitterBug or from network latency? by Anonymous Coward · · Score: 0

      It's about information theory. As long as there is statistical correlation between the signal sent by the keyboard controller and the signal received by the network sniffer far away, information can be communicated. And information theory proofs for things like this are accompanied by a channel coding method that actually achieves the communication. The operating system and the network in between introduce noise, but the guys in this report demonstrate that despite the noise it is still possible to get a signal through.

  56. It would kinda scare the heck out me. by Anonymous Coward · · Score: 0

    Thinking my keyboards are not cheep but verry well worn in.

    The ones on the servers are like Das Keyboards. http://www.daskeyboard.com/ It keep most people off them. No letters to work with are left on them. I don't have a problem using it.

    I find I type faster on Mechanical keyboards than membrane. My keyboards pay for self in a year. Normally if I see a new keyboard at my workstation first question who nicked my Mechanical keyboard they better return it now.

    Ok I have not needed a new keyboard in over 10 years. One day I will have to upgrade and get one with windows keys.

    I have been timed I lost over 30 words per min on a membrane keyboard compared to a new Mechanical and that is still 5 word per min slower than the ones I have broken in. They get a little softer with use. Not much but it does make a difference.

    A good keyboard to me is like a good pair of boots. Feel and work the best just before it fails.

  57. Radio transmissions, anyone? by QuantumFTL · · Score: 1

    You could always just transmit data secretly by controlling electromagnetic emanations of computers. Lets see a firewall stop that.

  58. Hey! I'm not THAT old! by NotQuiteReal · · Score: 1
    (yet) - reply to the responses so far...

    Yes, I do remember "mainframes" - I was in charge of about $3M worth of computing equipment, back in "the day", but I would guess my household computers surpass all that now. (Of course a VAX cost about $200K back then... Not a VAX III, mind you.)

    Just because I once had a job that involved loading many cases of punched cards into a computer doesn't mean I didn't know it was antiquated then! :-)

    (I was in the last class at a University of California school that required punch-card input. Of course, working in the computer center, I was able to use an interactive CRT workstation, then simply send my debugged program to the cardpunch... I had time to spare, and harass the poor souls who had to punch their cards manually, submit the deck, check for results, rinse lather and repeat, as it were. Heh.)

    But still - I am over 40, but less than 50. Not that old. (I haven't had my slide rule out in ages!)

    --
    This issue is a bit more complicated than you think.
  59. I know you're being funny, but... by SanityInAnarchy · · Score: 1

    DDR/StepMania isn't sensitive enough to catch this, I think. Yes, it's friggin' accurate, but probably not to less than a 10th of a second.

    --
    Don't thank God, thank a doctor!
    1. Re:I know you're being funny, but... by Asm-Coder · · Score: 1

      Tell that to my last three keyboards.

    2. Re:I know you're being funny, but... by marcansoft · · Score: 1

      Try tweaking the sensibility settings, and using a fast (1000Hz) USB poll rate. It IS very accurate.

  60. Workaround for Typing Speed Variation by DrHow · · Score: 1

    frovingslosh proclaimed, "People add their own imperceptable delays to keypresses, ... ." Yes, but the keyboard (or whatever) does not have to send the characters at the same instant they are typed. It can wait for the next multiple of some fraction of a second - e.g. .25sec - and then add its delays to those now-regularized instants in time. As long as the 'encoding' occasionally induces no delay, the listener can get synched up with the sender. It's not a problem if some instants are skipped. It is not a problem if the typist manages a burst that exceeds the maximum rate, as characters sent between the regularized instants would not have to carry information. (Actually, the 'regularization' does not even have to be uniform as long as it is predictable.)

    1. Re:Workaround for Typing Speed Variation by frovingslosh · · Score: 1

      Sure, the keyboard has control over when it sends the key strokes. But that is only key presses, it is not packets going out the network connection. Without special software in the computer to receive and decode those keypress delays, the keyboard can't control packet timing. It can't even know what keypresses relate to outgoing packets and what do not, what types of packets they are, what other network trafic there is at the same time that has real effect on packet timing, and so on. If there was special software in the local computer to interpret that magic keypress "jitter" then indeed it might be able to sneak out on the network any data that it manages to decode from the keyboard jitter (not that that data would likely retain it's own secret jitter information beyond the first router), but if you have compromised the computer enough to install such special software that the keyboard needs to communicate it's secret data then you hardly need this bogus keyboard hardware in the first place, and you don't need packet jitter to hide data (I can show you a lot of better ways that would still not show anything funny if the packets were inspected). This is hype, snake oil! Maybe you want to get one of those really really fast $279 gamer network cards that was talked about previously on Tuesday to zip your packets down the Internet quicker than all the other NICs do, so that you can protect yourself from packet jitter and any keyboards that my have this big brother hardware built in. After all, if you believe a keyboard can impose information carrying packet jitter then you likely will believe that the gamer NIC is going to live up to it's claims too.

      --
      I'm an American. I love this country and the freedoms that we used to have.
    2. Re:Workaround for Typing Speed Variation by Anonymous Coward · · Score: 0

      Well, the idea is that the keyboard _always_ applies the delays so it will also be applied if a remote desktop application or ssh etc is used.

      Lets assume that the keyboard sends keystrokes only at multiples of X milliseconds plus a delay if data is encoded and that it can encode 16 bit per delay and that it delays only every second keystroke to encode the last two keystrokes.

      Then let's assume that the user connects to a remote shell server using an encrypted connection with a (hypothetical, and quite dumb) software that sends exactly one packet per keystroke, with a constant delay between the keypress and the packet, and no other packets at all ;). And no random delay from the network be allowed.

      Under these conditions, an eavesdropper sees that every second packet has a constant delay to the next to last packet.
      E.g. packet 1 is sent at 0ms, packet 2 at 20 ms, packet 3 at 32 ms, packet 4 at 56 ms and packet 5 at 64 ms.
      Between packet 1 and 3, as well as 3 and 5 there is a delay of 32 ms. That is that packet 2 was 4 ms late and packet 4 was 8 ms late. In these two delays, the keyboard encoded four keystrokes, and the eavesdropper can decode them as he measured the delays.

      Seems to theoretically work, but of course only under the assumptions I made to the software and the network.
      However I guess that a serious eavesdropper would use a more robust (and less easily detectable) encoding and apply advanced statistics to the measurements (not just "divide by 2" ;) ) so that it might be possible to accommodate to real software.

      If only 50% of the keystrokes can be reconstructed, thats already a lot of data after all...

    3. Re:Workaround for Typing Speed Variation by Zenaku · · Score: 1
      Frovingslosh is very stubbornly assuming things about the technique that aren't involved. The computer doesn't have to decode the information from the keyboard and sneak it out over the network. All that is required is that the user be using a program that sends out a packet for every keystroke. The software, the computer, none of that deciphers the hidden info in the keystroke delays. Those things aren't aware there IS a hidden message, which is sort of the point. As long as you happen to be sending out network traffic at one packet per keystroke (by say, using SSH), and as long as the amount of natural delay introduced by networking stack is at a smaller order of magnitude than the delay inserted by the keyboard, then you would be transmitting the hidden information any time you are using such a program.

      Listen, your logic is fine, but your initial assumptions about how the technique works are not.

      And mods, since when does "Insightful" mean "Failure to understand the article?"

      --
      If fate makes you a motorcycle, you become a motorcycle.
  61. Don't be silly ... by b0r1s · · Score: 2, Funny

    Why would the US Government need to worry about this? It's not like most departments and branches buy all of their PC components manufacturered in China or anything...

    Oh, wait....

    --
    Mooniacs for iOS and Android
  62. Re:The Keyboard That Could Phone Home by Anonymous Coward · · Score: 0

    Dude? Time for your medication. Seriously.

  63. It's 1AM, do you know where your keyboard is? by Kadin2048 · · Score: 5, Insightful

    Mod parent up. This was my immediate question as well, and I still haven't heard it answered.

    If you want to encode information into the delay between key-press packets, then you need to make the delay significantly longer (at least a few standard deviations) than the average difference between two keypress packets.

    People don't type at exactly the same rate, so if the delay in between keypresses varies (I'm making up numbers here) between 100 and 150 ms, then you need to make the introduced delay greater than 50ms.

    Alternately, you could buffer all of the incoming keystrokes in the computer, and send them out at a constant rate (say exactly 100ms apart); then you'd only have to add a small delay to them in order to encode information. But unless the packets are being buffered and sent out in such an orderly fashion by the host system already, it seems like this kind of behavior could be easily picked up on, because it would cause a delay of at least a few keystrokes in an interactive system (if there's one packet per keystroke and you're queueing and buffering a few packets at a time). I'm sure there's probably some nice mathematical formula for the amount of transit time you'd add (from the time the key goes down to the time it's received by the host system) as a result of buffering out all the variation in the timing between packets ... I just can't think of it right now.

    Ultimately though, I don't see any defense against an attack like this. If someone can compromise your hardware, particularly your input devices, you're quite screwed. I've always seen it as an extension of the 'local console root' rule: if someone can get to the CPU, then they have root. I guess we've got to extend this to keyboards, mice, and monitors as well: if you don't know where everything that you pass unencrypted information through was last night, maybe you shouldn't be using it.

    Messing with the delay is only one of many ways that someone could sneak information out of an area -- it's neat, technically, but there are a lot of low-tech ways that would work just as well (including the audio recorder trick from a while back, where you can determine a typed password by listening to a recording of the keypresses).

    If you only wanted a system that would work once, you could build a more powerful keystroke-recorder into a keyboard. Instead of having it mess with the delay, make it wake up the computer in the middle of the night (logging on -- it's not hard to grab your password on a Windows box, since it's nicely defined as the first thing you type after pressing Ctrl-Alt-Del and before return), and then executing a macro that emailed a recording of everything that had been typed recently to a dead-drop.

    --
    "Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
    1. Re:It's 1AM, do you know where your keyboard is? by Eivind · · Score: 2, Insightful
      That's not nessecarily true, it depends on the preciseness of your timing, and the aditionally introduced jitter that you cannot control.

      An example.

      Assume a user types a character on the average every 100ms.

      If you could time to the ms then you could encode 2 secret bits on each packet by delaying the packet by 0,1,2 or 3 ms

      Decoding the stream would be a simple matter of taking the sequence of delays and run mod4 on them.

      If noise made this impractical (i.e. single-ms timing is impossible) then you could do the same thing by adding 0, 10, 20 or 30 ms delay to every packet, using delay mod 10 for decoding.

      The delay you need to add is completely unrelated to the typing-speed of the user. It is related only to the accuracy with which you can cause and measure delay.

      If the user pressed a single key once an hour, you could *still* delay that packet by 0, 10, 20 or 30ms and thus transport 2 "hidden" bits. The only assumption being that you can cause and measure delay accurately enough that you can detect which of the 4 happened.

    2. Re:It's 1AM, do you know where your keyboard is? by db32 · · Score: 1

      It still seems like you are assuming that a user presses every key at even intervals. I type my password...PASS
      P 100ms
      A 110ms
      S 90ms
      S 40ms
      (finger is already there right) You can't encode anything onto that because you adding 10ms to P press is the same result as A press. You can't separate your induced delay from the user induced delay. The only way it works is if you are able to add delay that you can distinguish from typing variance degree of certainty, but so many people type at different speeds and variences it would really be impossible with a single solution. Or if you were adding a large enough delay that it was easily distinguishable, but then you defeat the purpose because it becomes terribly noticable. Even if you get semi accurate numbers to base your 'average' typist on...you have to deal with proper typists, hunt n peck typeists, and the late night one handed typists....oh...and god forbid your typist is missing a finger or something... :)

      --
      The only change I can believe in is what I find in my couch cushions.
    3. Re:It's 1AM, do you know where your keyboard is? by Anonymous Coward · · Score: 1, Informative

      Hard to see how this is possible? Then just read the paper here http://www.usenix.org/events/sec06/tech/shah/shah_ html/jbug-Usenix06.html and stop dismissing the idea on the basis of a secondhand report.

      The delay between the user's key presses is irrelevant, the JitterBug will adjust the delay since the last key press so that, for example, the delay is a multiple of 20ms, or a multiple of 10ms but not 20ms. This gives you the "1" or "0" bits with 10ms separation for noise reduction and it doesn't depend on the user's typing speed, only on the value of delay modulo 20ms.

    4. Re:It's 1AM, do you know where your keyboard is? by Eivind · · Score: 1
      No really. I assume no such thing. Let's play with your example. You have 4 delays. Let's say the accuracy in timing is that your stated numbers (and those we could measure) are accurate to the nearest 10ms.

      Let's say I want to encode 8 bits of secret information on these 4 delays. I want to send the bitstring '11010010'.

      First, we discard the on the end of the timings as meaningless.

      That changes the sequence to 10 11 9 4

      Since I want to send 2 bits on each delay, I need 4 different values (00 01 10 11), so I use mod4, and map so that 0=00 1=01 2=10 and 3=11.

      I use delays to acomplish this. I want 3,1,0,2 because that maps to '11010010' which is what I want to transmit.

      The original was: 100 110 90 40

      I delay that to get: 110 130 120 60

      To decode that, remove the 0s as insignificant and you have 11 13 12 6. Use mod4 and you get 3,1,0,2 replace those with their binary equivalent and voila: '11010010'

      In this example, the delays where all lengthened. That was made to make the explanation simpler for you. In real life it could just aswell shorten. This seems counterinituitive, but really, trust me, it goes like this: Original timings (timings, not delay) 100 500 1000 (which means delays are 400 500)

      Imagine you need the first delay to be *500* rather than *400*, you do this by delaying the packet containing the second keypress, you now have keypresses at 100 600 1000. Notice how the second gap is now only 400. Less than it originally was. If 400 matches the delay you want (a 1:4 chance if you're encoding 2 bits for every keypress) then you need not do anything to the third keypress.)

    5. Re:It's 1AM, do you know where your keyboard is? by Anonymous Coward · · Score: 0

      Elvind, on your website, you mention dates on which legislative action took place in Europe that affected your website. Can you also include the years for these dates?

    6. Re:It's 1AM, do you know where your keyboard is? by Anonymous Coward · · Score: 0

      Let's use absolute times instead of the delay between two keypresses:

      P 100ms
      A 210ms
      S 300ms
      S 340ms

      My encoding could be this:
      (t/10) mod 3 = 0 ==> 0
      (t/10) mod 3 = 1 ==> 1
      (t/10) mod 3 = 2 ==> nothing

      If I want to encode 1100, all I have to do is stall on the appropriate keypresses until the condition on the bit I want to send is respected.

      P 100ms + 0ms ==> 100ms
      A 210ms + 10ms ==> 220ms
      S 300ms + 0ms ==> 300ms
      S 340ms + 20ms ==> 360ms

      This is easily done with an internal timer in the keyboard. The key here is that you don't just add a constant delay depending on the bit to send. What you do is ensure that certain times correspond to certain bits. In my example, if an user hits a key at a multiple of 30ms and you want to send a 1, you can't send the scancode immediately because you are in the 0 timeframe. But since the timeframes alternate every 10ms, you only have to wait 10ms and then you're good. If the user had hit the key 10ms later, you would have sent it immediately, and if he had hit it 20ms later, you would have waited 20ms more.

    7. Re:It's 1AM, do you know where your keyboard is? by Eivind · · Score: 1

      My website is currently irrelevant. 2004 I think :-)

  64. Jitter where seems the question. by Anonymous Coward · · Score: 0

    does each key have a unique jitter? Sounds like pulse code modulation.

  65. Network intensive? by pugdk · · Score: 1

    "network-intensive apps like telnet"

    eh? Since when is telnet network-intensive?

    1. Re:Network intensive? by nnn0 · · Score: 0

      since they startet introducing delays in there ;)

  66. modulo arithmetic by anti-drew · · Score: 1

    Here's a simple way to do it:

      - let N be the number of characters in the alphabet you care about (say, 75: letters, numbers, and common punctuation)
      - let M be the smallest resolution at which you can reliably time the packet differences (eg, 1ms)
      - let P be the period represented by the time M*N
      - when you want to transmit a key, map it into your alphabet as X where 1<X<=N
      - no matter how much time has elapsed since the last packet, delay the next packet to (next multiple of P) + X.

    To decode: take the time difference between packets, modulo P, and you get X.

    You can enhance this system by using escape codes. Ordinary network traffic could proceed unmolested when you're not typing, but once you start typing a recognizable escape sequence is issued (coded into packet delays, of course) which kicks you over into keyboard mode, and another kicks you back out once typing has stopped.

  67. extra bonus points by anti-drew · · Score: 1

    The attacker gets extra bonus points if s/he includes an error-correcting checksum in the data stream (again, coded into packet delays) to make it more robust.

  68. Oh! No! My keyboard! by TristanGrimaux · · Score: 2, Funny

    And that's why my keyboard has an ethernet connector!

    Damn!

  69. transcripted - cryptographers, get to work! by Anonymous Coward · · Score: 0

    3i 1blame 4the 2user 4for 2not 4being 4more 7vigilant 1if 5this 2ever 5happened 2to 5me (2and 2it 5wouldn't) 3i 2wouldn't 5be 2blaming 4some 1"hacker" 4for 2my 4own 2lax 7security

    31424 24471 52525 22532 52414 2427

    Probably just pseudorandom. Ossifrage!

  70. Why can't one mod a post as incorrect? by Peter+Mork · · Score: 1

    Given the delays you specify, I can easily imbed the message 1011 in your traffic. I do this by ensuring that every 1-bit in my message corresponds to an interval that ends in 5 and every 0-bit corresponds to an interval that ends in 0. So, given your input sequence (100,110,90,40), I delay the keystrokes to produce the sequence (105,110,95,45). This only requires that the network variance be less than 5ms.

    I only skimmed the research paper, but this appears to be exactly what they propose as well. In particular, I think it's telling that they transmitted a secret message across the planet using their mechanism (using a 20ms window instead of the 5ms I used in my example).

  71. wont work because by frietbsd · · Score: 1
    • 1. internet is unreliable for ping time.
      If they would want to listen to reliable packet intervals it should be at the first hop. If they could compromise the first hop would they still bother to use this timing interval technique?
    • 2. in a keyboard? and what if the user doesn't press a button only once every 2 seconds. The spies do not know when the user presses the button, they see only packets at different intervals. it's not unfeasable, but unlikely the user wouldn't notice the delays required .
  72. Re:Woo! I'm immune by Anonymous Coward · · Score: 0

    This doesn't make you immune because the delays which would normally decode to QWERTY patterns could easily be shifted to any other standard layout. The keyboard would merely assigns a delay per key, not per letter, and it would be easy enough to program the decode software to try all layouts until readable text appears. Face it, you can't type jibberish forever.

    If you want to be immune, use an IBM Model-M keyboard. Mine is already 20 years old and it still works like the day it was purchased.

  73. The demise of the password on the horizon by ebvwfbw · · Score: 2, Insightful
    I used to be a nay sayer for doing away with passwords. However it seems clear that we will have to do away with them one day and rely on something we have (a device - USB drive, RSA secure-id, etc) rather than something we know (a password). Perhaps a combination of the two will eventually win out - something we have and know.

    Lost your device? Just answer what your dog's name is (Cujo) or what you wanted to be when you grew up (Convenience store attendant, just like Apu).

    1. Re:The demise of the password on the horizon by twodave · · Score: 1

      I disagree. As long as there is old technology (let's face it, a keyboard from 1985 isn't much different from a keyboard today in terms of functionality), there's no need to kiss passwords goodbye. Besides, I find it quite entertaining knowing that with my 13 digit password made up of totally random numbers, letters, and symbols, you could try a million times every second and still take up to a trillion years to crack it! The only thing more personal than that would be a retinal scan.

  74. Open Source Hardware by mrchaotica · · Score: 1

    ...and that's what projects like LinuxBIOS and The Open Graphics Project are for!

    --

    "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

  75. This reminds me of a much more useful hack by InMSWeAntitrust · · Score: 1

    I remembered that some researchers had done this before (http://www.freedom-to-tinker.com/?p=893) and it was a lot easier than replacing the keyboard. The basic idea is that all keybaords have unique sounds, and if you can interpret those sounds, then something like 90% of the keypresses can be determined by just simply listening (and if you use lasers, you don't even need to enter the room, as long as it has a window, and you have line of sight.

  76. How this works by pbhogan · · Score: 1

    Okay, there appears to be alot of confusion on how this works. It does NOT work on a packet per keypress basis. Essentially the whole idea is to mask the fact that there IS a keylogger on your system (whether software or built into your keyboard) by not creating additional network traffic. So the keylogger records keystrokes individually, but then during normal network traffic created by whatever is running on your system, web browsing, servers, etc. the network driver, which must also be compromised, will modulate keystroke information onto your standard traffic. The fact that your ssh session, or computer login is long over has no bearing on the matter... they keylogger recorded the information and transmits it over a period of time. What makes this more devious is that it doesn't have to be sent to any predetermined IP. The receiver simply needs to be able to listen to your outgoing traffic. So of course this isn't going to be transmitting your passwords over the internet in general... but it will let somebody in say your local network or ISP record your keystrokes. Protection? Use network drivers you can trust. I'm ignorant on how safe signed drivers are. Open source drivers may be safer simply because someone would notice weird code in there.

  77. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  78. Wont work by wumpus188 · · Score: 1

    Because probably 99.99% of the internet traffic goes though various kinds of traffic shapers, meaning that outgoing packets are rescheduled and all timing info is lost.

    Cool idea, though...

  79. old by Anonymous Coward · · Score: 0

    this was at USENIX Security '06, a week ago. Slashdot is slowwww.
    Also, this only really works if you're using SSH or VNC or some interactive network application, and they have a lot of bugs to work out before it's feasible.

  80. Horse escapes, and then you worry about barn door by Sloppy · · Score: 1

    I don't get the threat. If your premise is that the user's hardware is compromised, then the fact that it's the keyboard, doesn't seem to make things much worse.

    Scenario: FBI agents or the mafia breaks into your home and replaces your IBM model M keyboard with a new keyboard that includes this misfeature. You just happen to not notice. ;-) The keyboard logs and transmits your KDE wallet password. They later break into your home again, use the wallet password that they have discovered to look up your bank password, and drain your account. Ok, that's not good. What the new keyboard contributes above and beyond a conventional bug, is that the password was transmitted covertly, instead of over a radio to the van outside. I guess that's a "cool" misfeature, but if you have people breaking into your home all the time, you probably don't detect non-covert channels either.

    Scenario: "internet cafe" or library installs these. This scenario is a joke, because they can install whatever the hell they want on the machines at the software level, and the users will never know. The users don't have any way to detect non-covert channels anyway. This new keyboard makes no difference at all, in any scenario where a user is not using his own trusted computer.

    Scenario: laws are passed requiring all keyboards to have this misfeature. After a few decades, almost everyone has one, so anyone can snoop on anyone without the initial installation break-in. They just have to break into your house one time, to use the intercepted KDE wallet password to unlock all your other passwords. Yeah, ok, I see a problem here. But if the premise is that attackers get to pass laws requiring everyone's computer be compromised, then things are pretty hopeless anyway, and this keyboard is just one of dozens of bugs lurking in your machine.

    I'm not saying there aren't some new threats here, but they're pretty minor compared to the premises that enable them.

    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  81. Things like this... by Starker_Kull · · Score: 1
    ...make me appreciate my vintage 1991 Model M that much more.

    (Dons tinfoil hat & earplugs and strides away into the sunset...)

  82. You guys haven't heard about...? by weasel5i2 · · Score: 1

    There's this company which makes little only-physically-detectable (the computer has no idea, and no means of detection) PS/2 connectors with keylogging capabilities and built-in RAM for storage: http://www.keelog.com/

    They even sell kits to make your own if you're too much of a tightwad to pay for a pre-built one!

    --A

    --
    [BEGIN PGP PUBLIC KEY]: X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIR US-TEST-FILE!$H+H*
  83. Free Microsoft Keyboard by sgt+scrub · · Score: 1

    Get your free Microsoft keyboards right here ladies and gents. Guaranteed to have no strings attached. They even have special security chips installed to... um... make the internet go faster. Yeah thats it. They make the internet go faster.

    --
    Having to work for a living is the root of all evil.
  84. Mod Parent Up by wurp · · Score: 1

    Grandparent hasn't thought things through thoroughly enough - anti-drew gives a clear way to do what the GP says can't be done.