Seguridad IoT: Fundamentos criptográficos para una protección robusta de dispositivos
Nota del editor: Asegurar el Internet de las Cosas es esencial para preservar la integridad de los flujos de datos, el firmware y los recursos empresariales a los que se conectan. La seguridad IoT es un desafío multifacético que exige un enfoque sistemático para identificar amenazas e implementar mitigaciones efectivas.
Adaptado de Internet of Things for Architects de Perry Lea.
Capítulo 12. Seguridad IoT
Por Perry Lea
Criptografía
El cifrado y la confidencialidad son innegociables para las implementaciones IoT. Protegen las comunicaciones, el firmware y los procesos de autenticación. En la práctica, trabajamos con tres primitivas criptográficas fundamentales:
- Cifrado de clave simétrica – La misma clave cifra y descifra los datos. Algoritmos comunes incluyen RC5, DES, 3DES y el estándar de la industria AES.
- Cifrado de clave pública – Una clave pública compartida cifra los datos, mientras que solo el poseedor de la clave privada correspondiente puede descifrarlos. Este esquema asimétrico también permite autenticación y no repudio. Protocolos ampliamente usados como Criptografía de Curva Elíptica, PGP, RSA, TLS y S/MIME se basan en este modelo.
- Hash criptográfico – Funciones de un solo sentido que mapean datos arbitrarios a un resumen de tamaño fijo. MD5, SHA-1, SHA-2 y SHA-3 entran en esta categoría. Los hashes sustentan firmas digitales, códigos de autenticación de mensajes (MAC) y validación segura de firmware. Al hashear entradas pequeñas como contraseñas, se añade una sal para aumentar la entropía; esto es una forma de función de derivación de claves (KDF).
clic para imagen ampliada
Elementos de criptografía. El cifrado simétrico requiere claves idénticas para cifrado y descifrado, mientras que el asimétrico usa pares de claves pública/privada distintas. Las funciones hash proporcionan comprobaciones de integridad de un solo sentido.
Criptografía simétrica
En el cifrado simétrico, el texto plano es la entrada en claro y el texto cifrado es la salida cifrada. El Estándar de Cifrado Avanzado (AES) es el referente global, superando a los antiguos algoritmos DES. AES cumple con FIPS 197 e ISO/IEC 18033-3, y opera en bloques de 128 bits con tamaños de clave de 128, 192 o 256 bits. Claves más largas proporcionan mayor seguridad a costa de ciclos de CPU adicionales: claves de 128 bits requieren 10 rondas, de 192 bits 12 rondas, y de 256 bits 14 rondas.
// Pseudo-código para un cifrado AES-128 // Entrada: texto plano de 128 bits // Salida: texto cifrado de 128 bits // w: 44 palabras de 32 bits (clave expandida) state = in w = KeyExpansion(key) // Fase de expansión de clave AddRoundKey(state, w[0, Nb-1]) // Ronda inicial for round = 1 to Nr-1 SubBytes(state) // Sustitución no lineal ShiftRows(state) // Permutación de filas MixColumns(state) // Mezcla de columnas AddRoundKey(state, w[round*Nb, (round+1)*Nb-1]) end for SubBytes(state) // Ronda final ShiftRows(state) AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1]) out = state
Desplácese o arrastre la esquina del cuadro para expandir según sea necesario. ↑
Los cifrados de bloque, como AES, procesan datos en bloques de tamaño fijo y dependen de un modo de operación para extender el algoritmo a mensajes mayores. Un Vector de Inicialización (IV) asegura que bloques de texto plano idénticos produzcan textos cifrados distintos, frustrando el análisis de patrones. Modos comunes incluyen:
- Electronic Codebook (ECB) – El modo más simple; cada bloque se cifra independientemente. Bloques idénticos producen textos cifrados idénticos, haciendo ECB inadecuado para la mayoría de aplicaciones.
- Cipher Block Chaining (CBC) – Cada bloque de texto plano se combina con XOR con el bloque de texto cifrado anterior antes del cifrado, proporcionando difusión.
- Cipher Feedback (CFB) – Un modo tipo flujo que alimenta la salida de cifrado anterior al siguiente paso de cifrado. CFB no puede paralelizarse, pero permite recuperación de bloques perdidos.
- Output Feedback (OFB) – Similar a CFB pero genera un keystream que se combina con XOR al texto plano, permitiendo códigos de corrección de errores.
- Counter (CTR) – Transforma un cifrado de bloque en un cifrado de flujo usando un par nonce-contador, permitiendo cifrado paralelo y alto rendimiento.
- CBC-MAC – Añade un código de autenticación de mensaje a CBC, permitiendo verificación de integridad y autenticación de origen.
Estos modos surgieron a finales de los 70 y fueron formalizados por NIST en FIPS 81. Aunque aseguran confidencialidad, no previenen manipulación. Combinar autenticación con cifrado llevó a modos de cifrado autenticado como AES-CCM (Counter with CBC-MAC). CCM es parte integral de protocolos como Zigbee, Bluetooth Low Energy, TLS 1.2 (post-intercambio de claves), IPsec y Wi-Fi WPA2.
AES-CCM combina CTR para descifrado eficiente del flujo de texto cifrado y CBC para generar una etiqueta de autenticación. La etiqueta se compara con un valor esperado derivado de la carga útil descifrada; un desajuste indica posible manipulación.
clic para imagen ampliada
Modo AES-CCM.
En una malla totalmente conectada de n nodos, la comunicación bidireccional requiere n(n-1)/2 claves únicas, escalando cuadráticamente (O(n²)). Por tanto, estrategias eficientes de gestión de claves son críticas para implementaciones IoT a gran escala.
Tecnología de Internet de las cosas
- Asegurando el Industrial IoT: Una hoja de ruta práctica
- Seguridad y fragmentación IoT siguen siendo los principales retos, revela encuesta GSMA
- Asegurando tu Ecosistema IoT: Estrategias Expertas para Contrarrestar Ransomware y Amenazas Cibernéticas
- Seguridad IoT — ¿Quién tiene la responsabilidad?
- El Auge del IoT: Por Qué la Seguridad Debe Construirse Desde el Día Uno
- Seguridad IoT: superando barreras de despliegue
- Protegiendo dispositivos IoT con tecnología de engaño
- Automatización e IoT: Revolucionando la logística y seguridad sanitaria
- La seguridad desbloquea el potencial total del IoT
- 12 insights esenciales de seguridad IoT de 2023
- Visión Artificial: Impulsando la Industria 4.0 y el IIoT Industrial