16. Seguridad del Software (Aplicación)
Este apartado complementa la seguridad del código, enfocándose en los mecanismos de autenticación, autorización y protección del aplicativo final Android en ejecución.
16.1 Objetivos
- Asegurar que solo usuarios válidos accedan a la app
- Proteger las sesiones, datos y recursos del usuario
- Integrar mecanismos de autenticación modernos
- Validar la integridad y procedencia de la app
16.2 Autenticación
- Usar OAuth 2.0 con tokens
accessyrefresh - Protocolo de intercambio vía HTTPS
- Uso de librerías seguras y estándar (ej: Firebase Auth, Auth0)
Authorization: Bearer {access_token}
- Validez corta para tokens (
15-30 min) - Renovación automática con
refreshToken - Almacenar en
EncryptedSharedPreferences
16.3 Inicio de sesión seguro
- Validación de credenciales en backend (no localmente)
- Activar autenticación biométrica:
val biometricPrompt = BiometricPrompt(...)
- Usar
Jetpack Biometricpara FaceID / Fingerprint - Mostrar errores genéricos, no revelar si fue usuario o contraseña
16.4 Gestión de sesión
- Cierre automático por inactividad
- Revocación remota de sesión si se detecta riesgo
- Validación de token en cada llamada backend
- Restricción a un solo dispositivo por usuario (opcional)