Inicio Artículos Cómo garantizar la seguridad de los sistemas integrados mediante DSC y MCU

Cómo garantizar la seguridad de los sistemas integrados mediante DSC y MCU

Por Stephen Evanczuk Colaboración de Editores de DigiKey de América del Norte

Con la migración al Internet de las cosas (IoT), la seguridad ha dejado de ser una función opcional en las aplicaciones integradas para convertirse en una capacidad imprescindible para garantizar la integridad del sistema. Para responder a una creciente matriz de especificaciones de seguridad, los desarrolladores necesitan soluciones que no solo se ajusten a los requisitos de las aplicaciones en cuanto a bajo consumo o alto rendimiento, sino que también puedan ofrecer funciones de seguridad basadas en hardware, como autenticación, cifrado, almacenamiento seguro e inicio seguro.

Este artículo ofrece una breve introducción a los principios de la seguridad integrada. A continuación, muestra cómo los desarrolladores pueden utilizar los controladores de señal digital (DSC) de alto rendimiento de Microchip Technology y las unidades de microcontroladores (MCU) PIC24F de bajo consumo, junto con los dispositivos de seguridad especializados de Microchip, para satisfacer la demanda emergente de seguridad integrada estricta.

La seguridad integrada se basa en cuatro principios fundamentales

Conectados a la Internet pública, los productos inteligentes pueden unirse en sofisticadas aplicaciones que pocos productos independientes pueden igualar. Sin embargo, la amenaza de ciberataques que utilizan esas mismas vías de conectividad no solo limita potencialmente el valor de los productos inteligentes, sino que también expone a esos productos, a las aplicaciones asociadas y a sus usuarios a fuentes de amenazas aparentemente infinitas.

Además de enfrentarse a la continua demanda de ciberseguridad a nivel de sistema por parte de los consumidores, los desarrolladores deben tener en cuenta cada vez más las especificaciones de seguridad de las organizaciones nacionales y regionales. Dos de las especificaciones más influyentes, la europea ETSI EN 303 645, «Cyber Security for Consumer Internet de las cosas: Requisitos básicos», y la estadounidense NIST IR 8259, «Foundational Cybersecurity Activities for IoT Device Manufacturers», sugieren que las prácticas de ciberseguridad dependen de cuatro principios clave:

  • Uso de contraseñas únicas
  • Disponibilidad de almacenamiento seguro en el dispositivo para parámetros de seguridad sensibles.
  • Comunicación segura mediante autenticación mutua y comunicación cifrada
  • Capacidad para garantizar la integridad y autenticidad del firmware mediante el arranque seguro y la actualización segura del firmware.

Ofrecer sistemas basados en estos principios básicos requiere el uso de una plataforma de confianza que impida a los piratas informáticos inyectar código comprometido que altere las comunicaciones, el almacenamiento, el firmware o incluso los propios mecanismos de seguridad.

Las plataformas de confianza ayudan a garantizar la seguridad construyendo la seguridad a nivel de sistema desde cero utilizando mecanismos de seguridad inmutables basados en hardware. Aunque el concepto es sencillo, la implantación de la seguridad a nivel de sistema ha sido todo un reto, ya que un fallo de seguridad en cualquier parte del sistema puede dar pie a un ciberataque. Mediante el uso de los DSC dsPIC33C de alto rendimiento y las MCU PIC24F de bajo consumo de Microchip Technology, en combinación con los dispositivos de seguridad complementarios de Microchip, los desarrolladores pueden implantar más fácilmente diseños embebidos que garanticen la seguridad a nivel de sistema.

Cumplimiento de los requisitos de potencia y rendimiento

Los dispositivos de las familias MCU dsPIC33C DSC y PIC24F de Microchip, diseñados para soportar una amplia gama de casos de uso, combinan plataformas de ejecución robustas con capacidades específicas de aplicación, incluido un extenso complemento de periféricos integrados analógicos, de control de forma de onda y de comunicaciones. De hecho, utilizando la modulación por ancho de pulsos (PWM) múltiple, los amplificadores de ganancia programables (PGA), los convertidores de analógico a digital (ADC) y otros periféricos de un DSC dsPIC33C, los desarrolladores pueden implementar sistemas complejos con un mínimo de componentes adicionales, necesitando normalmente sólo los dispositivos de potencia necesarios en cualquier diseño de este tipo. Un ejemplo es el uso del DSC mononúcleo DSPIC33CK512MP608 para implementar un diseño de sistema de alimentación ininterrumpida (SAI) fuera de línea (Figura 1).

Diagrama del DSC mononúcleo DSPIC33CK512MP608 de Microchip (haga clic para ampliar)Figura 1: Al igual que otros DSC dsPIC33C, el DSC mononúcleo DSPIC33CK512MP608 integra un amplio conjunto de periféricos, lo que simplifica el diseño de sistemas complejos como el SAI offline que se muestra. (Fuente de la imagen: Microchip Technology)

