A locally-run biometric authentication system designed to rival Windows Hello while maintaining complete privacy and security. All processing happens offline with no cloud dependencies.
- π Privacy-First: 100% offline processing, encrypted template storage
- β‘ Lightning Fast: Sub-500ms authentication latency
- π‘οΈ Military-Grade Security: AES-256 encryption, TPM/Secure Enclave integration
- π€ Multi-User Support: Manage multiple enrolled users seamlessly
- π― Enterprise Accuracy: FAR β€ 0.001%, FRR β€ 1%
- π Fallback Authentication: PIN/password backup options
- π Cross-Platform: Windows, Linux, Android support
- π Developer-Friendly: REST API and SDK for easy integration
- π¨ Modern UI: Clean, intuitive graphical interface
- βΏ Accessible: Full accessibility support and multi-language
- Python 3.8+ (Python 3.9+ recommended)
- Webcam (built-in or USB camera)
- 4GB RAM minimum (8GB recommended)
- Windows 10/11, Linux, or Android development environment
# Clone the repository
git clone https://github.com/SpicychieF05/LockLess.git
cd LockLess
# Run automated setup
python setup.py# Clone the repository
git clone https://github.com/SpicychieF05/LockLess.git
cd LockLess
# Create virtual environment
python -m venv .venv
# Activate virtual environment
# Windows:
.venv\Scripts\activate
# Linux/Mac:
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt# Test camera functionality
python src/main.py --test-camera
# Launch GUI (recommended for beginners)
python src/main.py --gui
# Or use the batch file (Windows)
run.bat --guiLaunch the graphical interface for an intuitive experience:
python src/main.py --guiThe GUI provides:
- User Enrollment: Easy step-by-step enrollment process
- Authentication: Quick and secure login
- User Management: Add, remove, and manage users
- Settings: Configure system parameters
- Diagnostics: System health and performance monitoring
python src/main.py --enroll --user john_doe --password mypassword123python src/main.py --authenticate --user john_doe --password mypassword123python src/main.py --list-userspython src/main.py --test-camerapython src/main.py --diagnosticspython src/main.py --config custom_config.yaml --enroll --user alice --password secret123python src/main.py --log-level DEBUG --authenticate --user john_doe --password mypassword123python src/main.py --benchmarkβββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββββ
β User Interface β β Biometric Core β β Security Layer β
β β β β β β
β β’ GUI (PyQt5) βββββΊβ β’ Face DetectionβββββΊβ β’ AES-256 Enc. β
β β’ CLI Interface β β β’ Feature Ext. β β β’ Key Management β
β β’ REST API β β β’ Liveness Det. β β β’ TPM Integrationβ
βββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββββ
β β β
βββββββββββββββββββββββββΌββββββββββββββββββββββββ
β
βββββββββββββββββββ
β Platform Layer β
β β
β β’ Windows β
β β’ Linux β
β β’ Android β
βββββββββββββββββββ
- Template Encryption: All biometric templates encrypted with AES-256
- Key Derivation: PBKDF2 with 100,000 iterations
- Secure Storage: Encrypted local storage with no cloud dependencies
- Liveness Detection: Multi-modal anti-spoofing protection
- Access Control: Role-based access with audit logging
| Metric | Target | Typical |
|---|---|---|
| Authentication Time | < 500ms | 200-400ms |
| Enrollment Time | < 30s | 10-20s |
| Memory Usage | < 500MB | 200-300MB |
| False Accept Rate (FAR) | β€ 0.001% | 0.0001% |
| False Reject Rate (FRR) | β€ 1% | 0.5% |
| CPU Usage (Idle) | < 1% | 0.1% |
The system uses config/default.yaml for configuration. Key settings:
camera:
device_id: 0
resolution:
width: 640
height: 480
fps: 30
authentication:
similarity_threshold: 0.7
quality_threshold: 0.6
max_attempts: 3
lockout_duration: 300
enrollment:
required_samples: 5
quality_threshold: 0.4
max_enrollment_time: 30
security:
encryption_enabled: true
tpm_enabled: false
key_derivation_iterations: 100000Create your own configuration file:
cp config/default.yaml config/my_config.yaml
# Edit config/my_config.yaml
python src/main.py --config config/my_config.yaml --gui# Run all tests
pytest tests/ -v
# Run specific test categories
pytest tests/unit/ -v
pytest tests/integration/ -v
pytest tests/biometric/ -v
pytest tests/security/ -v
# Run with coverage
pytest tests/ --cov=src --cov-report=html# Run performance benchmarks
python scripts/benchmark.py
# Test with different user counts
python scripts/load_test.py --users 10 --duration 60# Run security tests
pytest tests/security/ -v
# Penetration testing
python scripts/penetration_test.py# Create Windows installer
python scripts/build_windows.py
# Install as Windows service
python scripts/install_service.py# Create systemd service
sudo python scripts/install_linux.py
# Docker deployment
docker build -t lockless .
docker run -d --name lockless-service lockless# Build Android APK
cd deployment/android
./gradlew assembleRelease
# Install on device
adb install app/build/outputs/apk/release/app-release.apkStart the API server:
python src/api/rest_api.py --port 8080Example API calls:
# Enroll user
curl -X POST http://localhost:8080/api/v1/enroll \
-H "Content-Type: application/json" \
-d '{"user_id": "john_doe", "password": "secret123"}'
# Authenticate user
curl -X POST http://localhost:8080/api/v1/authenticate \
-H "Content-Type: application/json" \
-d '{"user_id": "john_doe", "password": "secret123"}'
# List users
curl http://localhost:8080/api/v1/usersfrom lockless import LockLessClient
# Initialize client
client = LockLessClient()
# Enroll user
result = client.enroll_user("john_doe", "password123")
print(f"Enrollment: {result.success}")
# Authenticate user
result = client.authenticate_user("john_doe", "password123")
print(f"Authentication: {result.success}")LockLess/
βββ src/ # Source code
β βββ core/ # Core system components
β βββ biometric/ # Biometric processing
β βββ security/ # Security and encryption
β βββ ui/ # User interface
β βββ api/ # API and SDK
β βββ platform/ # Platform-specific code
βββ tests/ # Test suites
βββ models/ # AI models
βββ config/ # Configuration files
βββ docs/ # Documentation
βββ deployment/ # Deployment configurations
βββ scripts/ # Utility scripts
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
# Install development dependencies
pip install -r requirements.txt
# Install pre-commit hooks
pre-commit install
# Run code formatting
black src/ tests/
# Run linting
flake8 src/ tests/
# Run type checking
mypy src/- API Reference
- Security Architecture
- Deployment Guide
- Testing Strategy
- Development Roadmap
- Project Structure
Q: Is LockLess really 100% offline? A: Yes! All biometric processing happens locally on your device. No data is sent to external servers.
Q: How does it compare to Windows Hello? A: LockLess offers similar functionality with better privacy, cross-platform support, and open-source transparency.
Q: Can I use it on multiple devices? A: Yes, you can enroll the same user on multiple devices. Each device maintains its own encrypted templates.
Q: What if I forget my password? A: You can reset your account by deleting the user and re-enrolling, but this will require re-enrollment.
Q: What camera resolution is recommended? A: 640x480 or higher works well. The system automatically adjusts quality based on available resolution.
Q: Can I use it without a camera? A: No, LockLess requires a camera for face detection and authentication.
Q: Does it work in low light? A: Yes, but performance may be reduced. Good lighting conditions provide the best results.
Q: Can I customize the authentication thresholds? A: Yes, all thresholds can be adjusted in the configuration file.
Q: How are my biometric data protected? A: All biometric templates are encrypted with AES-256 and stored locally. The encryption key is derived from your password.
Q: Can someone access my biometric data? A: No, without your password, the encrypted templates are useless. The system uses industry-standard encryption.
Q: What happens if my device is compromised? A: Even if someone gains access to your device, they cannot decrypt your biometric templates without your password.
Q: Does LockLess support TPM? A: Yes, on systems with TPM available, LockLess can use it for additional security.
Q: Camera not detected? A: Check if other applications are using the camera. Try different camera IDs or update drivers.
Q: Authentication fails frequently? A: Ensure good lighting, clean camera lens, and try re-enrolling with better quality samples.
Q: System runs slowly? A: Check system resources, enable GPU acceleration if available, or reduce image resolution.
Q: GUI doesn't start? A: Ensure PyQt5 is installed and check the logs for specific error messages.
- Camera not detected: Check camera permissions and try different camera IDs
- Poor image quality: Ensure good lighting and clean camera lens
- Camera access denied: Grant camera permissions to the application
- Slow authentication: Enable GPU acceleration or reduce image resolution
- High memory usage: Close other applications or reduce concurrent users
- System freezing: Check system resources and update drivers
- Face not detected: Improve lighting and positioning
- Liveness detection fails: Ensure you're not using a photo/video
- Biometric match fails: Try re-enrolling with better quality samples
- Check the troubleshooting guide
- Search existing issues
- Create a new issue
- Join our Discord community
- Face detection and recognition
- User enrollment and authentication
- Basic security and encryption
- Cross-platform support
- Voice recognition
- Fingerprint support
- Advanced liveness detection
- Mobile app
- Centralised management
- SSO integration
- Advanced analytics
- Cloud deployment options
We welcome contributions! Please see our Contributing Guide for details.
- π Report bugs
- π‘ Suggest features
- π Improve documentation
- π§ Submit code changes
- π§ͺ Add tests
- π Translate to other languages
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenCV team for computer vision libraries
- PyTorch team for a deep learning framework
- Cryptography.io team for encryption libraries
- All contributors and testers
- π§ Email: support@lockless.dev
- π¬ Discord: Join our community
- π Documentation: docs.lockless.dev
- π Issues: GitHub Issues
Made with β€οΈ by the LockLess Team
β Star us on GitHub β’ π Report Bug β’ π‘ Request Feature