Fundamentos de seguridad de la IoT - Parte 2: Protección de secretos

Por Stephen Evanczuk

Colaboración de Editores de DigiKey de América del Norte

Nota del editor: A pesar de la proliferación de dispositivos de IoT, la seguridad de estos dispositivos sigue siendo una preocupación constante, hasta el punto de que los desafíos de seguridad pueden ser una barrera para la adopción de dispositivos conectados en IoT industrial (IIoT) y aplicaciones de misión crítica donde los datos corporativos y personales pueden verse comprometidos en caso de un ataque exitoso. Asegurar las aplicaciones de IoT puede ser desalentador, ya que los desarrolladores deben orquestar múltiples mecanismos, protocolos y políticas de seguridad que en combinación parecen complejos. En realidad, la seguridad de los dispositivos de IoT se puede construir sobre unos pocos principios relativamente sencillos que se apoyan en los dispositivos de seguridad del hardware. Siguiendo prácticas de seguridad bien establecidas, se pueden abordar estas preocupaciones. Esta serie, que consta de varias partes, ofrece orientación práctica para ayudar a los promotores a asegurarse de que se sigan las mejores prácticas desde el principio. En la Parte 1, se analizan los algoritmos criptográficos que subyacen a los diseños seguros. En la Parte 2, se analiza el papel de las claves privadas, la administración de claves y el almacenamiento seguro en los diseños de IoT segura. En laParte 3, se examinan los mecanismos incorporados en los procesadores seguros para mitigar otros tipos de amenazas a los dispositivos de IoT. En la Parte 4, se identifica y muestra cómo aplicar mecanismos de seguridad en los procesadores avanzados para ayudar a asegurar el aislamiento necesario para mitigar los ataques al entorno de ejecución de los dispositivos de IoT. En la Parte 5, se describe cómo la seguridad de la IoT continúa desde los dispositivos de IoT a través de medidas de seguridad de mayor nivel utilizadas para conectar esos dispositivos a los recursos de la nube de IoT.

Aunque los dispositivos criptográficos basados en hardware pueden mitigar las vulnerabilidades de la Internet de las cosas (IoT), la falta de protección suficiente de las claves secretas y los datos conexos puede degradar la seguridad, a pesar del uso del dispositivo criptográfico más sólido. Los fabricantes de semiconductores se ocupan de la protección de las claves y otros datos privilegiados mediante diversos mecanismos incorporados en los circuitos integrados y procesadores de seguridad especializados.

En este artículo se revisa el papel fundamental que desempeñan las claves en la criptografía y se describen los diferentes mecanismos de protección de claves incorporados en los dispositivos disponibles de Maxim Integrated, NXP, STMicroelectronics, y Microchip Technology.

El papel de las claves secretas en la criptografía

Como se describe en la primera parte de esta serie, se dispone de una amplia gama de algoritmos criptográficos apoyados por hardware para crear hashes o firmas de mensajes únicos, y se dispone de un número aún mayor de cifradores para cifrar texto plano a texto cifrado y descifrar texto cifrado a texto plano. Aunque estos algoritmos pueden reforzar la seguridad en cualquier aplicación, la capacidad de proteger esas aplicaciones depende fundamentalmente de la seguridad de las claves privadas y otros datos secretos utilizados por los algoritmos criptográficos.

En criptografía, los secretos comprometidos significan seguridad comprometida en las políticas de seguridad, protocolos y mecanismos construidos sobre esos secretos. Ya en el siglo XIX, el criptógrafo Auguste Kerckhoffs señaló que un sistema criptográfico permanecerá seguro mientras la clave permanezca segura, un axioma que ahora se conoce como el Principio de Kerckhoffs. Dicho de forma más sucinta, "el enemigo conoce el sistema", según el Máximo de Shannon, llamado así por el padre de la teoría de la información, Claude Shannon.

De hecho, los desarrolladores construyen sistemas seguros sobre algoritmos bien conocidos y tan estrictamente especificados que los fabricantes de semiconductores pueden utilizarlos con confianza en dispositivos de seguridad acelerados por hardware. Sin embargo, lo que en última instancia protege a esos sistemas son los secretos utilizados por esos algoritmos.

