Seguridad de IoT - Criptografía
Nota del editor:Asegurar el Internet de las cosas es fundamental no solo para la integridad de los flujos de datos y el software dentro de cada aplicación de IoT, sino también para la integridad de los recursos empresariales vinculados a esas aplicaciones. La seguridad de IoT es un problema complejo que requiere un enfoque sistemático para comprender las posibles amenazas y los métodos de mitigación correspondientes.
Adaptado de Internet of Things for Architects, por Perry Lea.
Capítulo 12. Seguridad de IoT
Por Perry Lea
Criptografía
El cifrado y el secreto son requisitos absolutos de las implementaciones de IoT. Se utilizan para asegurar la comunicación, proteger el firmware y la autenticación. Con respecto al cifrado, generalmente hay tres formas a considerar:
-
Cifrado de clave simétrica :Las claves de cifrado y descifrado son idénticas. RC5, DES, 3DES y AES son todas formas de cifrado de clave simétrica.
-
Cifrado de clave pública :La clave de cifrado se publica públicamente para que cualquiera pueda utilizar y cifrar los datos. Solo la parte receptora tiene una clave privada utilizada para descifrar el mensaje. Esto también se conoce como cifrado asimétrico. La criptografía asimétrica gestiona el secreto de los datos, autentica a los participantes y fuerza el no repudio. Los protocolos de mensajes y cifrado de Internet bien conocidos, como Elliptic Curve, PGP, RSA, TLS y S / MIME, se consideran claves públicas.
-
Hash criptográfico :Asigna datos de un tamaño arbitrario a una cadena de bits (llamada resumen). Esta función hash está diseñada para ser "unidireccional". Esencialmente, la única forma de recrear el hash de salida es forzar todas las combinaciones de entrada posibles (no se puede ejecutar al revés). MD5, SHA1, SHA2 y SHA3 son todas formas de hashes unidireccionales. Por lo general, se utilizan para codificar firmas digitales, como imágenes de firmware firmadas, código de autenticación de mensajes s ( MAC ) o autenticación. Al cifrar un mensaje corto como una contraseña, la entrada puede ser demasiado pequeña para crear efectivamente un hash justo; en ese caso, una sal o una cadena no privada se agrega a la contraseña para aumentar la entropía. Una sal es una forma de función de derivación de claves ( KDF ):
haz clic para ampliar la imagen
Elementos de criptografía. Aquí están las funciones simétricas, asimétricas y hash. Tenga en cuenta el uso de claves en criptografía simétrica y asimétrica. Symmetric tiene el requisito de utilizar claves idénticas para cifrar y descifrar datos. Aunque es más rápido que el cifrado asimétrico, las claves deben estar protegidas.
Criptografía simétrica
En el cifrado, el texto sin formato se refiere a la entrada sin cifrar y la salida se denomina texto cifrado, ya que está cifrado. El estándar de cifrado es el estándar de cifrado avanzado . ( AES ) que reemplazó a los algoritmos DES más antiguos que datan de la década de 1970. AES es parte de la especificación FIPS y del estándar ISO / IEC 18033-3 utilizado en todo el mundo. Los algoritmos AES utilizan bloques fijos de 128, 192 o 256 bits. Los mensajes más grandes que el ancho de bits se dividirán en varios bloques. AES tiene cuatro fases básicas de funcionamiento durante el cifrado. El pseudocódigo para un cifrado AES genérico se muestra aquí:
// Código psuedo para un cifrado AES-128
// entrada:128 bits (texto plano)
// salida:128 bits (texto cifrado)
// w :44 palabras, 32 bits cada una (clave expandida)
estado =en
w =KeyExpansion (clave) // Fase de expansión de clave (encripta efectivamente la clave)
AddRoundKey (estado, w [0 , Nb-1]) // Ronda inicial
para ronda =1 paso 1 a Nr – 1 // 128 bits =10 rondas, 192 bits =12 rondas, 256 bits =14 rondas
SubBytes (estado ) // Proporcionar no linealidad en el cifrado
ShiftRows (estado) // Evita que las columnas se cifren de forma independiente, lo que
puede debilitar el algoritmo
MixColumns (estado) // Transforma cada columna y agrega difusión al
cifrado
AddRoundKey (state, w [round * Nb, (round + 1) * Nb-1]) // Genera una subclave y
la combina con el estado.
Fin de
SubBytes (estado) // Ronda final y limpieza.
ShiftRows (estado)
AddRoundKey (estado, w [Nr * Nb, (Nr + 1) * Nb-1] )
fuera =estado
Desplácese o arrastre la esquina del cuadro para expandir según sea necesario. ↑

