Prometheus y TSSChecker desarrollos recientes que debe conocer

Ha sido un período muy ocupado para el conjunto de herramientas de tihmstar desde el lanzamiento de Prometheus durante la convención 33c3. Tanto TSSChecker como Prometheus han visto algunos problemas, así como actualizaciones en el período intermedio, y este artículo lo pondrá al día con sus estados actuales..

Prometeo

Poco después de su lanzamiento, se comenzaron a informar varios problemas con la sección "futurerestore" de la herramienta Prometheus, que maneja el proceso real de actualización / degradación.

Errores del servidor

Los más comunes fueron los informes de errores del servidor al intentar utilizar la herramienta. Esto llevó a algunos a afirmar (incorrectamente) que Apple había desconectado completamente sus servidores TSS. Si bien no está completamente claro si hubo algún mantenimiento simultáneo del servidor o si fue algo relacionado con la codificación de la herramienta tihmstar que causó el error, esto parece haberse solucionado en las versiones más recientes.

Errores por defecto

Una segunda ocurrencia común fueron los errores "segfault", causados ​​por macOS que carece del soporte requerido de OpenSSL. Esto también se ha solucionado en las versiones más recientes de Prometheus, aclarando la mayoría de los usos fallidos de la herramienta que los usuarios habían experimentado. Ahora se están viendo informes de usos exitosos de la herramienta "futurerestore", sin embargo, con estas pruebas más amplias se ha descubierto un problema aún peor ...

Touch ID en iOS 10.1.1

Debido a que "futurerestore" no degrada la banda base SEP + como parte de su restauración (esto no es posible sin un exploit SEP), en su lugar las reemplaza con una versión actualmente firmada. En la actualidad, eso significa que se utiliza iOS 10.2 SEP + banda base cuando se restaura a iOS 10.1.1. Se pensó que las dos versiones eran lo suficientemente cercanas como para que esto no causara problemas, sin embargo, ha quedado claro a medida que más personas lo han intentado, mientras que la actualización / actualización a iOS 10.1.1 se completa con "futurerestore", deja los servicios de Touch ID no funcionan.

Sin duda, esto será un factor decisivo para la mayoría de los posibles usuarios de la herramienta, ya que Touch ID (y posiblemente otros servicios relacionados, como Apple Pay, aún no confirmados) son características esenciales para la mayoría.

Curiosamente, Luca Todesco ha comentado que una solución para este problema debería ser posible, pero no hay más información más allá de eso. Si es realmente posible, si ha comenzado a trabajar en ello o si tiene la intención de hacerlo, se desconoce por el momento. Por su parte, tihmstar ha dicho que no trabajará en el tema..

En general, un comienzo desigual para Prometheus, pero ahora se puede decir que la herramienta definitivamente funciona en principio, después de haber corregido sus errores fatales. Sin embargo, con la situación de Touch ID tal como es (no es un error sino una limitación inherente del método de degradación), no está claro cuántos usuarios estarán dispuestos a usarlo..

TSSChecker

La otra herramienta TSSChecker de Tihmstar, utilizada para guardar APTickets en su formato propietario .shsh2 para usar con Prometheus, también ha tenido dos obstáculos serios en los últimos días..

Problema 1: incompatibilidad iPhone 7 / Plus

El descubrimiento se hizo esta semana que el iPhone 7 y el iPhone 7 Plus usan un método diferente a otros dispositivos de 64 bits al crear generadores para su nonces. Si bien este problema no afecta a ningún otro dispositivo, significa que todos los blobs guardados con generadores para estos dos dispositivos son desafortunadamente inválidos. Hasta que tihmstar pueda descubrir la relación diferente que Apple está usando entre sus nonces y generadores, TSSChecker no podrá guardar blobs con generadores en iP7 (+).

Los blobs guardados con un nonce específico y, por lo tanto, sin generador, pueden no verse afectados, sin embargo, dado que el iP7 (+) no es susceptible al método de colisión nonce de Prometheus de todos modos, es dudoso qué uso tendrá este tipo de blob en términos de rebajas. Por ahora, los blobs iP7 (+) se pueden guardar con TSSChecker utilizando un nonce compuesto por un conjunto aleatorio de 32 bytes, siempre que use la versión más reciente de la herramienta. Es poco probable que estos blobs sean utilizables con Prometheus, aunque tihmstar ha dicho que aún pueden ser útiles con diferentes métodos en una fecha posterior..

Problema 2: BuildIdentities y blobs no válidos

Este problema es un poco más complicado de explicar y no afectará a todos por igual. Resulta que un cambio en los archivos IPSW en iOS 10 significa que muchos dispositivos usan el mismo IPSW. Esto significa que la información relativa a todos los dispositivos (BuildIdentities) se guarda en el manifiesto de compilación dentro de un solo IPSW. Como nunca solía ser así, TSSChecker solía tomar la primera BuildIdentity que encontró y solicitar un APTicket para eso. Sin embargo, ahora que hay muchas BuildIdentities en el IPSW, la primera entrada puede no haber sido la correcta para su dispositivo. Esto significa, lamentablemente, que si se seleccionó la BuildIdentity incorrecta, el APTicket generado por TSSChecker no era válido.

La versión más reciente de TSSChecker ha solucionado este error, y estos cambios también se incorporan a la versión en línea de 1Conan de la herramienta, TSSSaver. Sin embargo, ¿qué debe hacer con los archivos .shsh2 que ya ha guardado? Son validos?

Si tiene blobs de iOS 10.2, lo mejor que puede hacer es tirarlos a la basura y solicitar nuevos con la versión más reciente de TSSChecker o TSSSaver, ya que 10.2 todavía está firmado y puede obtenerlos fácilmente. Esto será más rápido y sencillo que verificar los que ya guardó para ese firmware en particular.

Con blobs para 10.1.1 y anteriores, obviamente no puede solicitar nuevos archivos .shsh2 ahora ya que los firmwares no están firmados. En este caso, su única opción es esperar que sus blobs sean algunos de los afortunados que obtuvieron la BuildIdentity correcta la primera vez y, en consecuencia, un APTicket válido. Esto se puede probar usando "img4tool" de tihmstar. Las instrucciones sobre cómo hacerlo están en su blog, pero pondré un tutorial tan pronto como el proceso sea bastante complicado..

Por ahora, recomiendo que cualquiera que haya guardado previamente blobs .shsh2 para iOS 10.2 los vuelva a guardar con el TSSChecker / TSSSaver más nuevo. Para los blobs más antiguos, no los elimine hasta que sepa con certeza que son malos. Como una historia esperanzadora, revisé la mía y descubrí que tanto los blobs de mi iPhone 6 como de mi iPhone SE eran correctos, sin embargo, mis blobs de iPhone 5s no eran válidos.

¡Buena suerte con tu re-ahorro y verificación! Si decide verificar sus blobs existentes con "img4tool", avíseme qué dispositivos tenían blobs buenos / malos. Será importante ver si siempre se trata de dispositivos específicos, o si es más complicado que eso. Asegúrese de que en todos los casos esté descargando las versiones más recientes de las herramientas de tihmstar para asegurarse de que no se sigan produciendo los mismos problemas.