Behavioural biometrics provides an extra layer of security for user authentication mechanisms. Among behavioural biometrics, mouse dynamics provides a non-intrusive layer of security. In this project we propose novel convolutional neural networks for extracting the features from the time series of users' mouse movements.
For creating a virtual environment we used Anacoda, so you have to install it for the purpose of reproductibility.
The environment.yml file contains all the necessary dependencies for the project.
Creating the environment from yml file:
conda env create -f environment.ymlActivating the environmet for usage:
conda activate tensorflow_cpuconda create --name tensorflow_gpu tensorflow-gpu==1.15
conda install -c anaconda keras-gpu
conda install -c nvidia -c rapidsai -c numba -c conda-forge -c defaults cudf
conda install -c anaconda pandas
conda install -c anaconda scikit-learn
conda install -c conda-forge matplotlib
conda install -c anaconda pylintAfter downloading the two separate datasets (Balabit and DFL), you need to specify these locations in the constants.py file.
First of all, in the root directory, run:
pip install -e .Using the Anaconda Prompt you simply run the command:
python ./main.pyYou can use a model from given neural network models, see their architectures, manage training with different methods and evaluate these results. Of course you can plot these data, make a result file as .csv format or simply print the given results to the screen.
BLOCK_SIZE = 128 gives the number of consecutive mouse events (1 event represents one row in the train.csv file).
USER_NAME = 'user35' defines which user's data we want to use during measurement.
USED_MODEL_FOR_TRANSFER_LEARNING = 'model.h5' defines the model name in case of transfer learning.
TRAIN_TEST_SPLIT_VALUE = 0.2 defines that we want to use 20% for testing and 80% of data for training.
-
First of all you have to set
sel_method = Method.TRAINorsel_method = Method.TRANSFER_LEARNINGin settings.py. -
Setting
BLOCK_NUMyou define how many data you want to use during the training (For exampleBLOCK_NUM = 50you use 50 * BLOCK_SIZE rows from the training files). -
With
sel_modelyou choose one of the two neural model architecture (CNN and Time Distributed). -
To defining the type of samples negative/positive balance rate you use
sel_balance_type. -
There are two main type of training: identification and authentication, you set this with
sel_user_recognition_type. -
To dealing with the chunk data you use drop chunks or concatenate chunks in
sel_chunck_samples_handlerparameter. -
With
sel_train_user_numberyou specify that you want to traint the model for all user, or you can pick a single one from the dataset.
-
First of all you have to set
sel_method = Method.EVALUATEin settings.py. -
You can specify that the given dataset contains separate train and test samples using the
sel_dataset_typeparameter. -
With the
sel_evaluation_metricsyou can set the evaluation metrics from the predefined ones. -
The
sel_evaluation_typespecifies that you want to perform action based or session based evaluation.
Margit Antal - Sapientia Hungarian University of Transylvania Department of Mathematics– Informatics, Tirgu Mures
Norbert Fejér - Sapientia Hungarian University of Transylvania Department of Electrical Engineering, Tirgu Mures
The work was supported by Accenture Industrial Software Solutions.