Artículo de fondo sobre la criptografía para proteger el IoT escrito por Mark Patrick, de Mouser Electronics y publicado en exclusiva en nuestro periódico técnico seguridadprofesionalhoy.com
A nadie se le escapa que el Internet de las Cosas (IoT) va a afectar a casi todos los aspectos relacionados con la forma en la que vivimos, trabajamos, viajamos y accedemos a servicios.
Las empresas dependerán en gran medida de la información obtenida mediante el IoT para prestar servicios a sus clientes, mejorar los procesos, reducir los costes e inspirar el desarrollo de nuevos productos.
Ya sean 10.000, 50.000 o 100.000 millones de cosas conectadas finalmente a Internet, el número de dispositivos accesibles de forma remota con información valiosa y propiedad intelectual en forma de código de software será en verdad enorme. También dispondrán de privilegios de acceso a servidores y redes corporativas cargados de información. Por otra parte, ya hay una gran cantidad de dispositivos conectados, y cada uno de ellos está potencialmente expuesto a intentos no autorizados de usar los activos relacionados.
Si el mundo está decidido a aprovechar las enormes ventajas que el IoT puede ofrecer, es esencial proteger esos dispositivos de los ataques, y ser capaces de detectar y aislar aquellos que hayan quedado comprometidos. El uso de la criptografía asimétrica para proteger el arranque de un dispositivo y su autenticación, así como para mantener los datos y la propiedad intelectual secretos puede ofrecer la seguridad sencilla y sólida que precisa el IoT.
Protección desde el primer encendido hasta el final de su vida útil
Un dispositivo del IoT es vulnerable desde el momento en que se instala y enciende. Si los piratas informáticos interfieren en el proceso de arranque, pueden introducir malware con diversos fines, como espiar a usuarios legítimos, robar propiedad intelectual asociada al código de la aplicación o hacerse con el control de todo el dispositivo. Tras obtener el control de un dispositivo, pueden falsificar información, desactivar equipos, sabotear procesos o sistemas de seguridad, o intentar acceder a redes corporativas para robar información confidencial.
Una secuencia de arranque convencional solo comprueba que la imagen de la aplicación está presente, y realiza una suma de comprobación o comprobación de CRC antes de cargar la aplicación. Este proceso hace posible la sustitución de la imagen de la aplicación por malware. Por su parte, un proceso de arranque seguro comprueba primero la autenticidad de la imagen de la aplicación que, en caso de no superar el proceso de autenticación, no permitirá el inicio de la secuencia de arranque. Verificar la autenticidad del código permite confiar en que el dispositivo se comportará de la forma esperada y que únicamente realizará funciones conocidas y legítimas. De esta forma, la protección del proceso de arranque establece una raíz de confianza en el dispositivo.
La raíz de confianza ofrece la base para que el dispositivo se autentique al conectarse a la red. La seguridad depende de la autenticación mutua, lo que significa que el dispositivo también debe ser capaz de autenticar su host. Establecer la confianza mutua entre el dispositivo y la red sienta las bases de las interacciones seguras. Los métodos que se emplean para ello se basan en diversas formas de criptografía simétrica y asimétrica, como el protocolo Elliptic Curve Diffie Hellman (ECDH) para cifrado y descifrado, el algoritmo Elliptic Curve Digital Signature Algorithm (ECDSA) para firmar/verificar la autenticación y los protocolos desafío/respuesta simétricos con algoritmo hash, como SHA-256, para evitar la derivación de claves.
Para disponer de una autenticación sólida e integral en todas las fases del proceso, una plataforma segura del IoT también debe incluir aprovisionamiento gestionado durante la fabricación, para garantizar que las identidades asignadas no resulten dañadas durante el proceso de desarrollo.
Seguridad basada en la criptografía: ventajas y barreras
Los algoritmos criptográficos se utilizan ya de forma generalizada para proteger transacciones de Internet convencionales, como los pagos en línea, y ofrecen una manera de verificar el origen de los datos y de evitar la interceptación de la información que contienen. Un ejemplo es el uso de la criptografía asimétrica, basada en una combinación de claves privadas y públicas, para establecer una sesión de comunicación cifrada entre un navegador web y el servidor. Cuando un navegador quiere iniciar una sesión, el servidor envía una copia de su propio certificado digital emitido por una autoridad certificadora de confianza. El certificado autentica al servidor y presenta la clave de cifrado pública de este, que el navegador emplea para crear una clave de sesión. Posteriormente, el servidor descifra la clave con su propia clave privada y la sesión cifrada puede comenzar.
Sin embargo, en lo que respecta a los casos prácticos del IoT, el uso de técnicas criptográficas, tanto simétricas como asimétricas, plantea diversos retos. Uno de ellos es que los algoritmos criptográficos que se emplean para cifrar o descifrar las transmisiones requieren muchos recursos informáticos, incluso fuera de las capacidades de la MCU de un dispositivo del IoT típico, lo que supone una carga adicional no deseada para los recursos del sistema, que son, por la propia naturaleza del IoT, extremadamente limitados. Además, las memorias Flash o ROM de la MCU estándar que probablemente se empleen en los dispositivos del IoT básicos no son un lugar seguro para almacenar claves criptográficas públicas o privadas.
Junto a los datos expuestos anteriormente, el intercambio de mensajes cifrados impone exigencias de transmisión significativamente mayores que la carga de datos de los dispositivos del IoT típicos, como los sensores inteligentes, que normalmente solo envían unos pocos bytes de datos cada vez y en intervalos no frecuentes.
Por si esto fuera poco, se necesita una infraestructura de clave pública (PKI) sólida capaz de mantener la privacidad de las claves privadas y de garantizar la autenticidad de los certificados digitales. Son pocas las autoridades públicamente reconocidas que ofrecen servicios de PKI para mantener la seguridad de las transacciones de Internet convencionales, como los pagos en línea. No obstante, el mismo modelo no resulta adecuado para ecosistemas cerrados del IoT; es preciso disponer de una forma económica y cómoda de generar y proteger las claves y los certificados digitales, además de mantener los registros.
A la búsqueda de una solución compatible con el IoT
La conexión de un elemento seguro incrustado al microcontrolador principal, que contiene almacenamiento de datos seguro y algoritmos de cifrado/descifrado implementados en el hardware, puede ofrecer una protección sólida dentro de las limitaciones del sistema típicas de un dispositivo del IoT de reducidas dimensiones.
La CPU host interactúa con el elemento seguro mediante API para controlar los servicios de seguridad según resulte necesario sin exponer ningún secreto. El elemento seguro integra toda la protección necesaria contra ataques físicos y ataques de canal lateral. Por tanto, el microcontrolador puede ser de carácter general, elegido para cumplir los requisitos funcionales del dispositivo del IoT, y no tiene que ser un microcontrolador seguro con rendimiento informático elevado para ejecutar los algoritmos criptográficos en el software.
Un ejemplo de este tipo de circuito integrado es el ATECC608A de Microchip, que ofrece servicios que permiten la autenticación, la integridad y la confidencialidad en dispositivos conectados con recursos limitados. Incluye un acelerador de hardware criptográfico integrado capaz de realizar operaciones criptográficas hasta mil veces más rápido que el software ejecutado en microprocesadores estándar. Al mismo tiempo, se reduce considerablemente el riesgo permanente de exposición de las claves asociado al uso de un microcontrolador estándar.
El circuito integrado gestiona la autenticación de identidades y la creación de claves de sesión, y es compatible con diversos protocolos de generación de claves, incluidos TLS 1.2 y TLS 1.3. También ofrece compatibilidad para el cifrado de mensajes breves con el modo de cifrado de bloques AES-ECB simétrico, que permite minimizar los requisitos de comunicación al cifrar o descifrar mensajes breves o información personal. La generación de claves para la descarga al software es otra función integrada valiosa para la gestión de dispositivos del IoT, con el fin de autenticar las actualizaciones de software distribuidas mediante difusión o de punto a punto por toda la red.
Arranque seguro y servicios de autoridad de certificados
Su compatibilidad con firmas ECDSA permite al ATECC608A proteger la secuencia de arranque de los dispositivos del IoT y de este modo establecer la raíz de confianza tras el encendido. La imagen de la aplicación cifrada y su resumen, firmados digitalmente con ECDSA mediante una clave privada, se cargan en el microcontrolador del dispositivo. El elemento seguro almacena una clave pública derivada de la clave de firma privada, y puede actuar de diversas formas para verificar el resumen, la firma o ambos con la clave pública. Se permite que la secuencia de arranque comience cuando la verificación concluye correctamente; de lo contrario, la secuencia de arranque se detiene.
El conjunto de instrucciones del ATECC608A simplifica la ejecución de la funcionalidad de generación de claves, el cifrado y el arranque seguro, y el circuito integrado incorpora la biblioteca de desarrollo CryptoAuthentication™ de Microchip, que contiene una serie de API para las interacciones con el núcleo, la gestión de los certificados y la integración del TLS.
Para completar la solución protegida de dispositivos del IoT, Microchip ofrece un servicio completo de aprovisionamiento durante la fabricación, que incluye la generación de claves públicas y privadas con almacenamiento seguro y mantenimiento de registros, lo que ahorra a los fabricantes de los dispositivos la importante carga que supone configurar y mantener sus propios módulos. Los circuitos integrados se distribuyen ya con módulos seguros, listos para el montaje final, lo que elimina la necesidad de compartir secretos con empresas externas de software o fabricación.
Conclusión sobre la criptografía para proteger el IoT
El IoT puede ofrecer innumerables ventajas a particulares y empresas. Sin embargo, su naturaleza conectada y permanente, y su dependencia de dispositivos autónomos con recursos restringidos plantean retos singulares en materia de seguridad.
Se necesitan técnicas criptográficas de reconocida eficacia, pero deben implementarse dentro de unos límites estrictos de potencia informática, precio y consumo energético. Descargar estas funciones en un elemento seguro incrustado específico permite lograr una solución viable, rentable y robusta.