News for hackers. Stuff that matters.
Re:No one, not even the Secret Service, should randomly plug... by lawl on Monday April 08, 2019 @07:21PM (#19610126)
> It's 2019. Why the f haven't Windows, MacOS and Linux all implemented these basic precautions?

For linux you can actually require USB devices to be authorized first by changing a few kernel settings.

A friend of mine wrote a few shellscripts a few years ago to do exactly that:

https://git.quitesimple.org/usbfilter/tree/

As you can see it's something that's very simple to do, there's just no good "normal user" UI for it.

Re:No one, not even the Secret Service, should randomly plug... by shittyadmin on Monday April 08, 2019 @08:55PM (#19610647)
Definitely a good start but in a targeted attack scenario that's pretty trivial to bypass, if someone brags about having the latest Das Keyboard or something that's all it'd take... we need cryptographic authentication in the USB specification or at least a randomized serial that'd be unique per device so an attacker would need physical access to clone your keyboard.

I believe modern Thunderbolt already has this sort of cryptographic device authentication, which means not only physical access but at least a bit of reverse engineering skill, a much higher barrier than knowing their keyboard model.

Re:No one, not even the Secret Service, should randomly plug... by Reelin on Monday April 08, 2019 @10:45PM (#19611299)
It's particularly frustrating because of how trivial the solution appears to be. Trust on first use is more than sufficient in this case, so asymmetric cryptography with a randomized key would be fine. I realize mass produced electronics can be very cost sensitive and that a PKI chip might add a whole $0.70 to your product (https://www.digikey.com/en/product-highlight/a/atmel/atsha20...), but still. I paid ~$50 for my keyboard! I would not have begrudged the manufacturer an extra dollar or two in order to ensure my system's security.
Re:No one, not even the Secret Service, should randomly plug... by Reelin on Monday April 08, 2019 @08:49PM (#19610616)
Re:No one, not even the Secret Service, should randomly plug... by jimrandomh on Monday April 08, 2019 @09:37PM (#19610910)
That's definitely progress, but there's more work needed to make it usable enough to be on by default.
Re:No one, not even the Secret Service, should randomly plug... by Reelin on Monday April 08, 2019 @10:07PM (#19611082)
As far as I understand it, this already is on by default for ChromeOS. The kernel patches make it possible to utilize internal USB devices during the boot process without disabling protection - ie there's no vulnerability window prior to user space being up and running.

I believe the major missing piece for desktop Linux at this point is that many input devices (including my own) are USB based. Without a way for the device to cryptographically attest its identity, you either have to accept vulnerability from wired external devices during boot or do without input until user space has been started.

Edit: My mistake. It appears that it was opt-in as of January, will become on-by-default at some point in the future, and only blocks devices during boot and while the screen is locked. It appears to trust all devices plugged into it once you've logged in. (https://www.forbes.com/sites/leemathews/2019/01/07/google-sh...)

Re:No one, not even the Secret Service, should randomly plug... by hopler on Monday April 08, 2019 @10:22PM (#19611166)
The only reason your laptop is trusted is because you trust the person who gave you the laptop. The same threat model applies to the first keyboard you get for your desktop. Neither laptop/desktop nor keyboard is inherently more trustworthy.
Re:No one, not even the Secret Service, should randomly plug... by Reelin on Monday April 08, 2019 @10:59PM (#19611371)
I'm not worried about the keyboard I purchased or my hardware vendor. Well I am, but far less so than the prospect of a foreign USB device being plugged in and managing to execute malicious code. Think someone quickly inserting a device as they walk by, secretly swapping out one of my peripherals while I'm not around, or similar. Authorization on first use is more than sufficient to mitigate this type of attack, and if you add end-to-end encryption you can also prevent USB keyloggers.