Agujero de seguridad en el iPhone
En el proceso de conseguir sincronizar las notas del iPhone y realizar copias de seguridad de sus bases de datos, he descubierto un posible agujero de seguridad que me ha dejado muy preocupado y es que un número importante de combinaciones de usuario y contraseñas se almacenan en texto plano, es decir, no encriptadas.
Esto significa que cualquier aplicación maliciosa o de terceros podría acceder a nuestros datos y usarlos con fines no autorizados, incluso sería posible que se enviaran al exterior sin nosotros tener conocimiento.
Entrando en detalle, he encontrado que además del diccionario que incorpora el iPhone para la escritura predictiva, usa un diccionario adicional con los términos y palabras que usamos, es decir, un diccionario dinámico. El problema radica en que cada vez que introduzcamos nuestros datos personales en un formulario o aplicación también los está memorizando. Este diccionario dinámico se almacena (dentro del iPhone) en la ruta /private/var/root/Library/Keyboard con el nombre de dynamic-text.dat.

Otros ficheros de datos de aplicaciones también padecen del mismo problema, como por ejemplo la aplicación Navizon que almacena el usuario y la contraseña en un fichero XML en texto plano y sin encriptar. Y es muy posible que otras aplicaciones se comporten igual.
El problema no acaba aquí, porque cada vez que sincronizamos nuestro iPhone, todos estos datos se transfieren a nuestro PC y/o Mac y por lo tanto la exposición de nuestros datos sensibles es aun mayor, porque nuestras contraseñas y datos sensibles estarán accesibles por otro tipo de aplicaciones.
¿Cómo se arreglaría esto?
Para las aplicaciones de terceros (las que no vienen incluidas con iPhone) deberían usar funciones de encriptación para almacenar datos sensibles, como mínimo un básico MD5.
Para el diccionario dinámico del iPhone (aparte de quejarse a Apple Inc.) no se me ocurre ahora ninguna solución.
¿Es real el riesgo? ¿Qué podría pasar?
El riesgo siempre existe y es algo con lo que hay que contar, pero a día de hoy no todas las aplicaciones de terceros que nos instalamos en nuestro iPhone aportan el código fuente (por ejemplo Navizon), por lo que no podemos estudiar su comportamiento, y tampoco creo que todo el mundo tenga las ganas ni la capacidad de revisar el código fuente de una aplicación antes de instalarla.
Por lo tanto, en cualquier momento alguien podría coger el código fuente público de una aplicación como iFlickr que contiene toda la lógica para sacar algo de nuestro iPhone, modificar la aplicación para que se vaya a las carpetas que contienen los ficheros vulnerables y enviar esos datos a Rusia, Ucrania, o al vecino de al lado. Sobre todo, sabiendo esos ficheros siempre están en la misma ubicación y tienen el mismo nombre. Si a eso además, tenemos en cuenta que gran parte del tiempo el iPhone se conecta a Internet y ni nos solicita autorización ni sabemos lo que está entrando ni saliendo, nos encontramos con un panorama inquietante cuando menos.
¿Es entonces preocupante?
No es mi intención meterle miedo a nadie, pero yo diría que si, que una cuestión por lo que habría que preocuparse.
¿Se puede hacer algo?
En principio los consejos básicos análogos a cualquier sistema operativo:
- No instalar aplicaciones de dudosa procedencia.
- No seas el primero en probar la aplicación, espera que otros lo hagan y den su feedback.
- No introduzcas tus datos (usuarios y contraseñas) sobre productos o aplicaciones que no tengan un contrastado nivel de seguridad y garantías.
Por mi parte, como ya estoy trabajando en precisamente el acceso a los datos del iPhone y su sincronización, voy a trabajar en algunas utilidades para Windows y Mac OS X que permitan mitigar (o por lo menos detectar) estos escenarios. Tan pronto como tenga algo lo iré publicando en esta web.
Visto el “panorama” también enfocaré mis esfuerzos en investigar otras posibles vulnerabilidades de esta índole y sus vías de evitarlas/subsanarlas.
29 octubre, 2007 - 16:07
Gracias por tu trabajo, gran investigación, felicidades.
19 diciembre, 2007 - 14:18
Hola, he comprobado lo que dices y la verdad es que es un poco fuerte.
¿Has probado que pasa si desactivamos la opción de teclado dinámico? ¿Con esto se soluciona?
19 diciembre, 2007 - 17:41
No, lo he probado sin la opción de teclado dinámico. De todas formas, yo creo que es independiente, porque creo que siempre está aprendiendo para cuando lo actives.
Está claro que hay que probarlo.
Saludos.
26 julio, 2008 - 01:50
holaa! queria hacer una pregunta respecto a la seguridad y contraseñas.. mi iphone lo ha agarrado mi sobrino quien le coloco una contraseña que se olvido y me bloqueo el menu, no se como sacarlo.. me podrian dar una solucion? gracias!!!
6 mayo, 2009 - 16:08
mi iphone esta bloqueado por olvido de clave que puedo hacer para solucionar esto….. espero su respuesta
Cuando escribió este comentario, victor hablaba en su blog de iPhone AppStore: Los buenos contra los malos, desarrolladores contra los piratas.