3FA Authenticator App introduces a third factor to the conventional two-factor authentication (2FA) mechanism by incorporating a handwritten signature authenticity check.
3FA Authenticator App verifies three factors: knowledge, inherence and possession.
The first and second factors are managed by the authentication system, which verifies the user's password and handwritten signature. The handwritten signature is verified using a siamese neural network model. The third factor is handled by the one-time password generator. The generator is only accessible after successful authentication.
Caution
3FA Authenticator App creates anchor
and dict
files on user registration:
- The
dict
file stores encrypted information about the user's account names and secret keys. - The
anchor
file stores encrypted information about the user's handwritten signature.
The user's password is used for encryption key generation. Forgetting it or deleting these files will result in irreversible data loss.
Module | Description |
---|---|
main.py | Main script that runs the app. |
datacrypt.py | Functions for encrypting and decrypting user data. |
preprocess.py | Functions for preprocessing signatures for the model. |
train.py | Functions used for creating, training, validating, and testing the model. |
siamese | Model data. |
-
Clone this repository:
git clone https://github.com/aivarovsky/3fa-authenticator-app
-
Navigate to the project directory:
cd 3fa-authenticator-app
-
Install dependencies:
pip install -r requirements.txt
-
Run
main.py
:python main.py
This project is licensed under the MIT License.