Un blob SHSH (basado en los acrónimos de hash firmado y objeto binario grande ; también llamado ECID SHSH , en referencia al ECID del dispositivo, un número de identificación único incrustado en su hardware [1] ) es un término no oficial que se refiere a las firmas digitales que Apple genera y utiliza para personalizar archivos de firmware IPSW para cada dispositivo iOS . Son parte del protocolo de Apple diseñado para garantizar que se instale software confiable en el dispositivo, [2] generalmente solo permite que se pueda instalar la versión más reciente de iOS. El nombre público de Apple para este proceso esAutorización del software del sistema (anteriormente denominada Personalización del software del sistema antes de iOS 7 ). [3]
Este proceso está controlado por TATSU ("TSS") Signing Server (gs.apple.com) donde las actualizaciones y restauraciones solo pueden ser completadas por iTunes si se está firmando la versión de iOS. Los desarrolladores interesados en el jailbreak de iOS han creado herramientas para trabajar en torno a este sistema de firmas con el fin de instalar versiones antiguas de iOS con jailbreak que ya no están firmadas por Apple. [4] [5]
Detalles técnicos
Los blobs SHSH se crean mediante una fórmula hash que tiene varias claves, incluido el tipo de dispositivo, la versión de iOS que se está firmando y el ECID del dispositivo. [6] Cuando Apple desea restringir la capacidad de los usuarios para restaurar sus dispositivos a una versión particular de iOS, Apple puede negarse a generar este hash durante el intento de restauración, y la restauración no será exitosa (o al menos requerirá omitir la función prevista del sistema). [7] [8]
Este protocolo es parte del iPhone 3GS y dispositivos posteriores. [9]
Firma de código TATSU para la verificación de iTunes
Cuando iTunes restaura o actualiza un firmware de iOS, Apple ha agregado muchos puntos de control antes de que se instale la versión de iOS y comience la consolidación en el dispositivo. En la primera "Verificación del software del iPhone", iTunes se comunica con "gs.apple.com" para verificar que el archivo IPSW proporcionado todavía se está firmando. El servidor de TATSU devolverá una lista de las versiones que se están firmando. Si la versión no se está firmando, iBEC e iBoot rechazarán la imagen, dando un error de "error 3194" o "se negó a autorizar la imagen".
iTunes se comunicará con iBoot durante el proceso de actualización o restauración, asegurándose de que el firmware no se haya modificado a un firmware personalizado ("CFW"). iTunes no actualizará ni restaurará un dispositivo cuando sospeche que el archivo ha sido modificado.
Este es un proceso en cadena, antes de que se haya instalado el firmware, iBoot tiene que verificar iBoot, iBoot tiene que verificar el cargador de arranque, y así sucesivamente. No puede instalar versiones de iOS sin firmar, a menos que 1) tenga blobs SHSH2 y se hayan lanzado exploits o 2) explote el proceso en cadena.
Explotaciones y contramedidas
El requisito de SHSH Blobs para instalar en versiones de iOS sin firmar se puede omitir mediante un ataque de reproducción , guardando blobs mientras un firmware de iOS todavía está firmado y luego usándolos al instalar el firmware. Las versiones más recientes de iOS requieren más elementos, como un nonce válido, al guardar blobs SHSH. Guardar blobs para dispositivos que usan el SoC A12 o más reciente también requiere obtener un nonce coincidente para un generador de un dispositivo para guardar blobs válidos que se pueden usar más adelante en una restauración. Incluso con los blobs SHSH guardados correctamente, a veces todavía no es posible saltar a ciertas versiones de iOS debido a la incompatibilidad de SEP (Secure Enclave) entre versiones.
Las herramientas para guardar blobs SHSH para las versiones más recientes de iOS incluyen la aplicación blobsaver y la herramienta de línea de comandos tsschecker .
Para usar SHSH blobs para instalar una versión de iOS sin firmar en un dispositivo, se pueden usar herramientas como futurerestore (basado en idevicerestore) o sus GUI, lo que permite la especificación de archivos de firmware de iOS y SHSH blobs para ser usados en la restauración.
Métodos de derivación anteriores
Para iOS 3 y 4, los blobs SHSH estaban hechos de claves estáticas (como el tipo de dispositivo, la versión de iOS y ECID), lo que significaba que los blobs SHSH para una versión y dispositivo iOS específicos serían los mismos en cada restauración. Para subvertir ese sistema usando un ataque man-in-the-middle , el servidor solicita los blobs SHSH únicos de Apple para el dispositivo con jailbreak y almacena en caché esos blobs SHSH en los servidores, de modo que si un usuario cambia el archivo de hosts en una computadora para redirigir el Los blobs SHSH se comprueban en la caché en lugar de en los servidores de Apple, iTunes sería engañado para que revisara esos blobs SHSH almacenados en caché y permitiera que el dispositivo se restaurara a esa versión. [9] [10]
iOS 5 y versiones posteriores de iOS implementan una adición a este sistema, un número aleatorio (un nonce criptográfico ) en el "APTicket", [11] haciendo que ese simple ataque de repetición ya no sea efectivo. [12] [13]
Lanzado por primera vez en 2009, [14] [15] [ dudoso ] TinyUmbrella es una herramienta para encontrar información sobre blobs SHSH guardados en servidores de terceros, guardar blobs SHSH localmente, [16] y ejecutar un servidor local para reproducir blobs SHSH en engañar a iTunes para que restaure los dispositivos más antiguos a iOS 3 y 4. [17] [18] En junio de 2011, iH8sn0w lanzó iFaith, una herramienta que puede tomar blobs SHSH parciales de un dispositivo para su versión iOS instalada actualmente (limitada a iPhone 4 y dispositivos más antiguos). [19] [20] A finales de 2011, el iPhone Dev Team agregó funciones a redsn0w que incluyen la capacidad de guardar blobs SHSH con APTickets y unirlos en firmware personalizado para restaurar un dispositivo a iOS 5 o posterior. [21]
No siempre es posible reproducir blobs SHSH para dispositivos más nuevos (iPad 2 y posteriores), porque no hay exploits de ROM de arranque (nivel de hardware) disponibles para estos dispositivos. A partir de octubre de 2012, redsn0w incluye funciones para restaurar dispositivos más nuevos entre diferentes versiones de iOS 5, [22] pero no puede degradar dispositivos más nuevos de iOS 6 a iOS 5. [23] [24]
Ver también
Referencias
- ^ Stern, Zack (5 de julio de 2010). "Cómo hacer jailbreak a tu iPad y comenzar a realizar múltiples tareas de inmediato" . ITBusiness.ca . Consultado el 30 de diciembre de 2012 .
- ^ Asad, Taimur (30 de abril de 2010). "Guardar SHSH Blobs (ECID SHSH) de iPhone 3.1.3 y iPad 3.2" . Pastel de Redmond . Consultado el 30 de diciembre de 2012 .
- ^ Apple Inc. (mayo de 2012). "Seguridad de iOS" (PDF) . Apple Inc. Archivado desde el original (PDF) el 21 de octubre de 2012 . Consultado el 3 de diciembre de 2012 .
- ^ Nat Futterman (25 de mayo de 2010). "Jailbreak del iPad: lo que necesita saber" . Geek Tech . PCWorld . Consultado el 2 de agosto de 2011 .
- ^ Kumparak, Greg (27 de junio de 2011). "Apple intensifica su juego con iOS 5, hace que el jailbreak sea más difícil" . TechCrunch . Consultado el 30 de diciembre de 2012 .
- ^ Stefan Esser (marzo de 2012). "iOS 5: ¿Una pesadilla de explotación?" (PDF) . CanSecWest Vancouver . Consultado el 3 de diciembre de 2012 .[se necesita fuente no primaria ]
- ^ Adam Dachis (25 de abril de 2011). "Guarde SHSH de su iDevice para evitar perder la capacidad de hacer Jailbreak" . Lifehacker . Consultado el 2 de agosto de 2011 .
- ^ Smith, Gina (27 de septiembre de 2012). "Problemas de Apple iOS 6: guarde los blobs si necesita degradar" . Apple en la empresa . TechRepublic . Consultado el 30 de diciembre de 2012 .
- ^ a b Jay Freeman (saurik) (septiembre de 2009). "Almacenamiento en caché del servidor de firmas de Apple" . Saurik.com . Consultado el 3 de diciembre de 2012 .
- ^ Hoog, Andrew; Strzempka, Katie (2011). Análisis forense de iPhone e iOS: investigación, análisis y seguridad móvil para dispositivos iPhone, iPad e iOS de Apple . Elsevier. págs. 47–50. ISBN 9781597496599. Consultado el 3 de diciembre de 2012 .
- ^ Cheng, Jacqui (27 de junio de 2011). "iOS 5 beta obstaculiza las degradaciones del sistema operativo, jailbreak sin ataduras" . Bucle infinito . Ars Technica . Consultado el 30 de diciembre de 2012 .
- ^ Oliver Haslam (27 de junio de 2011). "iOS 5 detendrá la degradación de firmware SHSH en iPhone, iPad, iPod touch" . Pastel de Redmond . Consultado el 12 de noviembre de 2011 .
- ^ Levin, Jonathan (2012). Componentes internos de Mac OS X e iOS: al núcleo de Apple . John Wiley e hijos. pag. 214. ISBN 9781118222256. Consultado el 29 de diciembre de 2012 .
- ^ notcom (19 de septiembre de 2009). "TinyTSS - Todas las restauraciones de tu iPhone te pertenecen" . El paraguas de firmware . Consultado el 3 de diciembre de 2012 .[ fuente autoeditada? ]
- ^ notcom (20 de mayo de 2010). "TinyUmbrella - ¡TinyTSS unificado y el Firmware Umbrella en UNO!" . El paraguas de firmware . Consultado el 1 de enero de 2013 .
- ^ Brownlee, John (15 de noviembre de 2011). "TinyUmbrella actualizado para admitir la copia de seguridad de iPhone 4S y iOS 5.0.1 SHSH Blobs" . Cult of Mac . Consultado el 30 de diciembre de 2012 .
- ^ Sayam Aggarwal (26 de julio de 2010). "Antes de Jailbreak, extraiga las manchas SHSH de su iPhone con Umbrella" . Cult of Mac . Consultado el 3 de diciembre de 2012 .[ fuente no confiable? ]
- ^ Landau, Ted (22 de abril de 2011). "TinyUmbrella y iTunes 1013 Error Strike Again" . MacWorld . PCWorld . Consultado el 30 de diciembre de 2012 .
- ^ Goncalo Ribeiro (3 de junio de 2011). "Cómo guardar SHSH Blobs de cualquier firmware antiguo que se ejecute en su iPhone, iPad, iPod touch usando iFaith" . Pastel de Redmond . Consultado el 3 de diciembre de 2012 .
- ^ Morris, Paul (24 de diciembre de 2011). "Cydia ahora está guardando SHSH Blobs para el firmware iOS 5.0.1" . Pastel de Redmond . Consultado el 30 de diciembre de 2012 .
- ^ Jeff Benjamin (27 de septiembre de 2011). "Cómo unir sus blobs SHSH usando RedSn0w para crear firmware que siempre se puede degradar" . iDownloadBlog . Consultado el 3 de diciembre de 2012 .
- ^ iPhone Dev Team (octubre de 2012). "Restauración revitalización" . Blog del equipo de desarrollo . Consultado el 3 de diciembre de 2012 .
- ^ iPhone Dev Team (septiembre de 2012). "Blob-o-riffic" . Blog del equipo de desarrollo . Consultado el 3 de diciembre de 2012 .
- ^ Morris, Paul (14 de octubre de 2012). "Cómo restaurar iPhone 4S, iPad 3, iPad 2, iPod touch desde iOS 5.xa iOS 5.x usando Redsn0w" . Pastel de Redmond . Consultado el 30 de diciembre de 2012 .