• Diventa Fan!
  • Seguici Twitter
  • Seguici su Google+

[iPhone] Jailbreak tethered e untethered: facciamo un po’ di chiarezza

Scritto in Hackintosh, iPhone, Sicurezza, Smartphone - Da Roberto De Santis - martedì 9 novembre 2010 - 30 Commenti

A volte riceviamo mail di utenti che ci chiedono quali sono le differenze tra un jailbreak tethered ed un untethered, qual è il migliore, e via discorrendo. Tutte le risposte riguardo jailbreak tethered ed unthered le trovate in questo articolo. Partiamo dal fatto che il jailbreak è un’operazione di hack che si effettua sul dispositivo. Ciò vuol dire che dietro questa pratica ormai comune a tutti, c’è un exploit che sfrutta qualche bug e quindi far credere all’iPhone che non sia stato installato niente di strano. Il tipo di jailbreak, tethered o untethered, nasce proprio da dove agisce l’exploit che si va ad utilizzare.

Jailbreak tethered

La parola inglese tethered significa legato, ed è proprio questa l’essenza dell’omonimo tipo di jailbreak. Infatti il dispositivo jailbroken tethered è legato al computer. Questo vuol dire che ogni volta che riavviate (o accendete) l’iPhone, avete bisogno del vostro personal computer con il jailbreak tool per poter fare in modo che il boot venga eseguito in maniera corretta. Se accendete un dispositivo jailbroken tethered senza connetterlo ad un computer con il jailbreak tool, andrà in Recovery Mode senza darvi la possibilità di usarlo.

Perchè tutto questo con il jailbreak tethered?

Il motivo di questa apparente assurda necessità di connettere l’iPhone al computer per poterlo riavviare è da ricercare nell’exploit usato dal jailbreak. Bisogna dire, innanzitutto, che iOs è un sistema organizzato in livelli, ognuno costruito su quello precedente (un po’ come lo standard OSI). Ad ogni livello, c’è una funzione di controllo della firma. In tal modo Apple si assicura che in ogni livello sia presente soltanto il software firmato (e quindi approvato da Apple) evitando elementi di terze parti.

Il livello più in basso di questa struttura stratificata è iBoot. Ogni dispositivo Apple funziona con un processo che è governato dal codice iBoot, lo stesso che inizia la sequenza di avvio del dispositivo. iBoot stesso ha una verifica della firma built-in per controllare l’originalità del software in esso presente. Il jailbreak tethered consiste nello sfruttare qualche difetto nel check della firma ed iniettando del codice che permette, quindi, di bypassare queste verifiche presenti in ogni livello ed installare anche software di terze parti. Il tutto, facendo credere che siano software originale (dato che bypassano la verifica).

Qual è il vantaggio del bootrom exploit?

Il bootrom exploit, quello di untethered, che agisce sull’iBoot del sistema, ha comunque un vantaggio. Se non altro, è quello che non può essere fixato. Almeno via software. Infatti, questo exploit è stato usato prima della release di iOs 3 e, una volta che Apple si è accorta del bug, non ha potuto fixarli sui modelli già venduti.

D’altro canto, ha fixato il problema nei dispositivi ancora da mettere in commercio, ovvero una nuova linea di iPhone 3G e, successivamente iPhone 3GS. Questi dispositivi contengono una versione patchata dell’iBoot, che quindi rendeva inutili i vecchi tentativi di jailbreak.

Successivamente, GeoHot rilasciò blackra1n, il quale usava un nuovo exploit riuscendo comunque ad eludere l’iBoot, ma con l’unico inconveniente di dover connettere il dispositivo al computer al momento dell’avvio. Il motivo per cui bisogna connettere l’iPhone al computer è che l’iBoot rileva inizialmente la presenza di software non firmato. Usando il jailbreak tool, viene effettuato un override in iBoot, in modo da bypassare quest’utlimo ed avviare il dispositivo.

Una soluzione per il jailbreak tethered

Quando fu rilasciato blackra1n, che allora era l’unico metodo per poter effettuare il jailbreak, bisognava fare attenzione a non far spegnere il dispositivo ed, eventualmente, ad avviarlo sempre con il computer connesso. Fu quindi introdotto un supporto, chiamato iDongle, che conesso al dispositivo quando bisognava avviarlo, bypassava automaticamente iBoot permettendo un avvio senza problemi del dispositivo.

Jailbreak untethered

Il jailbreak untethered, invece, non è nulla di tutto questo. Non si ha assolutamente bisogno di connettere il dispositivo al computer quando lo si vuole avviare. Inutile dire quanto sia più comodo e, senz’ombra di dubbio, migliore del jailbreak untethered. Questo tipo di jailbreak, quindi, bypassa interamente la sequenza di boot.