Última hora: Keyfactor adquiere InfoSec Global y CipherInsights | Soluciones integrales para descubrimiento, control y agilidad

¿Qué es el arranque seguro? Es donde empieza la seguridad de IoT

Internet de los objetos (IoT)

Los dispositivos conectados IoT se encuentran en todos los aspectos de la vida digital moderna. Desde vehículos autónomos y conectados a dispositivos médicos, pasando por contadores inteligentes y relojes inteligentes. Los datos generados y los procesos controlados por estos dispositivos nunca han sido mayores.

Debido a su importancia, la necesidad de dar prioridad a la seguridad de los dispositivos integrados en IoT es esencial para la integridad y fiabilidad de los datos y servicios.

El primer paso para garantizar la seguridad en un sistema embebido IoT se conoce como Arranque Seguro. La seguridad de IoT debe basarse en la creación de una raíz de confianza, que proporcione una base segura sobre la que se pueda construir el resto del sistema de forma segura. Debemos asegurarnos de que esta raíz de confianza es realmente fiable para minimizar un posible ataque y sus consecuencias.

¿Qué es el arranque seguro?

El arranque seguro es el proceso en el que las imágenes y el código de arranque del sistema operativo se autentican en hardware antes de que se autorice su uso en el proceso de arranque. hardware está preconfigurado para autenticar el código utilizando credenciales de seguridad de confianza.

En otras palabras, Secure Boot garantiza que la tecnología de arranque y el sistema operativo software son la versión legítima del fabricante y no han sido alterados o manipulados por ningún actor o proceso malicioso.

¿Por qué es importante Secure Boot?

Secure Boot es esencial para evitar que un adversario comprometa un sistema operativo o instale un gestor de arranque diferente en el dispositivo IoT .

La proliferación de dispositivos IoT integrados en sistemas críticos para la empresa hace que el uso de Secure Boot sea un factor importante para proteger estos dispositivos y salvaguardar su funcionamiento fiable. Cualquier código malicioso insertado en el dispositivo podría convertirlo en parte de una red de bots o podría utilizarse como plataforma de lanzamiento de ataques dirigidos a otros sistemas más sensibles.

Por ejemplo, un adversario podría penetrar en un dispositivo inseguro y sustituir un archivo ejecutable legítimo por otro que contenga malware. Si el dispositivo no está protegido con Secure Boot, el código malicioso se ejecutará en el siguiente reinicio y el dispositivo quedará comprometido.

A través del código malicioso, que ahora se ejecuta en el dispositivo, el actor malicioso podría manipular los datos recogidos por el dispositivo o podría hacer que cualquier función realizada por el dispositivo fuera ilegítima o no fiable. Con un proceso de arranque seguro, las comprobaciones de seguridad durante el reinicio identificarían el archivo ejecutable no autorizado, impedirían su ejecución e iniciarían acciones correctivas.

¿Cómo funciona?

El proceso de Arranque Seguro pasa por una serie de pasos que garantizan la integridad y autenticidad de la instalación para que el dispositivo funcione de forma correcta y segura. Estos pasos se muestran en la siguiente imagen:

SecureBoot

Figura 1: Proceso de arranque seguro. Fuente: Electronic Design.

Verificar que el gestor de arranque es auténtico es crucial para asegurar y ejecutar el resto del proceso de arranque. La verificación del archivo ejecutable del gestor de arranque se realiza utilizando claves públicas/privadas. Durante el desarrollo seguro del código del gestor de arranque, éste se firma digitalmente con la clave privada del fabricante.

Cuando se va a instalar el firmware del cargador de arranque en el dispositivo, se comprueba con la clave pública incrustada en el dispositivo para confirmar que es auténtico. El mismo proceso se repite cada vez que se inicia el dispositivo o cuando es necesario instalar una actualización.

Una vez que se comprueba que el archivo del cargador de arranque es auténtico, el proceso de arranque seguro comprueba la validez del sistema operativo y de otras aplicaciones funcionales. El código firmado de la aplicación se verifica con la clave pública incrustada para garantizar que es auténtico. Si el sistema operativo y las aplicaciones están asegurados, pueden empezar a funcionar.

En resumen, el proceso de arranque del dispositivo se inicia con un archivo bootloader de confianza y cada fase se ejecuta sólo después de que se haya verificado la autenticidad de la fase anterior y se haya iniciado con éxito.

Retos del arranque seguro

La base del proceso de arranque seguro son las claves raíz asociadas al dispositivo que se utilizan para crear un certificado de identidad de dispositivo único. Durante el aprovisionamiento del dispositivo, debe crearse un par de claves dentro del dispositivo utilizando la generación de claves en el dispositivo (ODKG). A continuación, se envía una solicitud de firma de certificado (CSR) a la autoridad de certificación (CA) para crear un certificado firmado que se instala en el dispositivo. . La seguridad de estas claves de dispositivo es el factor clave del proceso de arranque seguro.

