# Biometrics Module

## Descripcion

Modulo de autenticacion biometrica para dispositivos moviles y web. Soporta fingerprint, Face ID, reconocimiento facial y escaneo de iris. Gestiona dispositivos registrados, credenciales biometricas (WebAuthn/FIDO2), sesiones y log de actividad.

## Entidades

| Entidad | Schema | Descripcion |
|---------|--------|-------------|
| `Device` | auth.devices | Dispositivos registrados con informacion de plataforma, biometricos y ubicacion |
| `BiometricCredential` | auth.biometric_credentials | Credenciales WebAuthn/FIDO2 vinculadas a dispositivos |
| `DeviceSession` | auth.device_sessions | Sesiones activas por dispositivo con tokens y metodo de autenticacion |
| `DeviceActivityLog` | auth.device_activity_log | Log de actividad: logins, autenticaciones biometricas, ubicaciones |

## Servicios

Este modulo actualmente solo define entidades. Los servicios de autenticacion biometrica deben implementarse en el modulo `auth` utilizando estas entidades.

## Endpoints

Los endpoints de autenticacion biometrica se exponen a traves del modulo `auth`:

| Method | Path | Descripcion |
|--------|------|-------------|
| POST | `/auth/devices/register` | Registra nuevo dispositivo |
| GET | `/auth/devices` | Lista dispositivos del usuario |
| DELETE | `/auth/devices/:id` | Elimina dispositivo |
| POST | `/auth/biometric/register` | Registra credencial biometrica |
| POST | `/auth/biometric/authenticate` | Autentica con biometrico |
| DELETE | `/auth/biometric/:id` | Elimina credencial biometrica |

## Dependencias

- `auth` - Modulo de autenticacion principal
- WebAuthn/FIDO2 library

## Configuracion

| Variable | Descripcion | Requerida |
|----------|-------------|-----------|
| `WEBAUTHN_RP_ID` | Relying Party ID (dominio) | Si |
| `WEBAUTHN_RP_NAME` | Nombre de la aplicacion | Si |
| `WEBAUTHN_ORIGIN` | Origen permitido | Si |

## Tipos Biometricos Soportados

| Tipo | Descripcion | Plataformas |
|------|-------------|-------------|
| `fingerprint` | Huella dactilar | iOS, Android, Windows Hello |
| `face_id` | Face ID de Apple | iOS |
| `face_recognition` | Reconocimiento facial | Android, Windows Hello |
| `iris` | Escaneo de iris | Dispositivos especializados |

## Plataformas Soportadas

| Plataforma | Descripcion |
|------------|-------------|
| `ios` | iPhone/iPad |
| `android` | Dispositivos Android |
| `web` | Navegadores con WebAuthn |
| `desktop` | Aplicaciones de escritorio |

## Niveles de Confianza

| Nivel | Valor | Descripcion |
|-------|-------|-------------|
| None | 0 | Dispositivo nuevo/no verificado |
| Low | 1 | Primera autenticacion biometrica |
| Medium | 2 | Uso regular sin incidentes |
| High | 3 | Dispositivo de confianza establecida |

## Seguridad

- Las credenciales biometricas usan algoritmo ES256 (ECDSA con SHA-256)
- Lock temporal despues de N intentos fallidos
- Registro de todas las actividades para auditoria
- Soporte para multiples credenciales por dispositivo
