Menú principal

Mostrando entradas con la etiqueta SHA1. Mostrar todas las entradas
Mostrando entradas con la etiqueta SHA1. Mostrar todas las entradas

jueves, 8 de junio de 2017

Fuerza bruta al Restrictions Passcode en un backup de iPhone

Hace un tiempo hablábamos de lo importante que era tener un passcode de más de 4 dígitos para protegerlo contra ataques de fuerza bruta basados en hardware específico. Hoy vamos a desarrollar esta idea desde el punto de vista lógico, y vamos a responder dos preguntas principales, ¿Por qué 4 dígitos no son suficientes? ¿Por qué debemos mantener distintas contraseñas para las distintas funcionalidades de nuestro dispositivo? Para ello, nos vamos a centrar en el restrictions passcode, una característica de iPhone que permite restringir determinadas aplicaciones o limitar algunas características del dispositivo protegiéndolas mediante una contraseña de 4 dígitos.

Para lograr nuestro objetivo, dividiremos el artículo en un conjunto de pasos. Primero, investigaremos la opción de extraer el restriction passcode, a partir de ahora passcode, de una copia de seguridad de nuestro iPhone que tengamos almacenada en nuestro PC. Segundo, comprobaremos el algoritmo de cifrado del passcode y la posibilidad de descifrarlo mediante fuerza bruta. Por último, mediremos los tiempos de descifrado en el peor caso.

Lo primero, es descubrir donde se almacena el backup de nuestro terminal en nuestro PC y donde se encuentra el passcode dentro del mismo. Apple nos proporciona esta información y nos dice que se encuentra en la ruta: \Users\(username)\AppData\Roaming\Apple Computer\MobileSync\Backup\. Si nos vamos a esa ruta en el sistema de archivos de nuestro PC, podemos ver como hay una carpeta backup, y un conjunto de subcarpetas y archivos con nombre largos y aparentemente aleatorios. 

Figura 1: Directorio con el fichero en el backup

Estos no son los nombres reales que Apple utiliza para identificar los directorios dentro de la copia de seguridad, sino que se les ha pasado un algoritmo de hash denominado SHA1. Por lo tanto, debemos buscar el nombre real de la ruta donde se almacena el fichero con el passcode y aplicarle la función hash para obtener su nombre en la copia de seguridad. Buscando en los foros de Apple, podemos encontrar que el nombre real de la ruta es el siguiente:

HomeDomain-library/Preferences/com.apple.restrictionspassword.plist, aplicándole la función hash a esta ruta, obtenemos el nombre del fichero en el backup:

Figura 2: nombre del fichero en plano

Buscamos el fichero 398bc9c2aeeab4cb0c12ada0f52eea12cf14f40b en la carpeta backup y observamos su contenido:

Figura 3: Contenido del fichero con la clave en base64 y hasheada

Aquí tenemos tanto la contraseña cifrada como el salt utilizado, y todo ello codificado en base64. El segundo paso, es descifrar esta contraseña para obtener el passcode en texto claro. Apple utiliza el algoritmo de cifrado PBKDF2, que aplica una función hash, en este caso sha1, y un salt a una contraseña y repite el proceso un número de veces determinado, en este caso, 1000 veces.

Puesto que disponemos del salt, que se encuentra en el fichero anterior, y del número de veces que se aplica el algoritmo sobre la contraseña 1000, el único valor que nos faltaría por adivinar es la propia contraseña, que sabemos que tiene que estar entre 0000-9999, debido a que es un passcode de 4 digitos, y que el valor de la misma después de aplicar el algoritmo de cifrado es el que tenemos en el fichero anterior.

Con todo esto en cuenta, vamos a aplicar un enfoque de fuerza bruta para calcular el passcode original. Aplicaremos el algoritmo de cifrado a cada uno de los posibles valores que podría tener el passcode, 0000-9999, y compararemos el resultado con la contraseña cifrada que nos hemos encontrado en el fichero, si en algún momento los valores coinciden, sabremos cual es el passcode original. Además, mediremos los tiempos de descifrado.

