Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cyd3r/password-keyboard
A software for the Arduino Micro that stores your passwords and types them for you.
https://github.com/cyd3r/password-keyboard
aes arduino arduino-micro encryption keyboard password password-manager platformio
Last synced: about 1 month ago
JSON representation
A software for the Arduino Micro that stores your passwords and types them for you.
- Host: GitHub
- URL: https://github.com/cyd3r/password-keyboard
- Owner: cyd3r
- Created: 2019-10-09T15:06:33.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-01-29T14:28:39.000Z (about 3 years ago)
- Last Synced: 2024-11-05T15:16:12.426Z (3 months ago)
- Topics: aes, arduino, arduino-micro, encryption, keyboard, password, password-manager, platformio
- Language: C++
- Size: 82 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Arduino Password Keyboard
Plug in this device and select a password to type. The device acts like a keyboard and will type the selected passphrase.
All passwords are stored in an AES encrypted storage.
## Parts needed
- Arduino Micro
- OLED display
- 3 push buttons## Setup
To use the `manage.py` utility you must install [pySerial](https://pyserial.readthedocs.io/en/latest/pyserial.html).
## Usage
### Get a password
Use the next and previous buttons to navigate through the list of available accounts. Press the submit button and you will be prompted to enter the master password. Use all available buttons on the device to enter the 8-digit password.
On success, the account password will be entered on the connected PC. Keep in mind that the device acts like a normal keyboard.
### Add a new password
The device has no keyboard so adding a new password must involve a computer. Use the python utility to add a password:
python3 manage.py add
Then, input the account name and the password. The device will ask you to enter the password.
Accounts that exist, will be overwritten. Account names are case sensitive.
### Remove a password
To remove a password, launch the python utility:
python3 manage.py rm
Enter the account name you want to remove and press enter. There is no authentication required on the device for now.
### Set the master password
Launch the python utility:
python3 manage.py reset
This will remove all your stored passwords and will reset the master password.
## Storage
Passwords are stored on an (external) EEPROM. For each account, 16 bytes are allocated for the account name and 32 bytes are required for the encrypted password (48 bytes in total).
+ With an EEPROM with 8kB, 170 accounts should be possible.
+ With an EEPROM with 1kB (internal EEPROM of the Arduino Micro), 21 accounts should be possible.## Encryption
The password files are AES128 encrypted. The AES key is generated from a sequence of pressed buttons with length 8.
## TODOs
- fix account names that are too long (leads to display errors)
- solve keyboard layouts, currently fixed at compile time
- add wrong password cooldown
- add better account navigation
- use external EEPROM
- add more buttons for master password input
- add schematics
- refactor