Los cifrados de bloque representan algoritmos de cifrado que se basan en una clave simétrica y operan en un solo bloque de datos. Los cifrados modernos se basan en el trabajo de Claude Shannon sobre cifrados de productos en 1949. Un modo de operación de cifrado es un algoritmo que utiliza un cifrado de bloques y describe cómo aplicar repetidamente un cifrado para transformar grandes cantidades de datos que constan de muchos bloques. La mayoría de los cifrados modernos también requieren un vector de inicialización ( IV ) para garantizar textos cifrados distintos incluso si el mismo texto sin formato se ingresa repetidamente. Hay varios modos de funcionamiento como:
-
Libro de códigos electrónico (ECB) :Esta es la forma más básica de cifrado AES, pero se utiliza con otros modos para crear una seguridad más avanzada. Los datos se dividen en bloques y cada uno se cifra individualmente. Los bloques idénticos producirán cifrados idénticos, lo que hace que este modo sea relativamente débil.
-
Cipher Block Chaining (CBC) :Mensajes de texto sin formato Xored con el texto cifrado anterior antes de ser encriptados.
-
Cipher Feedback Chaining (CFB) :Similar a CBC pero forma un flujo de cifrados (la salida del cifrado anterior alimenta al siguiente). CFB depende del cifrado de bloque anterior para proporcionar entrada al cifrado actual que se está generando. Debido a la dependencia de cifrados anteriores, CFB no se puede procesar en paralelo. Los cifrados de transmisión permiten que un bloque se pierda en tránsito, pero los bloques posteriores pueden recuperarse del daño.
-
Encadenamiento de comentarios de salida (OFB) :Similar a CFB, este es un cifrado de flujo continuo, pero permite aplicar códigos de corrección de errores antes del cifrado.
-
Contador (CTR) :Convierte un cifrado de bloque en un cifrado de flujo, pero utiliza un contador. El contador de incrementos alimenta cada cifrado de bloque en paralelo, lo que permite una ejecución rápida. El nonce y el contador se concatenan juntos para alimentar el cifrado de bloque.
-
CBC con código de autenticación de mensajes (CBC-MAC) :Un MAC (también conocido como etiqueta o MIC) se usa para autenticar un mensaje y confirmar que el mensaje proviene del remitente indicado. Luego, el MAC o MIC se agrega al mensaje para que el receptor lo verifique.
Estos modos se construyeron por primera vez a fines de la década de 1970 y principios de la de 1980 y fueron promovidos por el Instituto Nacional de Estándares y Tecnología en FIPS 81 como modos DES. Estos modos proporcionan cifrado para la confidencialidad de la información, pero no protegen contra modificaciones o alteraciones. Para hacer eso, se necesita una firma digital y la comunidad de seguridad desarrolló CBC-MAC para la autenticación. Combinar CBC-MAC con uno de los modos heredados fue difícil hasta que se establecieron algoritmos como AES-CCM, que proporcionan tanto autenticación como secreto. CCM significa Contador con modo CBC-MAC.

AES-CCM utiliza cifrados duales:CBC y CTR. El modo AES-CTR o contador se utiliza para el descifrado general del flujo de texto cifrado que fluye. El flujo entrante contiene una etiqueta de autenticación cifrada. AES-CTR descifrará la etiqueta y los datos de carga útil. Una "etiqueta esperada" se forma a partir de esta fase del algoritmo. La fase AES-CBC del algoritmo etiqueta como entrada los bloques descifrados de la salida AES-CTR y el encabezado original de la trama. Los datos están encriptados; sin embargo, los únicos datos relevantes necesarios para la autenticación son la etiqueta calculada. Si la etiqueta calculada AES-CBC difiere de la etiqueta esperada AES-CTR, entonces existe la posibilidad de que los datos hayan sido manipulados en tránsito.
La siguiente figura ilustra un flujo de datos cifrado entrante que se autentica mediante AES-CBC y se descifra mediante AES-CTR. Esto garantiza tanto el secreto como la autenticidad del origen de un mensaje:
haz clic para ampliar la imagen
Modo AES-CCM.

Tecnología de Internet de las cosas
- El camino hacia la seguridad industrial de IoT
- La seguridad sigue siendo una preocupación clave de IoT
- Protección del vector de amenazas de IoT
- Seguridad de IoT:¿de quién es la responsabilidad?
- Todo va a IoT
- Seguridad de IoT:¿una barrera para la implementación?
- Protección de IoT mediante engaños
- Automatización e IoT:una combinación perfecta para la logística y la seguridad de la atención médica
- La seguridad potencia el verdadero potencial de IoT
- Resumen de un año:12 consideraciones de seguridad de IoT
- La visión artificial es clave para la industria 4.0 y la IoT