Supongamos que tienes una unidad de control electrónico (ECU) que utiliza el típico software integrado estático. El bootloader es un componente de software que se utiliza para iniciar el software principal de la ECU, incluida la copia del software en la RAM, así como para efectuar cualquier comprobación del software antes del inicio. También se ocupa de actualizar el software. Recibe, comprueba y escribe el software actualizado en la memoria, normalmente la memoria flash. Por ese motivo, en general también se utiliza el término flash bootloader.
¿Se utilizan los mismos bootloaders en desarrollo y en producción?
En líneas generales, se puede utilizar el mismo bootloader en el desarrollo de vehículos, las ECUs asociadas y la producción normal, con protecciones para asegurar que las ECUs de producción tengan desactivadas muchas funcionalidades de los bootloaders de desarrollo o ingeniería. Durante el desarrollo de un vehículo, a menudo es conveniente eliminar los mecanismos de seguridad de los bootloaders de producción para permitir una rápida implementación del software de desarrollo.
Bootloader seguro
Cada vez más se exige que todos los bootloaders sean seguros. Sin embargo, siempre se ha tratado de una distinción, en general implementada para preservar funcionalidades relativas a la seguridad, la protección y, a veces, el rendimiento.
Los bootloaders suelen comprobar la memoria de software de la ECU al iniciarse y el software recibido antes de una actualización de software y, después, en la memoria.
Los mecanismos suelen incluir:
- Autenticación del software recibido o presente en la memoria al iniciarse, con frecuencia mediante un hash del binario del software para comprobar su corrección, generado a partir de un proceso de compilación seguro de versiones de software publicadas oficialmente.
- Autenticación del remitente mediante un originador y una clave, protección de los datos dentro de la ECU mediante una memoria segura y mapas de memoria para definir las zonas accesibles/reescribibles.
Bootloader dual
Algunas implementaciones de bootloaders constan de dos partes; por ese motivo, se habla de bootloader dual. En este caso, el bootloader primario no se puede actualizar, como parte de la seguridad del bootloader. Se ocupa del inicio del módulo y la actualización del bootloader secundario. El bootloader secundario puede actualizarse, mediante un proceso seguro, y posibilitar modificaciones en el proceso de actualización del software, como el mapa de memoria, y permitir que estos se bloqueen normalmente. En la actualidad, este tipo de bootloader es menos común debido a los nuevos métodos para asegurar el proceso de actualización mediante hardware seguro integrado; por ejemplo, HSM (Hardware Secure Module).
Este término equivale al inicio dual, en el que se dispone de dos bloques de inicio, o memorias completas, que permiten que se efectúe una actualización en la versión no utilizada mientras una versión está activa. 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, la producción y durante la vida útil del vehículo mediante herramientas de diagnóstico conectadas o metodologías inalámbricas. El protocolo normalizado ISO 14229 UDS se utiliza en una serie de buses de red de vehículos comunes, Ethernet, CAN/CAN-FD, LIN, FlexRay. También es posible utilizar otros métodos, como los protocolos de calibración ASAM. La ciberseguridad es un aspecto clave del flujo y las funciones de actualización de software, lo que permite incluir la autenticación de software y las opciones de inicio seguro como parte de la solución. Para satisfacer los requisitos de OEMs y MCU, ofrecemos una amplia compatibilidad para una gran variedad de proyectos de ECU.
¿Cuál es la diferencia entre OTA y FOTA?
La actualización OTA (inalámbrica) o FOTA (firmware inalámbrico) es un método destinado a lograr la recepción de nuevo software para un dispositivo integrado, como la ECU de un automóvil, de forma remota, desde una herramienta de servicio conectada en una planta de producción. Esto puede requerir alguna funcionalidad de comprobación de diagnóstico integrada en una ECU coordinadora, o bien funcionalidades de recuperación y autocomprobación en el propio bootloader.