Considere el ejemplo de una unidad de control electrónico (ECU) que utiliza software integrado estático tradicional. El Bootloader 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 en el software antes del arranque. El bootloader también es responsable de actualizar el software, recibir, verificar y escribir el software actualizado en la memoria, generalmente memoria Flash. Por lo tanto, el término Flash Bootloader también se usa comúnmente.
¿Se utilizan los mismos bootloaders en desarrollo y producción?
Por lo general, el mismo gestor de arranque se puede utilizar 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 muchas capacidades de desarrollo o cargadores de arranque de ingeniería desactivadas. Durante el desarrollo del vehículo, 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.
Cargador de arranque seguro
Cada vez más, se requiere que todos los cargadores de arranque sean seguros. Sin embargo, tradicionalmente esto ha sido una distinción, generalmente implementada para proteger la funcionalidad relacionada con la seguridad y, a veces, el rendimiento.
Los cargadores de arranque comúnmente comprueban la memoria del software de la ECU al inicio y reciben el software antes de una actualización de software y en la memoria después.
Los mecanismos comúnmente incluyen:
- Autenticación del software recibido y/o presente en la memoria en el momento del arranque, a menudo usando un hash del binario de software para verificar la corrección generada a partir de un proceso de compilación seguro de versiones de software lanzadas oficialmente.
- Autenticación del remitente mediante una semilla y una clave, protecciones de datos seguros dentro de la ECU usando memoria segura y mapas de memoria para definir áreas accesibles o regrabables.
Cargador de arranque dual
Algunas implementaciones de bootloaders están en dos partes, de ahí el término “bootloader dual”. En este caso, el bootloader principal no se puede actualizar, como parte de la protección del bootloader. Esto se refiere al arranque del módulo y la actualización del bootloader secundario. El bootloader secundario se puede actualizar, a través de un proceso seguro, permitiendo modificaciones en el proceso de actualización de software, por ejemplo, mapa de memoria, permitiendo que estos se bloqueen normalmente. Este tipo de cargador 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 arranque dual, donde hay dos bloques de arranque o memorias completas disponibles, 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 soporta este método de actualización.
Capital Embedded Bootloader
Capital Embedded Bootloader admite actualizaciones confiables de ECU durante el desarrollo, en la producción de vehículos y durante la vida útil del vehículo, a través de herramientas de diagnóstico conectadas o metodologías aéreas. El protocolo estándar ISO 14229 UDS se utiliza en una variedad 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 Cybersecurity es un aspecto clave del flujo de actualización del 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, hay un amplio soporte disponible para una amplia gama de proyectos de ECU.
¿Cuál es la diferencia entre OTA y FOTA?
La actualización OTA (por aire), o FOTA (firmware por aire), es un método para lograr la recepción de nuevo software para un dispositivo integrado, por ejemplo, ECU automotriz, de manera remota, no a través de una herramienta de servicio conectada directamente en un taller. Esto puede requerir cierta capacidad de probador de diagnóstico integrado en una ECU de coordinación y/o capacidades de recuperación y autoprueba en el propio cargador de arranque.