Para aplicaciones que requieren tanto capacidades de control en tiempo real como procesamiento de señales digitales, los DSC dsPIC33C combinan las capacidades de una MCU y un DSC con sus instrucciones especializadas y funcionalidad de hardware. Para los diseños de seguridad crítica, los DSC dsPIC33C están preparados para la seguridad funcional IEC 60730 y cumplen la norma ISO 26262, proporcionando múltiples características de hardware diseñadas para simplificar la certificación de seguridad funcional para el nivel B de integridad de la seguridad en automoción (ASIL-B) y las aplicaciones de seguridad crítica SIL-2 en automoción e industria.

Mientras que los DSC dsPIC33C están diseñados para aplicaciones en las que el rendimiento es primordial, los MCU PIC24F ofrecen un equilibrio entre rendimiento y eficiencia energética para sistemas embebidos de propósito general, electrónica de consumo, automatización industrial, dispositivos médicos y otras aplicaciones que requieren control y conectividad pero no necesitan capacidades DSP. Al igual que los DSC dsPIC33C, los MCU PIC24F son dispositivos preparados para la seguridad funcional IEC 60730 con bibliotecas de diagnóstico de seguridad de Clase B para aplicaciones domésticas.

Como ya se ha señalado, la integridad del firmware es un principio básico de la ciberseguridad integrada. Para ayudar a los desarrolladores a garantizar la integridad del firmware y la protección general del código, Microchip proporciona Flash programable una sola vez (OTP) mediante programación en serie en circuito (ICSP) Write Inhibit y seguridad CodeGuard Flash en dispositivos DSC dsPIC33C, como el DSC mononúcleo DSPIC33CK512MP608 y el DSC de doble núcleo DSPIC33CH512MP508, así como dispositivos MCU PIC24F como el MCU PIC24FJ512GU405, entre muchos otros configurados con diferentes conjuntos de periféricos específicos de la aplicación.

Protección del firmware del dispositivo

Flash OTP by ICSP Write Inhibit permite a los desarrolladores configurar partes de la memoria Flash como memoria OTP y proteger la memoria Flash contra lectura y escritura. La capacidad ICSP propiedad de Microchip permite programar estos dispositivos en serie a través de un par de pines mientras se ejecutan en la aplicación final. Con esta capacidad, los fabricantes pueden completar la programación en placas de producción. Mientras que ICSP requiere el uso de un dispositivo de programación externo para controlar el proceso Flash OTP, ICSP mejorado permite que un gestor de arranque integrado en la placa controle el proceso Flash OTP. Estos dispositivos también admiten la autoprogramación en tiempo de ejecución (RTSP), que permite que el código de aplicación de usuario Flash se actualice a sí mismo durante el tiempo de ejecución.

Después de programar su dispositivo de producción, los desarrolladores pueden activar la inhibición de escritura ICSP, que impide cualquier programación o borrado ICSP posterior. No obstante, las operaciones de borrado y programación de la Flash RTSP pueden continuar incluso cuando la inhibición de escritura ICSP está activada si se programa el código de actualización de Flash adecuado en el dispositivo antes de su activación. Como resultado, los desarrolladores pueden utilizar un gestor de arranque de confianza para alterar Flash incluso cuando la inhibición de escritura ICSP está activada, lo que les permite actualizar el firmware de forma segura al tiempo que mitiga los intentos externos de actualizar Flash en los sistemas de producción.

La seguridad de CodeGuard Flash proporciona una protección de grano fino de la Flash de programación mediante el uso de segmentos de arranque y generales separados. Los desarrolladores definen el tamaño de estos segmentos estableciendo la dirección del límite del segmento de arranque (BS) (BSLIM) en el registro BSLIM del dispositivo; el segmento general (GS) ocupa el resto de la memoria. Para proteger aún más la información sensible, cada segmento contiene particiones adicionales. Por ejemplo, la BS contiene la tabla de vectores de interrupción (IVT), la tabla opcional de vectores de interrupción alternativos (AIVT) y espacio adicional de palabras de instrucción (IW); el segmento de configuración (CS), que contiene datos críticos de configuración de usuario del dispositivo, se encuentra dentro del espacio de direcciones de usuario en la GS (Figura 2).

Diagrama de las familias de MCU dsPIC33C DSC y PIC24F de MicrochipFigura 2: Las familias de MCU dsPIC33C DSC y PIC24F admiten la protección de código en particiones separadas como la BS y la GS. (Fuente de la imagen: Microchip Technology)

