Inspiration
We thought it would be neat and a great opportunity to learn how authentication processes work inside of Linux.
What it does
Unlocks your computer by seeing if a Rubik's Cube has been solved.
How we built it
To start we developed a custom model in Google's AutoML Vision Service. This model was trained on a set of 162 hand selected images of solved and unsolved Rubik's Cubes. We then developed a python script to capture images of our cube and sent that data in a query to our model through Google's Vision API. With all of this working together we setup our python script to run immediately upon logging in to the system.
Challenges we ran into
The biggest challenge came in the form of the PAM modules for Linux. We spent several hours trying to work in these custom modules and different ways to have our program interface with the authentication systems in Linux. We ended up not having enough time to get this feature working and were forced to include our script in the startup processes instead. This successfully uses our 2-factor Rubik's cube upon the first sign in of a new user.
Accomplishments that we're proud of
We were able to collect a well rounded sample of images to train our model. This resulted in a model that has 91% precision and recall. It took us several model iterations to get this high of a threshold, and it's something that we are very proud of accomplishing.
What we learned
This project has been one huge learning experience. Given that we are all freshman and that this is our first Hackathon, there was plenty for us to learn. We learned the most about PAM modules in Linux. Even though we weren't able to fully implement the PAM features into our final project, we still spent plenty of hours reading documentation and testing. This processes of reading, testing, and most of the time failing, left us with exactly what we wanted to gain from this project. A better understanding of the underlying Linux authentication systems.
What's next for 2 factor Rubik's key
Our team is planning on continuing our research and implementation of PAM features into our project. There is still plenty for us to learn about this specific topic, and it would add a layer of polish to the project that we would all be happy with.
Log in or sign up for Devpost to join the conversation.