In che modo iOS impedisce l'esecuzione di codice non autorizzato?

2

Mi sto solo chiedendo. In che modo iOS impedisce a qualcuno di eseguire codice sul proprio dispositivo che non è di Apple o scaricato da App Store?

Inoltre, cosa fa esattamente un jailbreak per consentire l'esecuzione di codice non autorizzato su un dispositivo iOS?

Anche i passaggi per il jailbreak di un dispositivo ripetibili quando viene rilasciata una nuova versione di iOS? Mi chiedevo perché quando viene rilasciata una nuova versione di iOS, di solito c'è un jailbreak in poche ore.

Ho sentito che ha a che fare con il certificato di sicurezza che Apple dà a ciascuno dei suoi sviluppatori, ma non ne so niente di più.

    
posta Francis 13.08.2014 - 15:27
fonte

2 risposte

7

Una volta avviato il computer, il sistema operativo viene dato vicino al controllo esclusivo sulle risorse del sistema (accesso al kernel). Dopo ciò, se un programma vuole essere eseguito, deve chiedere al sistema operativo di lasciarlo funzionare. Prima che iOS consenta l'esecuzione di un'applicazione, esamina il codice che verrà caricato nella memoria dal binario e lo confronta con un valore firmato che dimostra al sistema operativo che Apple ha rivisto il contenuto del file binario e gli ha dato il verde luce. Solo dopo che questo controllo ha avuto esito positivo è consentito il codice da eseguire.

Jailbreaking rimuove questo controllo alterando il sistema operativo in modo tale da vedere tutte le applicazioni valide e consentirne l'esecuzione. Poiché Apple non firmerà un'applicazione che apporta queste modifiche, gli exploit devono essere utilizzati in codice con firma ad alto privilegio (normalmente il sistema operativo stesso) per consentire l'inserimento delle modifiche necessarie nel sistema.

Lo stesso identico tipo di sicurezza potrebbe essere implementato anche su altri dispositivi (infatti, è opzionalmente possibile attivarlo su Android) tuttavia, non avendo la possibilità di disattivarlo è molto controverso come a quel punto non possiedi più il tuo stesso hardware dato che qualcun altro ti sta dicendo cosa puoi e non puoi fare con esso. È buono per impedire alle persone di installare accidentalmente cose cattive, ma negative dal punto di vista della libertà dell'utente (che è la ragione principale per cui non abbiamo visto questa tecnologia espandersi sui desktop nonostante sia tecnicamente possibile farlo).

    
risposta data 13.08.2014 - 19:21
fonte
5

Un'app deve essere codice firmato con uno sviluppatore certificato rilasciato da Apple. Ogni volta che un'app viene eseguita, questa firma viene verificata utilizzando la sua chiave pubblica. Finché la catena di certificati viene ricondotta ad Apple come autorità di certificazione, l'app viene autenticata. Ulteriori informazioni su Code Signing. Questo è un po 'di generalizzazione. Guida dettagliata dalla libreria per sviluppatori Mac

Jailbreaking fornisce l'escalation dei privilegi, che può abilitare l'installazione di applicazioni di terze parti non autorizzate . Fondamentalmente sta hackerando iOS. Generalmente il processo viene eseguito tramite un qualche tipo di vulnerabilità in iOS che viene sfruttato per darti questi privilegi più elevati. Il processo rimane lo stesso a meno che Apple non corregge la vulnerabilità in un aggiornamento.

Quando esce una nuova versione di iOS, a volte la vulnerabilità esiste ancora. A volte il processo cambia leggermente e il codice può essere riutilizzato da una precedente tecnica di jailbreak. Tutto dipende solo dalla vulnerabilità che viene sfruttata.

    
risposta data 13.08.2014 - 15:53
fonte

Leggi altre domande sui tag