El reto de proteger los secretos

Aunque la protección de los secretos de la criptografía es conceptualmente sencilla, puede ser un reto importante en la práctica. La aplicación de una política de seguridad de mayor nivel se basará inevitablemente en múltiples protocolos de seguridad que utilicen diferentes algoritmos. Estos protocolos y algoritmos, a su vez, requieren alguna combinación de claves estáticas y claves efímeras creadas por el propio protocolo. Por ejemplo, una sesión de Seguridad de la Capa de Transporte (TLS) utiliza una clave estática durante la autenticación y una clave de sesión efímera compartida para el intercambio seguro de mensajes.

De hecho, el Instituto Nacional de Estándares y Tecnología de los Estados Unidos (NIST) identifica 19 tipos diferentes de claves, además de otros 11 tipos de información relacionada, como los parámetros de dominio de la curva elíptica y los resultados intermedios que deben ser protegidos. El NIST recomienda además que, para lograr una seguridad más sólida, la información relacionada con el uso de las claves se proteja durante períodos de tiempo específicos, como se indica en el cuadro 1, en el que se muestran solo los primeros tipos de claves que figuran en la recomendación completa del NIST [1].

Tipo de clave Servicio de seguridad Protección de seguridad Protección de la asociación Garantías requeridas Periodo de protección
Clave de firma privada Autenticación de la fuente
Autenticación de integridad
Apoyar el no repudio
Integridad
Confidencialidad
Uso o aplicación
Parámetros del dominio (cuando se usa)
Clave de verificación de la firma pública
Posesión Desde la generación hasta el final del criptoperíodo
Clave de verificación de la firma pública Autenticación de la fuente
Autenticación de integridad
Apoyar el no repudio
Integridad Uso o aplicación
Propietario del par de claves
Parámetros del dominio (cuando se usa)
Clave de verificación de la firma pública
Validez Desde la generación hasta que no hay datos protegidos que deban ser verificados
Clave de autenticación simétrica Autenticación de la fuente
Autenticación de integridad
Integridad
Confidencialidad
Uso o aplicación
Otras entidades autorizadas
Datos autentificados
Desde la generación hasta que no hay datos protegidos que deban ser verificados
Clave de autenticación privada Autenticación de la fuente
Autenticación de integridad
Integridad
Confidencialidad
Uso o aplicación
Clave de autenticación pública
Parámetros del dominio (cuando se usa)
Posesión Desde la generación hasta el final del criptoperíodo
Clave de autenticación pública Autenticación de la fuente
Autenticación de integridad
Integridad Uso o aplicación
Propietario del par de claves
Datos autentificados
Clave de autenticación privada
Parámetros del dominio (cuando se utilice)
Validez Desde la generación hasta que no hay datos protegidos que deban ser verificados
Clave de cifrado/descifrado de datos simétricos Confidencialidad Integridad
Confidencialidad
Uso o aplicación
Otras entidades autorizadas
Texto plano/Datos codificados
Desde la generación hasta el final de la vida útil de los datos o el final del criptoperíodo, lo que ocurra más tarde
Llave simétrica de envoltura de llaves Soporte Integridad
Confidencialidad
Uso o aplicación
Otras entidades autorizadas
Claves cifradas
Desde la generación hasta el final del criptoperíodo o hasta que las llaves no envueltas requieran protección, lo que ocurra después

Tabla 1: Esta selección de la recomendación completa del NIST enumera algunos de los diferentes tipos de claves, así como la información asociada que debe ser protegida durante el período especificado. (Fuente de la tabla: Digi-Key Electronics, del NIST)

La necesidad de proteger las claves y los datos asociados significa que los desarrolladores deben tener un cuidado meticuloso en el uso de los secretos dentro de una aplicación de IoT. Para los dispositivos de IoT, un desafío mayor puede ser la protección de estos datos en cada uno de sus múltiples estados: en reposo, en tránsito y en uso. La seguridad de los datos en reposo requiere mecanismos de almacenamiento seguro; la seguridad de los datos en tránsito requiere métodos para proteger los secretos mientras se transfieren a través de una red o de un bus de sistema; la seguridad de los datos en uso requiere mecanismos para evitar la exposición mientras se utilizan en la ejecución de algoritmos criptográficos. Afortunadamente, los desarrolladores pueden encontrar una amplia gama de dispositivos de seguridad capaces de proteger los datos secretos utilizando una serie de mecanismos diferentes.

