▲ 595 r/PasswordManagers+3 crossposts

Building a usb password manager using an RP2040

Building using an RP2040 and CH32v003 for power handling with tinyusb and picorvd.

The device has 2 modes, Inject and Edit. For inject I just chose the password I want, plug it in, and click the button. The computer sees the device as a keyboard and directly injects keystrokes wherever I have the cursor. Edit makes the device spoof a flash drive. I can drag passwords directly onto the device in plain text. They just sit in ram until you click eject at which point the device pumps the passwords through an encryption algorithm (pin derived pbkdf2 through aes), stores them directly on flash and zeros out the ram partition. This means the device needs no proprietary software at all and just piggy backs off of whatever OS you plug it into. And since the device contains no radio, bluetooth or wifi, the contents are only accessible to whoever has the device in their hand.

It is battery powered and charges whilst plugged in so that you can navigate the ui without messing up the USB ports on the computer, and never have to worry about charging. I also added an accelerometer so that the screen flips based on the way you're holding it. I haven't gotten the USB C port to work yet but the device HAS been tested on ios and android through a USB A to USB C adapter. Editing and Injecting both work fine.

A couple of things I want to add in the future: I want to add a hardware security chip like the SE050 that nukes the key after n attempts to make it uncrackable unless you know the code or can guess it in 5 attempts. That way if you lose the device you can just say "eh fuck it" and not have to worry about it. I also need to revise the battery components to a lipo pouch rather than a coincell. (long story). Right now it can store up to 1000 passwords so I'm thinking there definitely needs to be a way to add passwords to favorites.

I also want it to be able to load passwords by dragging a csv file onto it so that its easy to export from the browser and get everything onto it. Idk, my buddy and I have been working on this for a few months now. What do you think? Would you use it? If so what would you add?

We plan on open sourcing everything once the SE050 is implemented

u/AssociationOk5653 — 13 days ago