We can't trust manufacturers not to build keyboards with undetectable hardware keyloggers now and in the future because the NSA has plenty of money. I say this idea isn't new to them at all and I hope that people in the future will keep taking the different models apart to hack around.
Keyloggers inside everyone's keyboard could be useful to the NSA and FBI who could pay companies to bake them in. When you're suspected of a serious crime for example or you get into serious trouble, you could get your storage devices taken away. Encrypted or not, your keyboard could then reveal passwords if it's the correct model. This even breaks forward secrecy. These tiny computers inside keyboards meant to control light flashing, sound, card reading, and more could possibly also control which keys to record and what to throw away based on repetition... if the keylogger's space is limited. Keylogger functionality can be massive, they can use compression or run through the text file it generated over the years, keep one copy of repeated phrases, and throw away the rest. An attacker could possibly talk to your keyboard through your computer if it runs systemd or Windows assuming the interface to the keylogger can be that convenient.
view the rest of the comments →
[–] kltpzyxm ago (edited ago)
Thats not at all how it works. If it reads as a generic usb device then it doesnt matter what operating system the host operating system uses, all commands will be passed and executed as though they're coming from a legitimate user typing away on the keyboard.
And as for the Teensy itself, its pretty much the defacto standard for home brew keyboards and game controllers because there are several fully functional open source firmware packages available for it. It also works on all operating systems.
As for injecting data, all you have to do is spoof the real keyboard and the os doesnt even realize theres a second transmitter.
[–] Kal ago
So linux would just let 'generic usb device' do whatever it wants such as phoning home a log stored on the keyboard hardware itself? How would it even know how to interact with generic usb device? I am pretty ignorant about how exactly Linux would handle an unknown usb device like this, but as far as I understand, it simply wouldn't work until code was written on how to interact with it. Wouldn't Linux devs be asking themselves why the fuck a keyboard wants to phone home?
[–] kltpzyxm ago
Its doesnt generally work like that, no. Linux has generic drivers to cover the most common scenarios. A generic USB mouse driver, a USB keyboard driver, a bluetooth keyboard driver, bluetooth mouse, even a generic bluetooth USB driver! The linux devs try to prepare for everything.
There are of course keyboards with extra features like a USB hub, backlighting a trackpad, media controls, you name it.
The generic keyboard drivers actually include media button support, including a lot of keys to open the terminal, open the default browser, Open the file browser, reset wifi and more. Any combination of those could be dangerous.
Theoretically, its possible to open the terminal, paste a string into a file and transfer that file using basic file transfer protocol. Its just highly unlikely.