Cómo asegurar los secretos de los semiconductores con criptografía

Las soluciones avanzadas de semiconductores habilitados para la criptografía suelen proporcionar algún tipo de memoria no volátil segura para almacenar claves y otros datos secretos, pero la naturaleza del enfoque general difiere notablemente en las dos clases principales de dispositivos seguros: los circuitos integrados de seguridad especializados y los procesadores habilitados para la criptografía.

Los CI de seguridad están diseñados para servir como subsistemas autónomos que descargan la ejecución del algoritmo de un procesador host que normalmente se comunica a través de un bus serial. Por ejemplo, el autentificador seguro DS28C36 de Maxim Integrated proporciona puertos I2C así como dos E/S de propósito general (GPIO) que pueden utilizarse para proporcionar una señal de éxito o fracaso de la autenticación al procesador host (Figura 1).

Diagrama del autentificador seguro DS28C36 de Maxim IntegratedFigura 1: Los dispositivos de seguridad como el autentificador de seguridad DS28C36 integrado al máximo proporcionan subsistemas completos que simplifican la integración al tiempo que mejoran la protección de las claves y operaciones internas. (Fuente de la imagen: Maxim Integrated).

La integración del software es generalmente igual de sencilla. Por ejemplo, la biblioteca Plug & Trust Middleware abstrae la funcionalidad del hardware de sus dispositivos SE050 y A71CH de elementos seguros a unas pocas llamadas de función (Figura 2).

Imagen del Plug & Trust Middleware de NXPFigura 2: Librerías de software como el Plug & Trust Middleware de NXP permite a los desarrolladores usar unas pocas llamadas de función intuitivas para crear claves (izquierda), claves de acceso (derecha), y de otra manera aprovechar al máximo la funcionalidad subyacente en los dispositivos de elementos seguros SE050 y A71CH de NXP. (Fuente de la imagen: NXP)

La creación de una nueva clave (Figura 2 de nuevo, a la izquierda) devuelve una keyId. Para usar la clave más tarde, los desarrolladores se refieren a la clave por su keyId (Figura 3, derecha) en lugar de exponer el valor real de la clave a través del bus del sistema. Usando el Plug & Trust Middleware de NXP, los desarrolladores pueden implementar rápidamente aplicaciones seguras utilizando una placa de evaluación Kinetis Freedom K64F de NXP compatible conArduino con una placa de expansión OM-SE050ARD de NXP para el desarrollo de SE050, o una placaOM3710/A71CHARD de NXP para el desarrollo de AC71CH.

Los circuitos integrados de seguridad dedicados, como el DS28C36 de Maxim Integrated, el SE050 de NXP, el AC71CHTK2/TOBC2VJ de NXP y otros dispositivos de esta clase ofrecen varias ventajas distintivas. Además de ofrecer un enfoque relativamente sencillo para añadir una funcionalidad segura a un diseño, la integración de la funcionalidad en un CI de seguridad dedicado limita la exposición de datos y operaciones secretas. Por ejemplo, DS28C36 de Maxim Integrated integra aceleradores de criptografía por hardware, un verdadero generador de números aleatorios y 8 kilobits (Kb) de EEPROM asegurada, junto con otros bloques funcionales. Cuando el DS28C36 autentica una firma de firmware del Algoritmo de firma digital de curva elíptica (ECDSA), asegura la protección de los datos en reposo, en tránsito y en uso porque la clave privada, los datos asociados (véase la figura 1) y las operaciones que utilizan esos secretos permanecen confinados dentro del dispositivo (figura 3).

