H

Hardware Based Password Manager

Your Passwords, Your Control, Our Hardware

The problem Hardware Based Password Manager solves

Some of the drawbacks of using a Software Password Manager are: Any communication with the internet, which is a huge bottleneck for security such as in Google password manager, LastPass, KeePass, etc. Most of the widely available password managers merely encrypt the password and store them on the cloud, making them vulnerable to database breaches. Another major issue for password leaks is phishing, wherein users are tricked into revealing sensitive information which may include passwords. Also, a large number of users repeat passwords for the sake of convenience on multiple accounts, since it is understandably a hassle to remember many strong passwords.

To tackle these issues, we plan on creating a system that stores the encrypted passwords locally, on chip. There may be cases where the user would like to have backups of their passwords, in case they lose the device. Hence a facility will be provided to backup the passwords on to an auxiliary flash storage, which the user can store in a secure place. Since there is no way to decrypt the passwords without the master passwords, there is no worry even if the contents of the flash are read by an unwanted person

The Hardware Password Manager is based on the concept of zero knowledge proof, to store encrypted passwords in a secure manner. Users can store their passwords on the device, which is unlocked with the help of a master password. The approach behind this project will be to encrypt users’ passwords in a secure manner using AES-256. The crucial building block of this project is that the key for decrypting user passwords is not stored on the device. The key for these user passwords is a SHA-256 hash of the master password. This hash is used as the key for the AES algorithm to encrypt user passwords and only the encrypted password is stored on the device flash.

Challenges we ran into

Localising timestamp-Python was giving gmt and rtc was giving in ist format, which took considerable time to localise into one format
Finding libraries for integrating rotary encoder and Raspberry PI pico.
Integrating different softwares and libraries.
Poor documentation quality for some libraries.

Discussion