Considere el ejemplo de una unidad de control electrónico (ECU) que utiliza un software integrado estático tradicional. El gestor de arranque es un componente de software que se utiliza tanto para iniciar el arranque del software principal de la ECU, incluida la copia del software en la RAM, como para realizar cualquier comprobación del software antes del arranque. El gestor de arranque también es responsable de la actualización del software, recibiendo, comprobando y escribiendo el software actualizado en la memoria, normalmente en la memoria Flash. Por lo tanto, el término Flash Bootloader también se usa comúnmente.
¿Se utilizan los mismos cargadores de arranque en el desarrollo y la producción?
Por lo general, se puede utilizar el mismo gestor de arranque en el desarrollo de vehículos y las ECU asociadas y en la producción normal, con protecciones para garantizar que las ECU de producción tengan desactivadas muchas capacidades de desarrollo o ingeniería de cargadores de arranque. Durante el desarrollo de vehículos, a menudo es deseable eliminar los mecanismos de seguridad de los cargadores de arranque de producción para permitir una rápida implementación del software de desarrollo.
Gestor de arranque seguro
Cada vez más, se requiere que todos los cargadores de arranque sean seguros. Sin embargo, tradicionalmente se ha tratado de una distinción, que suele implementarse para proteger la funcionalidad relacionada con la seguridad, la protección y, a veces, el rendimiento.
Los cargadores de arranque suelen comprobar la memoria de software de la ECU en el arranque y el software recibido antes de una actualización de software y en la memoria después.
Los mecanismos suelen incluir:
- Autenticación del software recibido y/o presente en la memoria en el momento del arranque, a menudo utilizando un hash del binario del software para comprobar la corrección generada a partir de un proceso de compilación seguro de las versiones de software publicadas oficialmente.
- Autenticación del remitente mediante una semilla y una clave, protección de datos seguros dentro de la ECU mediante memoria segura y mapas de memoria para definir áreas accesibles/reescribibles.
Cargador de arranque dual
Algunas implementaciones de cargadores de arranque se dividen en dos partes, de ahí el término cargador de arranque dual. En este caso, el gestor de arranque principal no se puede actualizar, como parte de la protección del gestor de arranque. Esto se refiere al arranque del módulo y la actualización del gestor de arranque secundario. El gestor de arranque secundario se puede actualizar, a través de un proceso seguro, lo que permite modificaciones en el proceso de actualización de software, por ejemplo, el mapa de memoria, lo que permite que estos se bloqueen normalmente. Este tipo de gestor de arranque es menos común ahora debido a los nuevos métodos para asegurar el proceso de actualización utilizando hardware seguro integrado, por ejemplo, HSM (Hardware Secure Module).
Tenga en cuenta que este término es como el arranque dual, donde están disponibles bloques de dos arranques o memorias completas, lo que permite que se realice una actualización en la versión no utilizada mientras una versión está activa. Esto requiere memoria adicional en cada ECU que admita este método de actualización.
Capital Embedded Bootloader
Capital Embedded Bootloader admite actualizaciones fiables de la ECU durante el desarrollo, en la producción del vehículo y durante la vida útil del vehículo, a través de herramientas de diagnóstico conectadas o metodologías inalámbricas. El protocolo estandarizado ISO 14229 UDS se utiliza en una gama de buses de red de vehículos comunes, Ethernet, CAN/CAN-FD, LIN, FlexRay, y también es posible utilizar otros métodos como los protocolos de calibración ASAM. La ciberseguridad es un aspecto clave del flujo de actualización de software y las características que permiten la autenticación de software y las opciones de arranque seguro son parte de la solución. Para satisfacer los requisitos específicos de OEM (fabricantes de equipos originales) y MCU, se dispone de un amplio soporte para una amplia gama de proyectos de ECU.
¿Cuál es la diferencia entre OTA y FOTA?
La actualización OTA (over the air), o FOTA (firmware over the air), es un método para lograr la recepción de nuevo software para un dispositivo integrado, por ejemplo, una ECU automotriz, de manera remota, no a través de una herramienta de servicio conectada directamente en un taller. Esto puede requerir alguna capacidad de prueba de diagnóstico integrada en una ECU coordinada y/o capacidades de recuperación y autocomprobación en el propio gestor de arranque.