¿Cómo es posible cargar sistemas operativos alternativos en un dispositivo móvil?

8

La idea general de una imagen de inicio firmada es evitar que se reemplace la imagen de inicio con algo personalizado o malicioso. Sin embargo, todo el proceso parece depender de un único punto de falla: la verificación de la firma de la imagen. El gestor de arranque deberá verificar que la imagen firmada ha sido firmada por la clave privada, que requiere que la clave pública se almacene ... en algún lugar .

Tal vez esté almacenado en un chip de memoria no volátil (por ejemplo, ROM chip). Tal vez se almacena en un sector súper secreto en el dispositivo de almacenamiento incorporado. (¿Qué otras alternativas hay?)

¿No es un chip ROM (realmente de solo lectura) la única forma, si no es posible soldar un nuevo chip en su lugar, para garantizar que el proceso de arranque no pueda alterarse? Si es así, ¿por qué los dispositivos móviles no se preocupan por mantener una buena retención de la imagen de arranque con estos chips? ¿Hay alguna razón técnica o es más una razón costo / beneficio?

Suponiendo que los fabricantes de dispositivos desean mantener cierta flexibilidad para alterar el proceso de arranque en caso de que se descubran errores, ¿cómo (intentan) proteger este código de arranque de lectura / escritura y / o el conjunto de claves públicas?

    
pregunta logicalscope 21.12.2011 - 00:32
fuente

1 respuesta

7

Para un inicio confiable (o inicio autentificado o inicio seguro o como quiera llamar) Para ello, necesita una raíz de confianza protegida por integridad. No necesita ser un sector "super-secreto", tiene que ser un sector "super-blindado". ROM encaja a la perfección.

En la práctica, a los fabricantes de dispositivos les gusta poner el menor código posible en la ROM, ya que no quieren dejar de actualizar el código unos meses antes de que se envíe el dispositivo. Por lo tanto, ese código generalmente no hace más que inicializar algunos dispositivos centrales (por ejemplo, poner la MMU en forma), cargar los primeros sectores desde un medio de almacenamiento, verificar su firma criptográfica contra una clave pública almacenada en la ROM y transferir la ejecución a ese código . Si la firma no coincide, el código ROM puede permitir al usuario cargar una imagen de arranque alternativa (generalmente a través de USB).

El primer código de arranque que no es ROM es a menudo considerablemente más complejo que el código ROM: generalmente necesita saber cómo administrar la memoria, acceder a varios dispositivos de almacenamiento, tal vez leer sistemas de archivos, tener al menos una interfaz de usuario rudimentaria y así sucesivamente. Entonces, en la práctica, todo ese código de buggy, y eso (o más tarde en la cadena de arranque) es cómo los iPhones se liberan. Algunos fabricantes, como Apple, están realmente preocupados por controlar la imagen de arranque; eso no significa que tengan éxito contra una comunidad determinada.

Además, incluso si la imagen de arranque firmada se ha mantenido, el sistema operativo en sí es demasiado complejo para soportar ataques por mucho tiempo. Firmar todo el sistema operativo no es práctico, ya que los usuarios de todos menos los teléfonos móviles y PDA más básicos esperan poder instalar sus propias aplicaciones (y los sistemas operativos tienden a tener orificios de raíz). Por lo general, el sistema operativo puede hacer casi lo que quiere, excepto que si sobrescribe ingenuamente la imagen de arranque, el dispositivo no arranca. Si desea ejecutar un sistema operativo diferente, es posible que pueda usar el sistema operativo original como un punto de salto desde el cual arranca su sistema operativo real.

La velocidad es otro factor: verificar la autenticidad de un cargador de arranque de 100kB es solo un problema en un teléfono inteligente moderno, pero verificar la autenticidad o la integridad de un sistema operativo de varios GB es demasiado lento de una vez. La verificación incremental también ralentiza las lecturas del disco y requiere soporte de sistema de archivos que no está disponible en este momento.

    
respondido por el Gilles 21.12.2011 - 02:20
fuente

Lea otras preguntas en las etiquetas