¿Cómo evita iOS que se ejecute un código no autorizado?

2

Me estoy preguntando. ¿Cómo evita iOS que alguien ejecute código en su dispositivo que no sea de Apple o que no se haya descargado de la App Store?

También, ¿qué hace exactamente un Jailbreak para permitir que se ejecute código no autorizado en un dispositivo iOS?

¿También son repetibles los pasos para hacer que Jailbreak sea un dispositivo cuando se lanza una nueva versión de iOS? Me preguntaba porque cuando se lanza una nueva versión de iOS, generalmente hay un Jailbreak en unas pocas horas.

Escuché que tenía algo que ver con el certificado de seguridad que Apple le da a cada uno de sus desarrolladores, pero no sé nada más que eso.

    
pregunta Francis 13.08.2014 - 15:27
fuente

2 respuestas

7

Una vez que se inicia una computadora, el sistema operativo recibe un control exclusivo sobre los recursos del sistema (acceso al kernel). Después de que esto ocurra, si un programa quiere ejecutarse, debe pedirle al sistema operativo que lo deje funcionar. Antes de que iOS permita que se ejecute una aplicación, examina el código que se va a cargar en la memoria desde el binario y lo compara con un valor firmado que demuestra al sistema operativo que Apple ha revisado el contenido del binario y le ha dado el color verde. ligero. Solo después de que esta comprobación sea exitosa, el código puede ejecutarse.

Jailbreaking elimina esta comprobación al alterar el sistema operativo para que vea todas las aplicaciones como válidas y les permita ejecutarse. Dado que Apple no firmará una aplicación que realice estos cambios, las vulnerabilidades deben usarse en un código firmado de alto privilegio (normalmente el propio sistema operativo) para permitir que se introduzcan los cambios necesarios en el sistema.

El mismo tipo exacto de seguridad también podría implementarse en otros dispositivos (de hecho, es opcionalmente se puede activar en Android), sin embargo, no tener la opción de desactivarlo es altamente polémico en ese momento. Ya no es dueño de su propio hardware, ya que alguien más le está diciendo lo que puede y no puede hacer con él. Es bueno para evitar que las personas instalen accidentalmente cosas malas, pero mal desde la perspectiva de la libertad del usuario (que es la razón principal por la que no hemos visto esta tecnología expandirse a los escritorios a pesar de que es técnicamente posible hacerlo). / p>     

respondido por el AJ Henderson 13.08.2014 - 19:21
fuente
5

Una aplicación debe ser código firmado con un certificate emitido por Apple. Cada vez que se ejecuta una aplicación, esta firma se verifica utilizando su clave pública. Mientras la cadena de certificados se remonta a Apple como Autoridad de certificación, la aplicación se autentica. Más información sobre la firma de código. Esto es un poco de una generalización. guía detallada de Mac Developer Library

Jailbreaking ofrece una escalada de privilegios, que puede permitir la instalación de aplicaciones de terceros no autorizadas . Es básicamente hackear iOS. Generalmente, el proceso se realiza a través de algún tipo de vulnerabilidad en iOS que se explota para otorgarle estos privilegios más altos. El proceso sigue siendo el mismo a menos que Apple corrija la vulnerabilidad en una actualización.

Cuando aparece una nueva versión de iOS, a veces todavía existe la vulnerabilidad. A veces, el proceso solo cambia ligeramente y el código puede reutilizarse a partir de una técnica anterior de jailbreak. Simplemente todo depende de la vulnerabilidad que está siendo explotada.

    
respondido por el RoraΖ 13.08.2014 - 15:53
fuente

Lea otras preguntas en las etiquetas