Diagrama de DS28C36 de Maxim IntegratedFigura 3: La funcionalidad integrada de los dispositivos de seguridad, como DS28C36 de Maxim Integrated, significa que las claves privadas y los datos asociados permanecen confinados dentro del chip. (Fuente de la imagen: Maxim Integrated).

Protección de la clave secreta basada en el procesador

No todos los diseños de IoT pueden acomodar un CI de seguridad dedicado. Los requisitos podrían dictar el uso de otros métodos criptográficos o restricciones de diseño relacionadas con la huella, la lista de materiales (BOM), el costo o las especificaciones del cliente. Para estos diseños, los procesadores habilitados para la seguridad, como el STM32WB55 de STMicroelectronics y el ATSAML11 de Microchip Technology proporcionan una combinación de motores de aceleración de hardware de algoritmos criptográficos y mecanismos secretos de protección de datos. Aunque este artículo se centra en la protección de las claves, estos y otros procesadores proporcionan una serie de sofisticadas características de seguridad adicionales que se analizarán en la Parte 3 de esta serie.

En el dispositivo inalámbrico de doble núcleo STM32WB55 de STMicroelectronics, una CPU Arm® Cortex®-M4 (CPU1) sirve como procesador host, comunicándose con el microcontrolador Cortex-M0+ (CPU2) del subsistema de radio a través de un controlador de comunicación interprocesador dedicado (IPCC) y un mecanismo semáforo (HSEM). Dentro del subsistema CPU2, la memoria segura proporciona un área de almacenamiento de claves de cliente (CKS) para las claves utilizadas por el acelerador de hardware del Estándar de cifrado avanzado (AES) (Figura 4).

Diagrama del procesador de doble núcleo STM32WB55 de STMicroelectronicsFigura 4: El procesador de doble núcleo STM32WB55 de STMicroelectronics permite el acceso directo a las claves solo por el núcleo del subsistema de radio (CPU2) pero permite que las aplicaciones de confianza que se ejecutan en el núcleo del host (CPU1) las utilicen indirectamente. (Fuente de la imagen: STMicroelectronics)

La arquitectura STM32WB55 protege las claves CKS del acceso a través del puerto de depuración o del acceso por medio de rutinas no seguras que ejecutan el procesador CPU1 del host. Al mismo tiempo, las aplicaciones de confianza que se ejecutan en la CPU1 del host pueden utilizar claves CKS específicas en la criptografía AES haciendo referencia a ellas mediante un índice de claves. El bloque de hardware AES recibe la llave deseada del área del CKS a través de un bus interno, asegurando que el transporte de la llave permanece protegido dentro del subsistema del CPU2.

Para sus procesadores ATSAML11 basados en el Cortex-M23, Microchip Technology confía en las características de seguridad incorporadas en la tecnología de Arm TrustZone. TrustZone utiliza mecanismos basados en hardware para reforzar el aislamiento entre los recursos de confianza y los que no lo son.

En sus procesadores ATSAML11, Microchip utiliza la Unidad de atribución definida de aplicación de TrustZone (IDAU) para hacer cumplir las políticas de seguridad, incluido el control de acceso diferencial a las subregiones de memoria mediante un código de aplicación seguro y no seguro. Un área de memoria de acceso aleatorio (RAM) de seguridad de 256 bytes, llamada TrustRAM, proporciona un almacenamiento seguro adicional para las claves efímeras.

Aprovisionamiento seguro

Los circuitos integrados y procesadores de seguridad dedicados proporcionan los mecanismos que los desarrolladores necesitan para proteger las claves secretas y los datos asociados en un dispositivo de IoT. Sin embargo, a menudo surgen vulnerabilidades de seguridad debido a fallos en el proceso utilizado para cargar o suministrar inicialmente un CI o procesador de seguridad con claves secretas o certificados, exponiendo las claves secretas al robo. Los ciberdelincuentes venden rápidamente esas llaves robadas y certificados comprometidos a través de los mercados negros, lo que permite a los hackers penetrar en redes seguras con credenciales aparentemente válidas.

