Desarrollador Android: pregunta de entrevista

¿Cómo guardas datos sensibles en Android?

Guarda datos sensibles mínimos, usa almacenamiento cifrado o claves de Keystore, nunca incrustes secretos, protege componentes exportados, valida deep links y asume que el cliente no puede guardar secretos del servidor.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

Empieza por no almacenar lo que no hace falta. Para lo demás, secretos como tokens van a un almacenamiento respaldado por el Android Keystore, donde el material de clave nunca sale del hardware seguro; EncryptedSharedPreferences o una base de datos cifrada usan esas claves para los datos en reposo. Las claves de API compiladas en la app las puede extraer cualquiera con el APK, así que lo que debe seguir siendo secreto vive en el servidor tras llamadas autenticadas. Las activities y content providers exportados se restringen, los parámetros de deep links se validan y la app nunca confía en sus propias comprobaciones cliente para autorizar.

Ejemplo

Una app bancaria guarda el token de refresco en un fichero de preferencias cifrado respaldado por Keystore con autenticación de usuario requerida para usar la clave, así que ni un dispositivo rooteado puede leerlo sin desbloquear el dispositivo. La clave de mapas de terceros se restringe por nombre de paquete y certificado de firma en la consola del proveedor, porque no puede esconderse en el APK.

Errores frecuentes

  • Poner secretos en BuildConfig o strings.xml y suponer que la ofuscación los oculta.
  • Escribir tokens en SharedPreferences sin cifrar o registrarlos en builds de debug.
  • Dejar un content provider exportado y permitir que otras apps lean la base de datos.

Una estructura útil para responder

Responde desde tu propia experiencia.

No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Desarrollador Android