KeyLimePi



Inspiration


We were inspired to produce a product that required heavy uses of security, while also ensuring ease of use by the user.


What it does


The keylimepi is a 2FA token device with a built in password manager that the user can use to store their passwords and usernames for websites in a more secure way. Having it stored locally on the device means that the passwords are securely stored on a physical device instead of being stored on the open internet like most traditional password managers. In order for the user to interact with the device, meaning they can create and view passwords, we developed a GUI that connects through serial port with the SSH protocol in order to run code that only sits on the raspberry pi.


How We Built It


We used a raspberry pi as our device to store the actual passwords and usernames. The user will interact with this device using a GUI we made with TKinter. TKinter runs functions in a ssh wrapper python script that calls functions that sit on the raspberry pi. This adds an extra layer of security as there are multiple passes the user has to make in order to change or access their passwords. We also added an extra user interface by displaying information on a provided LCD screen. This script runs on boot using a systemd service. We also developed a case for the keylimepi that was stress tested and actually 3D printed. This will provide protection to the device, making it more durable for the average person.


Challenges We Ran Into


The LCD screen was unable to receive data, only printing out white squares whenever running. After running debugging processes, we found that the backlight, the contrast and all components of the LCD screen work besides the actual data that is being sent. Another challenge we faced was when we had to quickly change a python library that only worked with Linux, but was overcome when another library was found and implemented. Another issue was trying to connect via SSH over ethernet, which worked after debugging and running network protocols to see what connections could be made until we got the final product.


Accomplishments That We're Proud of


We were able to connect our front end, back end, and our hardware to work seamlessly, with minor issues. The proof of concept shows a successful potential of what the keylimepi can be.


What We Learned


We were also proud of how much we learned for this project, either in learning how to write scripts that run commands over ssh, creating a GUI with TKinter, creating a connection with raspberry pi over ethernet via ssh, or designing a stress tested case for the device using cad software, along with a 3D printed model of design.


Whats next for KeyLimePi


We hope to improve the security of the KeyLimePi even further by creating a asymetric encryption method between the client software and the user hardware, encrypting the json file that stores the passwords, requiring the use of the gui and the hardware to have access to the passwords.


Links