Menú principal

sábado, 19 de agosto de 2017

Descifrar backup de iPhone

Hace unas semanas veíamos como era posible extraer de manera sencilla algunos datos relevantes de un backup de iPhone sin cifrar. Hoy vamos a ver que cifrar nuestras copias de seguridad añade riesgos adicionales, hasta el punto de que alguien podría llegar a cuestionarse si realmente merece la pena almacenarlas cifradas en nuestro ordenador.  Lo primero que vamos a hacer, es estudiar la diferencia entre almacenar un backup cifrado y uno sin cifrar.

Además de lo obvio (el primero no se encuentra en un formato legible ya que se le ha aplicado un algoritmo de cifrado y se requiere una contraseña para descifrarlo), si miramos la documentación de Apple, podemos ver que hay otras diferencias relevantes. “Encrypted iTunes backups can include information that unencrypted iTunes backups don´t":
  • Your saved password. 
  • Health data.
  • WiFi Settings.
  • Website History.
Esto quiere decir que si de alguna forma se tiene acceso a la información que contiene un backup cifrado, se puede acceder a datos como tus contraseñas almacenadas, como por ejemplo, las de tus redes sociales, tu banco o tu red wifi, o a datos de salud, catalogados como datos especialmente protegidos por la agencia de protección de datos. 

En resumen, si conseguimos de alguna forma de acceder a los contenidos de un backup cifrado, tendremos en nuestras manos muchísima más cantidad de información de la que encontraríamos en uno sin cifrar, por lo tanto, la pregunta en este punto es, ¿Cómo de difícil es acceder a los contenidos de un backup cifrado? 

Para responder a esta pregunta, vamos a realizar una prueba de concepto. Para descifrar backups de iPhone, hay varias herramientas públicas, pero son de pago y además van a tratar con nuestros datos personales de manera poco transparente, por lo tanto, para evitar todo esto, vamos a construir nuestra propia herramienta de descifrado. Vamos a comenzar por analizar la forma en la que Apple cifra las copias de seguridad. Si nos remontamos a 2011, podemos ver algunos trabajos de investigación que hablan de la manera en la que este proceso se lleva a cabo:

Figura 1: iPhone Data Protection

También encontramos algunas herramientas que te permitían acceder fácilmente a tus copias de seguridad cifradas a través de tu contraseña de cifrado, y devolviéndote el backup descifrado. Esto es muy interesante, y hasta iOS 10, funcionaba realizándole unas pocas modificaciones al código del proyecto anterior. Cuando entra iOS 10, y en concreto, la versión 10.2, Apple introduce algunos cálculos adicionales en la forma en la que se cifraba la copia de seguridad. A través de ingeniería inversa, algunos investigadores consiguieron obtener los algoritmos y parámetros que se estaban añadiendo:

Figura 2: Código

Con toda esta información, vamos a utilizar algunos de los ficheros del proyecto citado anteriormente como base para el desarrollo de nuestro Script. Debido a que este proyecto es de hace algunos años, muchos de los paquetes utilizados ya no funcionan, o son poco eficientes, y la nueva característica de cifrado de los sistemas operativos iOS 10.2 o superiores tampoco está implementada. Actualizando todos estos campos, añadiendo los que faltan y eliminando las partes que no son necesarias, podemos construir un script sencillito que nos realice el proceso de descifrado.

El script es muy fácil de utilizar, simplemente indicamos si nuestra copia de seguridad se hizo en un dispositivo con una versión de iOS inferior a 10.2 e indicamos la ruta donde se encuentra nuestro fichero Manifest.plist, que viene indicado en la documentación de Apple.

La ejecución del Script nos devolverá un resultado similar al siguiente:

Figura 3: Tiempo de descifrado del backup de iOS

Tal y como se ha explicado anteriormente, la introducción de cálculos adicionales a partir de iOS 10.2 a la hora de cifrar el backup, introduce un retraso considerable en la realización de fuerza bruta para extraer la clave. A pesar de esto, según las pruebas realizadas, a un dispositivo con iOS 10.2 o superior, se le puede descifrar una clave numérica de 6 dígitos en menos de dos días, mientras que en versiones inferiores a la 10.2, esto se puede realizar en cuestión de minutos, todo esto sin aplicar técnicas de optimización que probablemente agilizaran considerablemente el proceso. Por lo tanto, los tiempos siguen siendo bastante pequeños y el proceso de descifrar la clave es totalmente factible si la contraseña no cumple con ciertas características de seguridad que la hagan robusta.

Viendo esto, podemos concluir, que el backup cifrado de un dispositivo iOS contiene información mucho más sensible que el backup sin cifrar, y que la utilización de una contraseña débil, provocará que realmente estemos exponiendo más información sensible que si almacenamos la copia de seguridad sin ningún tipo de cifrado.

3 comentarios:

  1. sin referencias ni script, ¿como verificamos la veracidad de este artículo?

    ResponderEliminar
  2. Buenas. Vais a publicar el script?

    ResponderEliminar
  3. El script se puede obtener de aquí: https://github.com/shramos/iphone_backup_decryptor

    ResponderEliminar

Entrada destacada

Proteger tu cuenta de Google y de Gmail con Latch Cloud TOTP #Latch #Gmail #Google

La semana pasada se liberó la nueva versión de Latch y nuestro compañero Chema Alonso hizo un repaso de todo ello en su artículo Latch ...

Otras historias relacionadas

Entradas populares