Tras establecer las particiones de los segmentos, los desarrolladores pueden utilizar el registro de seguridad del firmware del dispositivo (FSEC) para activar opcionalmente la protección contra escritura y establecer el nivel de protección del código necesario para cada segmento. Durante el tiempo de ejecución, el dispositivo impide que el código contenido en un segmento con un nivel de protección de código inferior acceda al código contenido en un segmento con un nivel de protección de código superior. En un sistema típico, los desarrolladores protegerían por escrito la BS y establecerían su protección de código en un nivel alto, mitigando los intentos externos de alterar la BS, incluido el gestor de arranque.

Actualización segura de firmware por aire

Los desarrolladores de software se enfrentan inevitablemente a la necesidad de actualizar el software en respuesta a la combinación de errores de software recién descubiertos, mejoras de la competencia o amenazas de seguridad emergentes. A diferencia de las actualizaciones de aplicaciones móviles, las actualizaciones seguras del firmware de los sistemas integrados corren el riesgo, en el mejor de los casos, de interferir con las aplicaciones en ejecución o, en el peor, de «brickear» el sistema. Las familias de MCU dsPIC33C DSC y PIC24F de bajo consumo de Microchip ofrecen un mecanismo de partición dual diseñado para ayudar a los desarrolladores a evitar estos problemas.

En el modo de funcionamiento estándar, estos dispositivos utilizan toda la memoria física disponible como un espacio de memoria continuo de partición única (Figura 3, izquierda) que puede configurarse en BS y GS independientes. En el modo de partición dual, los desarrolladores dividen la memoria física en particiones activas e inactivas separadas (Figura 3, derecha).

Diagrama de las familias de MCU dsPIC33C DSC y PIC24F de Microchip en los modos de partición única o partición doble (haga clic para ampliar)Figura 3: Los desarrolladores pueden utilizar las familias de MCU dsPIC33C DSC y PIC24F en el modo predeterminado de partición única o en el modo de partición doble. (Fuente de la imagen: Microchip Technology)

Al funcionar en modo de doble partición, estos dispositivos pueden seguir ejecutando código de aplicación en la partición activa mientras programan la partición inactiva. Una vez finalizada la programación, la ejecución de la instrucción en tiempo de ejecución de intercambio de arranque (BOOTSWP) hace que el dispositivo cambie el objetivo de arranque a la partición actualizada. Si el código de la partición actualizada falla o es deficiente, un reinicio del dispositivo hará que éste arranque automáticamente en la partición original (Figura 4).

Diagrama de los DSC dsPIC33C y MCU PIC24F de Microchip en modo de partición doble (haga clic para ampliar)Figura 4: En el modo de partición dual, los DSC dsPIC33C y las MCU PIC24F pueden cargar código de aplicación en una partición mientras continúan ejecutando código de aplicación en la otra partición. (Fuente de la imagen: Microchip Technology)

Una vez garantizado el éxito de la partición actualizada, la secuencia de arranque flash (FBTSEQ) de la partición actualizada puede establecerse en un valor inferior al de la partición original. En posteriores reinicios del dispositivo, éste arrancará en la partición actualizada con el valor FBTSEQ más bajo (Figura 5).

El diagrama del modo de partición doble permite a los desarrolladores especificar la secuencia de arranque en la partición deseada (haga clic para ampliar).Figura 5: El modo de partición dual permite a los desarrolladores especificar la secuencia de arranque en la partición deseada tras el reinicio del dispositivo. (Fuente de la imagen: Microchip Technology)

Flash OTP by ICSP Write Inhibit y la seguridad Flash CodeGuard proporciona un soporte crítico para la seguridad del código estático y en tiempo de ejecución, pero una seguridad integrada completa requiere mecanismos adicionales, incluido el almacenamiento seguro de claves, la autenticación de código y las comunicaciones seguras.

Uso de dispositivos de seguridad complementarios para garantizar la seguridad de los sistemas integrados

Al combinar los DSC dsPIC33C y los microcontroladores PIC24F con el ATECC608 CryptoAuthentication de Microchips o el CI de seguridad TrustAnchor100(TA100) CryptoAutomotive, los desarrolladores pueden implantar más fácilmente el complemento completo de funciones de seguridad basadas en hardware.

Estos CI de seguridad proporcionan mecanismos de seguridad resistentes a las manipulaciones basados en hardware, incluido el almacenamiento seguro, los motores de criptografía acelerados por hardware, los generadores de números aleatorios reales y otros mecanismos requeridos por los algoritmos criptográficos. Al estar diseñados específicamente como dispositivos complementarios, los CI pueden añadirse fácilmente a los diseños de sistemas DSC o MCU para completar la implementación de la seguridad total de los sistemas embebidos (Figura 6).

Diagrama de los CI de seguridad ATECC608 o TA100 de Microchip (haga clic para ampliar)Figura 6: Los CI de seguridad como el ATEC608 o el TA100 complementan las funciones de seguridad de los DSC dsPIC33C y las MCU PIC24F, simplificando la implementación de sistemas embebidos seguros. (Fuente de la imagen: Microchip Technology)

