Hace unos días, José Selvi recordaba como las contraseñas en iOS, debido a Data Protection, se liberan dependiendo de su nivel de configuración en diferentes instantes. Los programadores pueden configurar que las contraseñas estén disponibles:
- Always: La contraseña es accesible en el momento en que el sistema operativo iOS arranca. Es decir, basta con encender el terminal y cualquier servicio o programa corriendo en el sistema tendrá la capacidad de acceder a ellas.
- When unlocked: La contraseña solo estará accesible cuando el usuario tenga desbloqueado el terminal. En el momento en que este se bloquea la contraseña se elimina de memoria y no está disponible para ningún proceso o servicio.
- When locked: Estas claves sólo están disponibles cuando el terminal está bloqueado, es decir, cuando el usuario no ha puesto el passcode.
- After first unlock: Las claves se liberan la primera vez que el terminal arranca, luego se quedan disponibles para todos los programas y no importa si el dispositivo está bloqueado o no.
Para conseguir este juego de niveles de acceso, el sistema cifrará las claves utilizando el passcode, o el Device UID, para cifrar los ficheros de contraseñas. Es decir, las claves Always están cifradas solo con una derivada del Device UID mientras que las claves When unlocked o After first unlock utilizan el passcode del usuario para cifrar la clave.
Figura 1: Claves de cifrado de ficheros derivadas del Device UID y el User Passcode |
Lo curioso es que, en la guía de iOS Security publicada por Apple aparece que en la última versión de iOS las claves WiFi se almacenan con "After first unlock", algo que no es así en las versiones de iOS 4.X mientras que el PIN de la SIM está en formato "Always". ¿Y es esto más seguro o no?
Figura 2: Las claves WiFi son after first unlock y el PIN de la SIM es Always |
Pues para Find my iPhone es peor. Hasta iOS 4.X, cuando un terminal se encendía, automáticamente se intentaba conectar a las redes WiFi cercanas conocidas para que las aplicaciones que funcionan con iOS bloqueado - como Find my iPhone - pudieran utilizar Internet y llamar a casa. Esto es así porque si el terminal ha sido sustraído, y hay una red WiFi cerca a la que pueda conectarse hay más posibilidades de que lo localicemos.
Esto no funciona así en las últimas versiones - lo hemos probado con iOS 5.1.1 y con iOS 6.0 a 6.0.2 - donde la contraseña WiFi se libera sólo "after first unlock" tal y como dice el documento de Apple. El PIN de la SIM, sin embargo, sí que se libera nada más encender el terminal, para poder conectarse con Find My iPhone.
Esto hace que si alguien se lleva el terminal, lo apaga, y quita la SIM, ya no se va a poder conectar a la WiFi para "llamar a casa" hasta que no se tenga el passcode. Esto es especialmente significativo si se tiene en cuenta que un atacante con el dispositivo bloqueado no puede apagar nunca la WiFi - a diferencia de extraer la SIM -, lo que obligaba a los ladrones a arrancar los terminales en sitios sin redes WiFi o en cajas de Faraday. Además, hay dispositivos como iPad o iPod Touch que no cuentan con 3G, con lo que Find my iPhone solo tiene sentido si se ha perdido el dispositivo después de haber si arrancado.
Desde el punto de vista de seguridad, en teoría, si se conoce el número de serie del dispositivo robado, Apple registrará los datos cuando este se intente conectar a los servidores de la compañía, y podría dar los datos a los cuerpos de seguridad del estado, tal y como pasó cuando se resolvió el caso del robo del iPad de Steve Jobs.
Desde el punto de vista de seguridad, en teoría, si se conoce el número de serie del dispositivo robado, Apple registrará los datos cuando este se intente conectar a los servidores de la compañía, y podría dar los datos a los cuerpos de seguridad del estado, tal y como pasó cuando se resolvió el caso del robo del iPad de Steve Jobs.
Por cierto, si nos ayudas con las pruebas te lo agradecemos. Teniendo tu iPhone en una WiFi conectado, apágalo y enciéndelo a ver si se conecta sin que pongas el passcode. Sabemos que se conecta en iOS 4.3.4 y que en iOS 5.1.1 o iOS 6.X no se conecta a la WiFi, pero queremos probar con iOS 5, iOS 5.0.1 y con iOS 5.1, así que si tienes una de estas versiones a mano, y nos cuentas tu experiencia te lo agradeceremos.
No hay comentarios:
Publicar un comentario