4. Permisos y control de datos
En Android la gestión de permisos y el control de datos garantizan la seguridad y privacidad del usuario. A partir de Android 6.0 se introdujeron permisos en tiempo de ejecución y, con Android 10 , el modelo de almacenamiento cambió drásticamente con scoped storage.
4.1 Modelo de permisos en Android
Los permisos se clasifican según su nivel de riesgo y el modo de concesión:
Tipo | Nivel de riesgo | Cómo se conceden |
Normal | Bajo | Automático en tiempo de instalación |
Peligroso | Alto | Solicitud y aprobación en tiempo de ejecución |
Signature | Moderado | Solo apps firmadas con la misma clave |
Especial | Muy alto | Requiere configuración manual en Ajustes o APIs especiales |
Permisos normales vs peligrosos
- Normales: Acceso a estado de red, vibración, cambio de idioma.
- Peligrosos: Acceso a cámara, micrófono, ubicación, contactos y almacenamiento.
4.2 Solicitud de permisos en tiempo de ejecución
- Comprobar con
ContextCompat.checkSelfPermission
. - Si no está concedido, invocar
requestPermissions()
. - Mostrar rationale si el usuario ya denegó antes.
- Gestionar la respuesta en
onRequestPermissionsResult()
.
Para flujos avanzados, usar ActivityResultLauncher
con el nuevo API de resultados.
4.3 Scoped Storage y control de acceso a archivos
Desde Android 10 el acceso al almacenamiento externo está limitado:
- Media Store: Acceso a medios (imágenes, audio, vídeo) sin permisos de archivo completo.
- Storage Access Framework (SAF): Diálogos de selección de documentos carpetas o archivos.
- MANAGE_EXTERNAL_STORAGE: Permiso especial para acceso total (Android 11 , limitado).
4.4 Permisos especiales y App Ops
Algunos permisos requieren configuración manual o APIs específicas:
- Instalar fuentes desconocidas:
REQUEST_INSTALL_PACKAGES
. - Acceso a notificaciones: Notification Listener.
- Gestión de App Ops: Modificar operaciones de la app usando
adb shell appops
o APIs internas.
4.5 Privacidad y panel de control del usuario
Android ofrece al usuario herramientas para revisar y revocar permisos:
- Panel de privacidad: Muestra uso reciente de cámara, micrófono y ubicación.
- Ajustes de la app: Revocación manual de permisos, datos empleados y uso de la batería.
- Copia de seguridad de datos: Configurar
Auto Backup
yKey/Value Backup
enAndroidManifest.xml
.
4.6 Buenas prácticas
- Solicitar permisos justo antes de la funcionalidad que los necesita.
- Proporcionar explicaciones claras y contextuales al usuario.
- Detectar y manejar denegaciones y “no volver a preguntar”.
- Utilizar SAF o MediaStore en lugar de permisos de almacenamiento global.
- Revisar periódicamente la experiencia de privacidad con herramientas de auditoría.
Profundizando sobre: 4. Permisos y control de datos
-
Android Security Internals – Nikolay Elenkov
Análisis en profundidad de la arquitectura de seguridad de Android, manejo de permisos, cifrado y control de acceso a datos.
-
Android Security Cookbook – Keith Makan y Scott Alexander-Bown
Recetas prácticas para implementar controles de permisos, almacenamiento seguro y protección de datos en aplicaciones Android.
https://www.packtpub.com/product/android-security-cookbook/9781785280567
-
Pro Android Security – Fábio Velloso, Ricardo Tomasi
Guía detallada sobre hardening de aplicaciones, auditoría de permisos y técnicas avanzadas de protección de datos.
-
Documentación oficial de Android: Permisos
Referencia completa de los modelos de permisos en Android, solicitudes en tiempo de ejecución y buenas prácticas.
-
Documentación oficial de Android: Almacenamiento y protección de datos
Conceptos y ejemplos sobre almacenamiento interno, externo, cifrado de archivos y uso de Keystore para proteger información sensible.
-
OWASP Mobile Top 10 amp Mobile Security Testing Guide
Listado de las principales amenazas móviles, incluyendo fallos en la gestión de permisos y exposición de datos, con metodología de prueba.
Deja una respuesta