0 0
0 0
Read Time:3 Minute, 6 Second

Carga de arranque CAN segura

Es bastante común que los dispositivos con interfaz CAN también admitan la actualización de su firmware a través de la interfaz CAN. En el pasado, la protección de seguridad para estos cargadores de arranque solía ser mínima, ya que la red CAN era principalmente una red «cerrada». Iniciar una actualización de firmware solo fue posible con acceso físico a la red.

Hoy en día, cada vez más redes CAN cuentan con acceso remoto para admitir funciones de diagnóstico o minería o acceso de datos de IoT. Esto brinda a los intrusos vectores de ataque adicionales y los ataques de ransomware integrado (enlace al artículo del blog) pueden convertirse en una realidad, si el proceso de carga de arranque no está protegido adecuadamente.

CANcrypt se puede utilizar para agregar una capa de seguridad adicional a las implementaciones del cargador de arranque basado en CAN o CAN-FD. Las aplicaciones que admiten la actualización de firmware a través de CAN (-FD) pueden usar diferentes niveles de seguridad. Tradicionalmente, la primera capa consiste en cifrar y autenticar el archivo de actualización de firmware transferido al microcontrolador que recibe el nuevo código. Una capa de seguridad CANcrypt adicional asegura que el host que se comunica con el cargador de arranque en el nivel CAN (-FD) esté autorizado para realizar la actualización. Esto asegura que solo un host autorizado pueda activar el cargador de bocina y borrar la memoria Flash.

Carga de arranque CAN-FD segura con NXP LPC54618

Nuestra implementación segura del cargador de arranque utiliza dos claves simétricas para proteger tanto el código como el proceso de activación del cargador de arranque por separado. El fabricante usa una clave de protección de código para encriptar y autenticar el firmware (aquí usando AES-GCM). Se utiliza una clave de conexión CANcrypt adicional para conectar una utilidad de actualización autorizada al cargador de arranque. Esto permite un nivel de protección adicional, ya que solo un integrador de sistema autorizado, un técnico o una utilidad pueden activar el gestor de arranque en primer lugar.

Las claves iniciales, el cargador de arranque y el firmware deben programarse en un entorno seguro y confiable:

  • En la producción inicial del dispositivo, se programan el gestor de arranque y las claves de protección de código predeterminado y de conexión CANcrypt. Esto debe suceder en un entorno seguro. Se puede utilizar la utilidad de programación Flash Magic.
  • El firmware original se puede programar al mismo tiempo.

El proceso de actualización del firmware ahora requiere los siguientes pasos:

  • El fabricante genera un nuevo archivo de actualización de firmware utilizando una utilidad de cifrado de firmware. Esto utiliza la clave de protección de código (debe coincidir con la clave almacenada en el dispositivo de destino). NOTA: Si la clave es desconocida: cada clave simétrica también tiene una ID de clave pública, esta ID de clave pública se puede leer desde el cargador de arranque y luego ser utilizada por el fabricante para reconocer la clave coincidente.
  • El integrador del sistema o el técnico de servicio o la «tarea» que activa el cargador de arranque debe
    • conocer la clave de conexión CANcrypt (podría ser reemplazada por el integrador del sistema o el constructor en el momento de la primera instalación del dispositivo)
    • tener una copia del archivo de actualización de firmware encriptado
  • El cargador de arranque se activa mediante una conexión CANcrypt basada en la clave de conexión CANcrypt
  • Una vez que se activa el gestor de arranque, el archivo de actualización del firmware se transfiere al gestor de arranque y se actualiza al dispositivo.
  • La actualización del firmware solo se completa si el archivo de actualización del firmware está correctamente autenticado con la clave de protección de código
Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %