A Biometric-Based Password Vault with VPN Integration
BioVault is a secure desktop password manager that:
- Authenticates users using face and voice recognition
- Unlocks the vault only when connected to a secure VPN
- Uses AES encryption for vault safety
- Developed using Java (JavaFX) and Python (Flask)
- Biometric authentication (face + voice)
- VPN connection required to unlock vault
- AES-encrypted password storage
- Cross-language: JavaFX GUI, Python Flask backend
- Modular design for easy extension
BioVault/
├── java-app/ # JavaFX GUI + Vault + VPN logic
│ ├── src/ # Java source files
│ ├── vault/ # Vault management (AES encryption, DB)
│ └── utils/ # Java helper utilities
│
├── biometric-auth-server/ # Python Flask server for biometrics
│ ├── app.py # Main Flask app
│ ├── face_module.py # Face recognition logic
│ ├── voice_module.py # Voice recognition logic
│ └── utils/ # Preprocessing (OpenCV, audio)
│
├── vpn/ # (Optional) Java VPN logic
│ ├── vpnClient.java # VPN client code
│ └── vpnUtils.java # VPN helper functions
│
└── README.md # Project documentation
- JavaFX GUI takes webcam and mic input.
- Sends input to Python Flask server (
/verify) usingHttpClient. - Python verifies face and voice match.
- On success, Java triggers VPN connection (e.g., using
ProcessBuilderor embedded VPN library). - Once VPN is live, Java decrypts AES vault and unlocks UI.
| Layer | Technology |
|---|---|
| Frontend GUI | JavaFX + FXML |
| Vault DB | SQLite + JDBC |
| Encryption | AES (javax.crypto) |
| VPN Integration | Java Networking / VPN client |
| API Bridge | Java HTTPClient + Python Flask |
| Face Auth | face_recognition (Python) |
| Voice Auth | speechbrain or Resemblyzer (Python) |
| Audio/Image Tools | OpenCV, NumPy, soundfile |
- Launch the JavaFX application.
- Ensure the Python Flask server is running for biometric verification.
- Connect to a VPN (if not handled automatically).
- Use the GUI to manage your passwords securely.
MIT License. See LICENSE for details.