El kernel de iOS es de código abierto, da igual que Apple lo deje sin cifrar

El kernel de iOS es de código abierto, da igual que Apple lo deje sin cifrar

Rubén Velasco

Esta misma semana, Apple ha liberado una nueva actualización de iOS 10 para desarrolladores con la que permitir a estos tener una primera toma de contacto con su nuevo sistema operativo, preparar sus aplicaciones para la nueva versión y, sobre todo, permitirles que ayuden en la búsqueda de posibles fallos con el fin de depurarlo antes de distribuirlo a todos los usuarios de forma estable. Sin embargo, la última Developer Preview de iOS 10 ha llegado con una configuración inesperada que está dando mucho de qué hablar.

La última Developer Preview de iOS 10 ha llegado a los usuarios con el kernel sin cifrar. Tan pronto como los desarrolladores se dieron cuenta de ello empezaron a aparecer en la red múltiples mensajes indicando si se podía tratar de un error por Apple, un posible movimiento para mejorar la seguridad (y permitir, además, a hackers e investigadores encontrar vulnerabilidades) e incluso delirios sobre que ahora iOS es de código abierto.

¿Qué es el Kernel de Apple? iOS utiliza un kernel llamado XNU, acrónimo de «X is Not Unix». Este es el mismo kernel que utiliza Darwin, el sistema operativo libre de Apple. Desde la primera versión de iOS, todas las versiones del sistema operativo han estado utilizando versiones de Darwin:

  • de 1.0 a 3.1.3 -> Darwin 9.
  • 4.0 -> Darwin 10.
  • 5.0 -> Darwin 11.
  • 6.0 -> Darwin 12.
  • 7.o y 8.0 -> Darwin 14.
  • 9.0 -> Darwin 15.

Cualquiera puede descargar el código fuente de XNU, incluso el código fuente de Darwin, directamente desde los servidores de Apple. Una vez tengamos el código, podemos analizarlo, buscar vulnerabilidades e incluso compilarlo, aunque esta última tarea no es tan sencilla ya que las dependencias están hechas para que solo funcione en el hardware de Apple, aunque sí se ha conseguido portar en algunos casos.

XNU-Darwin de iOS en Nokia

Causas por las que el kernel de iOS 10 ha podido quedar sin cifrar

Este hecho puede deberse a varias razones, aunque, una de las principales es que, al no ser una versión estable del sistema operativo, a Apple no le ha dado mayor importancia, por lo que no se ha molestado en firmar el kernel. Sin embargo, en la versión estable siempre irá firmado para evitar que aplicaciones maliciosas puedan realizar cambios no deseados en él, más que nada por seguridad.

En segundo lugar, es posible que a la hora de compilar el SO haya dado un problema de firma, por lo que el kernel ha quedado sin cifrar por no repasar el log del compilador, sin embargo, sea como sea, que el kernel de iOS quede abierto no es nada nuevo, ya que iOS, y el resto de productos de Apple, son mucho más abiertos de lo que la mayoría piensa.

También podemos fiarnos de Apple y pensar que lo ha hecho a propósito para realizar pruebas de rendimiento de su sistema operativo, y es que un kernel sin firmar es bastante más rápido que uno firmado.

Aunque el kernel como tal sea de código abierto, hay varias capas por encima de él que son privativas de Apple y que, al final, son las que se encargan de la apariencia, el rendimiento, la seguridad, de evitar prácticas como el Jailbreak o de permitir a organizaciones como el FBI tener libre acceso a los datos almacenados en un smartphone.

Queremos agradecer a por las excelentes explicaciones y aclaraciones.

¿Sabías que el kernel utilizado por Apple en sus sistemas operativos es de código abierto?

Quizá te interese:

  • Resumen de la WWDC 2016: todo lo que Apple nos tenía preparado
1 Comentario