Para realizar este proceso utilizaremos una sencillo script de Python que hemos programado, y que irá comparando cada uno de los resultados de aplicar la función de cifrado a cada una de los posibles passcode con la contraseña cifrada que hemos encontrado en el fichero:

Figura 4: Trozo de código del script

Tras un breve periodo de espera, el script nos devuelve el passcode original en un tiempo de 0.9 segundos:

Figura 5: Salida del script

Como puede observarse, el crackeo de una contraseña de 4 dígitos es algo trivial, que requiere un tiempo, en el peor de los casos de 7 segundos. Por lo tanto, debemos configurar siempre que sea posible una contraseña de longitud mayor o igual a 8, mezclando números, letras y caracteres especiales. Otra de las reflexiones que podemos extraer, es la importancia de mantener contraseñas distintas para las distintas funcionalidades de nuestro terminal, si nuestro passcode de desbloqueo del terminal es el mismo que el que utilizamos para la restricción de aplicaciones y características, solo bastaría comprometer uno para tener acceso completo al teléfono.

sábado, 21 de diciembre de 2013

Actualizaciones de Mac Pro, OSX Mavericks & VPN Server

Este jueves, coincidiendo con la presentación del nuevo Mac Pro "cilíndrico", Apple puso en circulación una nueva versión del firmware de los equipos Mac Pro que mejora la estabilidad del sistema cuando se reinicia el sistema, que soluciona un problema con el auto-testeo de la memoria RAM y que mejora el rendimiento de energía con los gráficos cuando se usa Boot Camp.

Figura 1: Descarga de Mac Pro EFI Firmware Update 2.0

La descarga de esta nueva versión de Mac Pro EFI Firmware Update 2.0 puede hacerse desde la knoledge base de Apple. Actualiza cuanto antes tu firmware si quieres sacar el máximo rendimiento de tu Mac Pro de finales de 2013.

OS X Mavericks 10.9.1 para Mac Pro

Además se presentó una actualización especial de OS X Mavericks 10.9.1 para los equipos Mac Pro, aunque nos tiene un poco sorprendido. La descarga de OS X Mavericks para todos los equipos - a excepción de los equipos MacBook Pro de finales de 2013 que sí que tienen su propia versión de OS X Mavericks 2013 - está disponible en el artículo de la Knowledge Base DL1715 y se hace referencia al binario:
- URL: http://support.apple.com/downloads/DL1715/en_US/OSXUpd10.9.1.dmg
- SHA 1=07db93308b62c90b59c43ae075e2784ef8f20bfc
Por otro lado, el binario de OS X 10.9.1 para equipos Mac Pro está en el artículo de la Knowledge Base DL1707 y es:
- URL: http://support.apple.com/downloads/DL1712/en_US/OSXUpd10.9.1.dmg
- SHA 1: 07db93308b62c90b59c43ae075e2784ef8f20bfc
Como se puede ver tiene el mismo hash SHA1, por lo que pensábamos que será un problema de actualización de la documentación, así que hemos decidido bajarnos los dos ficheros y calcular el SHA1 de ellos con el comando openssl SHA1 del fichero.

Figura 2: Ambos hashes SHA1 son iguales

Al final parece que a pesar que de que son dos artículos, el binario es el mismo - podría darse una colisión SHA1 -, pero para estar seguros hemos utilizado Kdiff para OS X que ha concluido que los dos ficheros son iguales a nivel binario.

Figura 3: Verificación a nivel de bit por Kdiff para OS X

Esto nos hace comprender aún menos la política de Apple, que confunde más que ayuda con estas formas de documentar las cosas.

VPN para Mavericks Server

Otra de las actualizaciones que se ha publicado es un fix para un fallo de conexión en VPNs que usan L2TP cuando el cliente y el servidor de VPNs están tras diferentes gateways con NAT. Este update solo funciona si se ha configurado server.app en el servidor de OS X Mavericks.

Figura 4: Parche para el servidor OS X Mavericks con servicios de VPN L2TP

Para terminar la lista de actualizaciones y no dejarnos nada, hay también una actualización de compatibilidad con cámaras digitales para Aperture 3 e iPhoto'11, que puedes instalar también, y así dejar tu sistema con los últimos binarios de software publicados por Apple.

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