Code repository for mAuth. Archived.
Find a file
2023-05-10 12:23:32 -05:00
media Upload user0 image 2023-03-17 10:31:06 -05:00
raw_data Create constants file and move files to better folders 2023-03-23 12:26:53 -05:00
synth_data Remove old data 2023-04-10 12:55:03 -05:00
.gitignore Ignore CSVs 2023-04-13 23:25:24 -05:00
collection.py Create constants file and move files to better folders 2023-03-23 12:26:53 -05:00
ConferencePaper.pdf add conference paper 2023-05-10 12:23:32 -05:00
constants.py clean up output 2023-04-16 14:21:41 -05:00
final_output.txt Upload the final model outputs 2023-04-10 14:50:19 -05:00
main.py clean up output 2023-04-16 14:21:41 -05:00
models.py clean up output 2023-04-16 14:21:41 -05:00
plot.py Update constants 2023-04-12 10:11:08 -05:00
preprocess.py clean up output 2023-04-16 14:21:41 -05:00
README.md add conference paper 2023-05-10 12:23:32 -05:00
utilities.py clean up output 2023-04-16 14:21:41 -05:00
validation.py Update constants 2023-04-12 10:11:08 -05:00

🐭 mAuth Mouse Machine Learning

Conference Paper: ConferencePaper.pdf

This project involves the development of a proof of concept model using computer mouse data that could potentially be used in an authentication scheme. The model uses KNN, SVM (SVC), and decision tree algorithms to analyze data such as mouse position, time of the event, and button press duration. The goal is to determine if this data can be used to accurately identify a user and differentiate them from potential imposters. By exploring the potential of mouse data for authentication purposes, this project aims to contribute to the growing field of biometric authentication research.

💾 Data collection

Data collection is done within collection.py, which utilizes the pynput library to collect mouse input data. Specifically, we collected the UNIX timestamp of the event, X and Y positions of the event, which button was pressed, and how long it was pressed for.

🔍 The Data

Here is a sample piece of data:

ID Timestamp X Y Button Duration
2 1676925152.344601 901 488 -1 -1
2 1676925152.3605819 915 482 -1 -1
2 1676925157.8644285 975 301 -1 -1
2 1676925158.0728395 975 301 1 -1
2 1676925158.1127932 975 301 1 0.03995370864868164
2 1676925152.368573 924 480 -1 -1
... ... ... ... ... ...
  • ID: Subject ID
  • Timestamp: UNIX Timestamp of the event
  • X, Y: The X and Y positions of the event, where it happened on the screen
  • Button: The button that was pressed, for this, we used the following mapping:
    • 0: Left click
    • 1: Right Click
    • 2: Middle Click
    • 3: Scrolling Down
    • 4: Scrolling Up
    • 5: Button X1 (rarely used)
    • 6: Button X2 (rarely used)
  • Duration: The duration of the event, only used to track how long a button press event was

Button X1 and X2 were the forward/backwards buttons on mice. This wasn't useful for the game during data collection, so will likely be cleaned out/not useful.

👀 Visualization

user 0's path To visualize the data, we created a plotting script to view the mouse locations.

👪 The Team