La cuarta parte de esta serie trata de los dispositivos de seguridad y los kits de desarrollo preprovisionados por los fabricantes con claves y certificados para servicios específicos de nube de IoT, incluyendo Amazon Web Services, Microsoft Azure, Google Cloud y otros. Sin embargo, para las implementaciones de producción, los desarrolladores normalmente preferirán o necesitarán usar sus propias claves y certificados personalizados.

Para apoyar el aprovisionamiento personalizado, la mayoría de los fabricantes de semiconductores ofrecen el aprovisionamiento a través de sus propias instalaciones o en colaboración con un socio de aprovisionamiento. Por ejemplo, los dispositivos de suministro de Microchip con secretos personalizados creados con una herramienta de envoltura segura incluida en los kits de suministro ofrecidos por terceros asociados, como Secure Thingz de Trustonic y IAR Systems (figura 5).

Diagrama de la herramienta de envoltura seguraFigura 5: Los desarrolladores de los fabricantes de equipos originales (OEM) pueden utilizar una herramienta de envoltura segura para proteger los secretos utilizados más tarde en la instalación de programación segura de un socio fabricante para proveer microcontroladores seguros, como el Microchip SAML11. (Fuente de la imagen: Microchip Technology)

Cuando está listo para la producción, el desarrollador del OEM utiliza la herramienta de envoltura segura para proporcionar claves y certificados a la fábrica de Microchip en una forma encriptada que puede ser descifrada solo por un módulo de seguridad de hardware ubicado dentro de la instalación de programación segura del socio. Este enfoque satisface la necesidad de intercambiar información de producción a través de redes inseguras, al tiempo que, en última instancia, permite obtener dispositivos listos para la producción con claves y firmware suministrados de forma segura.

Autoabastecimiento con tecnología PUF

El uso creciente de la tecnología de funciones físicas no clonables (PUF) en los procesadores habilitados para la seguridad y los CI dedicados ofrece tal vez un enfoque aún más seguro para el aprovisionamiento. En lugar de cargar explícitamente una clave secreta en un dispositivo, la tecnología PUF permite a los dispositivos de seguridad utilizar una clave secreta derivada de las características únicas de cada dispositivo.

La tecnología de los PUF se basa en la variación de fabricación y otros procesos físicos que dan como resultado un valor único para el dispositivo en sí y que se puede repetir en el funcionamiento normal del sistema. Como se describe a continuación, el valor resultante puede servir como una clave privada única para la criptografía, proporcionando esencialmente a cada dispositivo habilitado para el PUF una clave secreta incorporada.

Además de permitir el autoabastecimiento, la tecnología PUF añade otra capa de seguridad. Los intentos de penetrar en el dispositivo para exponer ese valor único del dispositivo alteran las características utilizadas para generarlo, alterando así el valor generado.

Aunque existen diferentes mecanismos de FUP, el enfoque básico sigue siendo en gran medida el mismo en todos los dispositivos habilitados para FUP. Por ejemplo, la característica PUF del ChipDNA de Maxim Integrated utilizada en su microcontrolador seguro MAX32520, así como algunos CI de seguridad, se basa en un conjunto de elementos PUF analógicos y en la lógica de control para generar una clave (Figura 6).

Diagrama de la tecnología ChipDNA PUF de Maxim IntegratedFigura 6: En la tecnología ChipDNA PUF de Maxim Integrated, los estados aleatorios de un conjunto de elementos PUF son utilizados por la lógica de control del chip para generar una clave consistente específica del dispositivo. (Fuente de la imagen: Maxim Integrated).

En el autentificador seguro DS28C39 de ECDSA de Maxim Integrated, la salida de la PUF del ChipDNA se utiliza como clave privada para las operaciones de ECDSA y como clave privada para asegurar los datos asociados (Figura 7).

Diagrama del autentificador seguro DS28C39 ECDSA de Maxim IntegratedFigura 7: El autentificador seguro DS28C39 ECDSA de Maxim Integrated utiliza una clave privada generada por su circuito ChipDNA PUF en el chip. (Fuente de la imagen: Maxim Integrated).

Para su familia de procesadores LPC55S habilitados para PUF, NXP utiliza la tecnología PUF basada en la salida generada por el estado aleatorio inicial de un arreglo SRAM (Figura 8).