La ejecución de una operación crítica como la actualización segura de firmware ilustra las características de seguridad complementarias de los DSC dsPIC33C y los microcontroladores PIC24F junto con estos CI de seguridad complementarios. Los desarrolladores utilizan técnicas de firma de código para verificar la autenticidad e integridad del código antes de completar las operaciones de actualización del firmware. En este caso, los desarrolladores utilizan sus sistemas de desarrollo para crear un paquete de actualización que contiene el código, los metadatos del código y una firma utilizada para la verificación (Figura 7).

El esquema de la firma de código proporciona un protocolo vitalFigura 7: La firma de código proporciona un protocolo vital utilizado habitualmente para verificar la autenticidad e integridad del código antes de su actualización en un sistema de destino. (Fuente de la imagen: Microchip Technology)

En el sistema de destino, la verificación de firmas basada en hardware elimina el riesgo de protocolos de verificación comprometidos que era posible con el tipo de verificación de firmas basada en software utilizada en el pasado. En su lugar, un CI de seguridad complementario como el ATECC608 y el TA100 de Microchip realiza de forma rápida y segura las operaciones de verificación de firmas sin riesgo de compromiso (Figura 8).

Diagrama de verificación basada en hardwareFigura 8: En un sistema de destino, la verificación basada en hardware proporcionada por un CI de seguridad como el ATECC608 o el TA100 es esencial para garantizar la verificación del código antes de la actualización del firmware por parte del gestor de arranque. (Fuente de la imagen: Microchip Technology)

Para acelerar la implantación de sistemas seguros, Microchip ofrece una combinación de herramientas de desarrollo de software y hardware.

Desarrollo rápido de software y hardware

Mientras que el entorno de desarrollo integrado (IDE) MPLAB X proporciona a los desarrolladores un entorno completo de desarrollo de software, el compilador MPLAB XC C ofrece soporte de desarrollo para las cadenas de herramientas existentes. Para acelerar el desarrollo en cualquier entorno, el Configurador de códigos MPLAB (MCC) de Microchip permite a los desarrolladores utilizar una interfaz gráfica para generar automáticamente inicializadores, crear controladores, asignar pines, implementar bibliotecas y acelerar muchos de los procedimientos y procesos críticos de configuración de bajo nivel asociados a cualquier proyecto de desarrollo de software embebido.

Para acelerar la implementación de un gestor de arranque seguro adecuado, el gestor de arranque de Microchip para MCU dsPIC33 DSCs y PIC24 proporciona una interfaz gráfica que ayuda a los desarrolladores a configurar y generar rápidamente los gestores de arranque personalizados necesarios para su aplicación. Una aplicación host de gestor de arranque relacionada simplifica aún más la transferencia de código de aplicación al dispositivo de destino.

Para el desarrollo de hardware, Microchip proporciona varias placas de desarrollo asociadas para crear sistemas basados en DSC dsPIC33C o MCU PIC24F. De hecho, la placa PIC-IoT EV54Y39A y la placa PIC-IoT AC164164 de Microchip (Figura 9) integran CI de seguridad preprovisionados con credenciales de seguridad para Amazon Web Services (AWS) y Google Cloud, respectivamente.

Imagen de la placa PIC-IoT de Microchip AC164164Figura 9: Placas como la PIC-IoT Board AC164164 ayudan a acelerar el desarrollo de la seguridad integrada mediante la integración de CI de seguridad preaprovisionados con credenciales para AWS o Google Cloud. (Fuente de la imagen: Microchip Technology)

Para diseños personalizados, Microchip ofrece una placa de desarrollo dsPIC33CH Curiosity(DM330028-2) basada en el DSC de doble núcleo dsPIC33CH512MP508. Como alternativa, los desarrolladores pueden conectar el módulo de conexión basado en dsPIC33CH128MP508 de Microchip(MA330040) a una placa de evaluación Microchip Explorer Embedded Evaluation Board(DM240001-2) para acelerar el desarrollo de sistemas embebidos seguros.

Conclusión:

La seguridad de los sistemas empotrados depende de la disponibilidad de mecanismos basados en hardware, capaces de soportar principios básicos de ciberseguridad que incluyen la integridad del firmware, la autenticación, el cifrado y el almacenamiento seguro. Mientras que los DSC dsPIC33C y las MCU PIC24F de Microchip simplifican la protección del código, sus CI de seguridad ATECC608 y TA100 proporcionan los mecanismos de seguridad adicionales necesarios en una plataforma de seguridad eficaz. Utilizando estos dispositivos en combinación, los desarrolladores pueden satisfacer la necesidad de seguridad a nivel de sistema en soluciones integradas para el IoT, así como aplicaciones de automoción, industriales, de consumo y médicas.