As computer science majors at a university, our security needs are different from most. Laptops are often left out or passed around for short periods of time, leaving our machines particularly vulnerable to opportunistic attackers with physical access.
What it does
During setup, KeyNet asks the owner of the machine to type a few hundred characters and develops a profile based on the user's typing patterns. After this, it runs in the background and is able to detect when a different person is using the machine. A variety of steps can be taken when a different user is detected, such as taking a picture with a webcam, starting a keylogger, or locking the computer.
How we built it
We used python to detect key presses, create a user profile based on typing patterns, and detect a different user. We also used python for the responses to a fake user (taking a picture, locking the machine, and/or running a keylogger). We also created a neural net with Tensorflow (python once again) to analyze the typing data.
Challenges we ran into
The neural net was very difficult to put together and required a large amount of training data. As it turns out, it was also not necessary to accurately detect impostors. Though we have a trained and working neural net, we instead compile a set of error values based on the user profile and score the current user by adding those errors.
Accomplishments that we're proud of
Creating the initial user profile takes less than a minute. Despite this, it is very accurate.
What we learned
Neural networks are hard to implement with little data.
What's next for KeyNet
More user options, such as multiple user profiles or a secret shortcut to disable for an hour.