Android Keystore – ¿se puede recuperar una clave de usuario por root si se establece en ese usuario?
Desde Android 4.3, Android tiene su propio almacén de claves donde puedo almacenar claves y usarlas más tarde para el cifrado / descifrado.
Se dice aquí y aquí que cada clave sólo puede ser recuperada por su propietario y ni siquiera la raíz puede obtenerlo.
- Leyendo ActivityManager-logs en un dispositivo de Jelly Bean?
- Asegurar una API REST accesible desde Android
- ¿Qué es APPKEY en Truecaller API?
- Seguridad de Android App
- Prácticas recomendadas (lo mejor para Android): autenticar a un usuario con acceso a Facebook o Google
Mi pregunta es: ¿No podría escribir un programa que cambiaría mi uid al propietario de la clave, lo recuperaría y luego lo usaría para descifrar datos a los que no debería tener acceso?
Editar: Añadido cita a keystore doc.
- Java.security.cert.CertPathValidatorException: Ancla de confianza para ruta de certificación no encontrada. Android 2.3
- ¿Alguien puede explicar OAuth?
- Ofuscación: ocultar valores codificados en java
- Seguridad de aplicaciones móviles híbridas
- ¿Cuál es la forma correcta de validar google concedido tokens OAuth en un servidor node.js?
- ¿Cómo debo codificar para resistir la "piratería con un solo clic"?
- Cifrado del dispositivo Android ICS
- La aplicación Detectar Android se está ejecutando en modo de depuración
Es cierto que normalmente una clave sólo puede ser recuperada por el usuario que la almacenó.
Ver por ejemplo: http://nelenkov.blogspot.se/2011/11/using-ics-keychain-api.html
Si un dispositivo está enraizado, las claves todavía no se pueden recuperar a menos que el atacante también tenga la contraseña.
Si el atacante ha arraigado el dispositivo y tiene la contraseña o el dispositivo está desbloqueado, se acaba el juego.
"¿No podría escribir un programa que cambiaría mi uid al propietario de la clave, la recuperaría y luego la usaría para descifrar datos a los que no debería tener acceso?"
Los UID se asignan a aplicaciones individuales en el momento de la instalación. Una aplicación de Android no puede cambiar su UID.
- Evento de desinstalación de aplicaciones para Android para análisis
- ¿Cómo habilito el altavoz de Android durante una llamada, desde el código?