Desarrollador iOS: pregunta de entrevista
¿Cómo proteges datos sensibles en iOS?
Protege datos iOS recolectando lo mínimo, usando Keychain o Secure Enclave para secretos, protección de archivos, TLS y autorización del servidor; no dependas de ofuscación ni secretos embebidos.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
La protección empieza por recoger menos y conservarlo menos tiempo. Credenciales y tokens van al Keychain con una clase de accesibilidad acorde a su uso, como whenUnlockedThisDeviceOnly; las claves que nunca deben salir del dispositivo usan el Secure Enclave. Los ficheros reciben NSFileProtectionComplete o CompleteUntilFirstUserAuthentication para estar cifrados mientras el dispositivo está bloqueado. Todo el tráfico usa TLS con App Transport Security activo, y pinning solo donde el modelo de amenazas justifica su coste operativo. Las decisiones de autorización ocurren en el servidor; un secreto incrustado en el binario es público, y la ofuscación solo retrasa su extracción.
Ejemplo
Una app de salud guarda el token de sesión en el Keychain con whenUnlockedThisDeviceOnly, escribe los informes exportados con protección de fichero completa y difumina la captura del selector de apps para que la última pantalla no sea visible. La clave de API del proveedor de analítica no se trata como secreto porque está en el binario; en su lugar el proveedor la restringe al bundle ID y el servidor le aplica límites de tasa.
Errores frecuentes
- Poner un secreto de firma en la app y confiar en la ofuscación.
- Desactivar App Transport Security para hablar con un endpoint HTTP.
- Guardar datos personales en UserDefaults, que no está cifrado y se incluye en las copias de seguridad.
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.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.