- Webcam is physically secure
- User is present at laptop
- No network access to face data
- Models are downloaded from trusted source (SHA-256 verified)
- Physical access to laptop requires authentication
- Photo/video spoofing: Mitigated by MiniFASNet liveness detection
- Unauthorized face enrollment: Enrollment requires physical presence
- Embedding extraction: Filesystem permissions protect enrollment data
- Replay attacks: Consecutive frame requirement prevents replay
- Multiple faces: Exactly one face requirement
- Poor quality samples: Enrollment rejects low-quality samples
- Model evasion: Fail-closed design
- High-quality masks: MiniFASNet may not detect sophisticated masks
- Deepfake injection: No protection against direct video feed manipulation
- Insider threats: Physical access to config files allows tampering
- Shoulder surfing: Visual feedback during authentication
- Brute force: No rate limiting built in
- UNKNOWN liveness → reject
- Detection failure → reject
- Recognition failure → reject
- Camera failure → reject
- Timeout → reject
- No cloud APIs
- No network requests during inference
- All processing on-device
- Models cached locally
- Store embeddings only, never photos
- Embeddings are irreversible (one-way)
- No biometric metadata stored
- Configurable cleanup
- Exactly one face required
- Liveness detection
- Recognition threshold
- Consecutive frames
- Secure file permissions
~/.config/uniface-unlock/
├── enrollment.npz (0o600) # Only owner can read
├── config.json (0o600)
└── directory (0o700)
- May fail with extreme lighting
- May fail with occlusions (masks, glasses)
- Uncertain with printed photos
- Video replay may be detected but not guaranteed
- Appearance changes (beard, glasses) affect matching
- Pose variations affect accuracy
- Lighting changes affect accuracy
- Threshold calibration required per user
- CPU inference is slower than GPU
- Thermal throttling possible
- Camera quality affects detection
- 5-10 FPS processing limit
- Never disable password authentication
- Keep UniFace models updated
- Protect enrollment files
- Test liveness regularly
- Monitor logs for anomalies
- Re-enroll if appearance changes significantly
- Use strong password backup
- Physical security of device
uniface-unlock enroll # Re-enroll- Use password authentication
- Check /dev/video* permissions
- Review system logs
- Check camera status
- Verify enrollment exists
- Check lighting conditions
- Run benchmark
- Re-enroll if needed
IMPORTANT: Before modifying PAM:
- Backup PAM files
- Test standalone system thoroughly
- Keep password auth enabled
- Never make face auth mandatory
- Provide rollback plan
- Test recovery procedures
See docs/pam.md for PAM-specific security.