Brian Chamberlain
Software Engineer & Electronics Nerd

<<Back to all Projects

BT Anykey

Prototype of phone-to-computer text transfer over BlueTooth serial


Backstory

I use 1Password password manager to store complex passwords for sites. It's a great service and I recommend it to anyone. LastPass is also good too.

My default password is, like 24 characters log. It's a bit excessive but why not? I don't actually have to remember them. However, sometimes I'm traveling or using another computer that does not have my 1Password. This is quite painful and tedious and error prone. Not to mention I use the Dvorak keyboard layout and have to touch type. Looking at the Qwerty key labels totally messes me up.

Since most password entry fields obscure the text you enter I almost always mess up my password under these conditions. Mess up enough times and you could be locked out. This is definitely an edge case scenario for probably 99.9999999% of most humans who use computers.

Project Goal

The project goal was to build a USB device that looked like a keyboard (a Human Input Device/HID). Pairing this with a Bluetooh module. I could copy my password to a BTLE serial app and shoot it over to this USB device. The Teensy32 would read from the BTLE serial buffer and relay the password over the USB as direct keyboard entry. To the computer it would look like I was typing in my password on keyboard but really it would just be simulated.

I thought this might make a cool product if I developed it further. However, it's like really woefully insecure. I had fun building it but was not really willing to use it in the wild.

Turns out as I did more research after I made this project this approach (of USB hi-jacking a keyboard and mouse input over Bluetooth) is a pretty affective way for an attacker to manipulate a computer. It's known as "keystroke injection". Fun!

Having a device that's listening for incoming BTLE serial connections and relaying them as keyboard keystrokes is, like, a really dumb idea. The type of protection you'd have to layer on this project was beyond the amount of effort I was willing to expend.

On the bright side, I did learn a lot. AND got to use my Salea Logic Analyzer. That thing is awesome!

Some links about Rubber Ducking

These are the parts I used anykey parts I put short leads on the lines I wanted to wire to the Teensy. anykey parts w leads

I stacked/smushed the boards together into this mass. I used small AWG solid core wire so it kinda stays like this on it's own. anykey assembled ortho anykey assembled side

To do some debugging on the bluetooth serial AT commands I used the Salea logic probe. anykey logic probed

<<Back to all Projects