Diagrama de la familia de procesadores LPC55S de NXPFigura 8: En su implementación PUF, la familia de procesadores LPC55S de NXP utiliza los datos de inicio de SRAM para generar una huella digital y el código de activación asociado, que se utiliza más tarde para restaurar la huella digital y cifrar o generar claves privadas. (Fuente de la imagen: NXP)

En estos dispositivos, el uso del PUF comienza con una operación de inscripción que genera una huella digital única y un código activado asociado que permanecen válidos hasta que se ejecuta una nueva operación de inscripción. Almacenado en el flash protegido del dispositivo, el código de activación permite al dispositivo reconstruir la huella digital a partir de los datos de inicio de la SRAM generados de forma consistente en el momento del encendido.

Con la huella digital en su lugar, los desarrolladores pueden encriptar sus propias claves o generar claves. En este proceso, el dispositivo devuelve un código clave. Al proporcionar el código de activación, el código de clave y el índice, los desarrolladores pueden hacer que el dispositivo descifre la clave privada deseada de la ranura apropiada de la clave en el chip y la entregue a una biblioteca de software de criptografía. La ranura de la llave 0 proporciona un método especial de descifrado de la llave que entrega la llave a través de un bus interno directamente al motor de criptografía del hardware AES del procesador (Figura 9).

En su función de cifrado y descifrado de claves, la firma digital PUF del LPC55S sirve como clave de cifrado de claves (KEK) utilizada tradicionalmente para mejorar la protección de los datos secretos en reposo o en tránsito. El uso de un KEK ayuda a aliviar los requisitos de un almacenamiento seguro más grande y los mecanismos internos asociados necesarios para proteger los datos secretos.

Diagrama de la familia de procesadores LPC55S de NXPFigura 9: La familia de procesadores LPC55S de NXP utiliza su huella digital como KEK para descifrar las claves protegidas en su almacén de claves y referenciadas programáticamente utilizando el código de activación, el código de clave y el índice asociados. (Fuente de la imagen: NXP)

Los desarrolladores pueden utilizar un KEK para cifrar las claves personalizadas y los datos asociados y almacenar los resultados cifrados en una memoria no segura y no volátil. Este enfoque permite a los desarrolladores proteger los diversos tipos de claves y datos asociados incluso en dispositivos con un almacenamiento seguro limitado. Con la disponibilidad de los KEK generados por el PUF, los desarrolladores pueden implementar dispositivos seguros de IoT capaces de proteger las aplicaciones a lo largo de todo el ciclo de desarrollo.

Conclusión

La disponibilidad de circuitos integrados de seguridad dedicados y de procesadores seguros con aceleradores de criptografía ha mejorado notablemente la capacidad de los desarrolladores para construir sistemas seguros. Sin embargo, los sistemas seguros dependen de manera crítica de la seguridad de las claves privadas y otros datos asociados a los mecanismos y protocolos de criptografía. Empleando una serie de mecanismos diferentes, los dispositivos de seguridad proporcionan protección de los datos secretos en reposo, en tránsito y en uso. Al usar estos dispositivos, los desarrolladores pueden construir soluciones de IoT más seguras sin comprometer otros requisitos de diseño.

DigiKey logo

Descargo de responsabilidad: Las opiniones, creencias y puntos de vista expresados por los autores o participantes del foro de este sitio web no reflejan necesariamente las opiniones, las creencias y los puntos de vista de DigiKey o de las políticas oficiales de DigiKey.

Información sobre el autor

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk tiene más de 20 años de experiencia escribiendo para y sobre la industria de electrónica en un amplio rango de temas, entre ellos hardware, software, sistemas y aplicaciones, que incluyen IoT. Se doctoróen neurociencias (redes neuronales) y trabajó en la industria aeroespacial en sistemas seguros con distribución masiva y métodos de aceleración de algoritmos. Actualmente, cuando no escribe artículos sobre tecnología e ingeniería, trabaja en aplicaciones de aprendizaje profundo sobre sistemas de reconocimiento y recomendaciones.

Información sobre la editorial

Editores de DigiKey de América del Norte