Por tanto, el reto más esencial es mantener la seguridad de estas claves. El procesador del dispositivo coteja la imagen de arranque con su clave almacenada. Si ambas coinciden, se ejecuta la imagen de arranque. Las coincidencias con la clave raíz en la CPU conforman la cadena raíz que enciende el funcionamiento del dispositivo IoT . Si las claves están comprometidas, todo el proceso de Secure Boot está comprometido.

Se crean claves privadas únicas por dispositivo que nunca salen del dispositivo de borde. Estas claves privadas se vuelven a crear cuando caduca el certificado del dispositivo, y el proceso puede repetirse durante toda la vida útil del dispositivo IoT .

Otra cuestión que los usuarios de dispositivos IoT deben tener en cuenta es que el proceso Secure Boot no bloquea todo el sistema. Sólo asegura el sistema operativo software. Esto es de gran importancia, ya que si alguien inserta un malware que se ejecuta sobre el sistema operativo, aún puede comprometer el dispositivo.

Mejores prácticas para implementar Secure Boot

Para proteger el proceso de arranque seguro y, por lo tanto, los dispositivos, se recomienda seguir estas prácticas recomendadas

Asegurar el proceso

Para proteger el proceso de arranque seguro, tendrá que proteger todos los procesos asociados. La clave para ello es utilizar una capacidad de generación de claves en el dispositivo, de modo que la clave privada permanezca siempre en el dispositivo protegido. Un compromiso de estas claves resultaría en el compromiso del proceso global, por lo que la protección de la clave privada del dispositivo es crítica.

Utilice un cifrado seguro

El cifrado es la base de Secure Boot. Asegúrese de que sus algoritmos de cifrado están actualizados y son adecuados para su propósito. Considere también cómo puede actualizar sus algoritmos de cifrado en sus dispositivos de borde a medida que la criptografía cambia con el tiempo.

Proteja su código

Para que el arranque seguro sea eficaz, el código utilizado en el cargador de arranque, el sistema operativo y otras aplicaciones funcionales debe desarrollarse de forma segura y comprobarse minuciosamente para detectar cualquier fallo de seguridad. El código debe firmarse siempre con un certificado de firma de código, y el acceso a ese certificado debe controlarse y supervisarse como parte del proceso de desarrollo de software .

Proteja su código

Para proteger el proceso de arranque seguro, tendrá que proteger todos los procesos asociados. La clave para ello es utilizar una capacidad de generación de claves en el dispositivo, de modo que la clave privada permanezca siempre en el dispositivo protegido. Un compromiso de estas claves resultaría en el compromiso del proceso global, por lo que la protección de la clave privada del dispositivo es crítica.

Utilice una autenticación segura

Para mejorar la seguridad del dispositivo IoT , el código cargado debe estar siempre autenticado. Secure Boot comprueba la firma del código, y cualquier imagen firmada es considerada segura por el procesador. Además, debe asegurarse de que cada componente de código se llama a la biblioteca de Secure Boot en el procesador.

Confirmar el proceso de autenticación

Por último, es esencial garantizar que el proceso de autenticación no se interrumpa y que cada fase del proceso de arranque del código se autentique correctamente antes de pasar a la siguiente.

La plataforma de identidad Keyfactor IoT

Keyfactor Control ofrece una solución completa y escalable para la identidad IoT , desde una raíz de confianza segura hasta API e integraciones flexibles. Nuestra plataforma ofrece una serie de funciones de seguridad que incluyen:

  • Aprovisionamiento y ciclo de vida de identidades: Implante, gestione y actualice certificados digitales en todos sus dispositivos conectados, desde el aprovisionamiento y la puesta en servicio sobre el terreno hasta la renovación y la revocación.
  • Raíz de confianza segura: Ejecute su PKI en sus instalaciones, en la nube o como servicio con una PKI dedicada alojada en la nube, creada específicamente para su implantación en IoT y gestionada por nuestro equipo de expertos.
  • Firma segura de firmware: Obtenga una herramienta centralizada para asegurar las operaciones de firma de código a escala y habilite actualizaciones OTA de firmware seguras e implemente Secure Boot.
  • IoT SDK: Proporcione a los desarrolladores un SDK y un C-Agent flexibles y disponibles en open-source para implementar funciones personalizadas en los dispositivos, como la generación de claves, el almacenamiento de claves y la verificación de firmas digitales.

 

Puede profundizar más en la seguridad de sus dispositivos IoT leyendo este artículo técnico sobre por qué PKI es la solución ideal para proteger los dispositivos IoT .