Lograr una seguridad justa en las redes de sensores inalámbricos

El Internet de las cosas (IoT) está creciendo rápidamente, y las redes inalámbricas de sensores (WSN) son fundamentales para ampliar el alcance de la infraestructura del Internet de las cosas a todo. Las WSN ya se utilizan en aplicaciones críticas de monitoreo y control en todo el mundo. Cualquier pérdida de seguridad en estos sistemas podría tener consecuencias reales y directas para la eficiencia y la seguridad.

Afortunadamente, la literatura sobre la seguridad de los sistemas inalámbricos está fácilmente disponible y las mejores prácticas son bien conocidas. A pesar de este conocimiento, las noticias están llenas de informes que documentan ataques exitosos a redes inalámbricas en general y WSN en particular. Sorprende que muchos productos en el mercado no incorporen ni los conceptos más básicos de seguridad del sistema, y ​​muchos otros productos con buenas intenciones de seguridad se quedan cortos. Aquí documentamos algunos de los errores comunes y sus soluciones conocidas. La seguridad inalámbrica no es trivial, pero con una cuidadosa atención a los detalles, es sencillo construir sistemas que no sean vulnerables a los ataques inalámbricos.

Fundamentos

Los problemas de seguridad no se limitan a los sistemas inalámbricos. De hecho, los ataques de Internet, grandes y pequeños, son tan comunes hoy en día que apenas vale la pena mencionarlos. Existe la percepción de que los sistemas inalámbricos son más vulnerables a los ataques porque cualquier persona con la radio adecuada puede comunicarse con un dispositivo inalámbrico a cierta distancia. Por supuesto, en Internet, cualquier persona con una computadora puede lanzar un ataque a distancias mucho mayores que las que se propagaría cualquier señal de radio. En última instancia, todos los sistemas ciberfísicos, ya sean cableados o inalámbricos, requieren cuidadosas precauciones contra ataques.

Metas

Los principales objetivos de seguridad en WSN son:

  • Confidencialidad: solo el destinatario previsto puede leer los datos transportados a través de la red.
  • Integridad: se sabe que el mensaje recibido es exactamente el mensaje recibido, sin que se agregue, elimine ni altere nada en el contenido.
  • Autenticidad: un mensaje que dice ser de una fuente en particular en realidad proviene de esa fuente. Si se utiliza el tiempo como parte del esquema de autenticación, la autenticidad también protege una grabar y reproducir un mensaje.

La privacidad es necesaria no solo para las aplicaciones relacionadas con la seguridad, sino también para las aplicaciones comunes del día a día. Por ejemplo, la información de los sensores puede tener sensibilidades competitivas con respecto a los niveles de producción o el estado del equipo; por ejemplo, la Agencia de Seguridad Nacional (NSA) no publica el consumo de energía de sus centros de datos porque estos datos pueden usarse para evaluar los recursos informáticos. Los datos del sensor deben cifrarse para que solo el destinatario previsto pueda utilizarlos.

La información de detección y comando debe estar intacta. Si un sensor lee "nivel del tanque 72 cm" o el controlador lee "girar la válvula 90 grados", la falta de uno de los dígitos en cualquiera de estas cifras podría ser muy grave. Es fundamental confiar en la fuente del mensaje. Cualquiera de los dos mensajes anteriores podría tener graves consecuencias si lo envía un atacante malicioso. Un gran ejemplo es un mensaje como "un nuevo programa está a punto de ejecutarse".

Consecuencias

Las consecuencias de una mala seguridad no siempre son fáciles de predecir. Por ejemplo, un sensor de temperatura o termostato inalámbrico puede ser un producto de baja seguridad. Sin embargo, imagine un titular de periódico que describa cómo los delincuentes usaron una radio para detectar la configuración de "vacaciones" en el termostato y robaron estas casas mientras estaban fuera. El impacto en la lealtad del cliente, sin mencionar las ventas, sería dramático. La forma más segura es cifrar todos los datos.

En los primeros días de ZigBee, la mayoría de las redes funcionaban sin ningún tipo de seguridad. Como resultado, al demostrar la interoperabilidad de múltiples proveedores frente a muchos clientes potenciales, algunas redes ZigBee fallaron estrepitosamente porque interpretaron un comando de una red diferente como un mensaje de realineación del coordinador, diciéndoles que cambiaran el canal. ¡Las redes ZigBee no tenían forma de determinar que los mensajes provenían de un dispositivo que no estaba en su red! Este comportamiento catastrófico no fue el resultado de un ataque real, sino más bien una falta de autenticación, lo que resultó en la interpretación de paquetes de una red completamente diferente.

En la automatización de procesos industriales, las consecuencias de un ataque pueden ser mucho más graves que la pérdida de un cliente. Si se pasa información de control de procesos errónea al sistema de control, un atacante podría causar daños físicos. Por ejemplo, un sensor que proporciona datos a un controlador de motor o válvula que indica que la velocidad del motor o el nivel del tanque es demasiado bajo podría provocar una falla catastrófica, similar a lo que sucedió con las centrífugas durante el ataque Stuxnet. [Stuxnet].

En un nivel puramente práctico, es probable que un ataque fallido o la exposición académica de una debilidad potencial resulte en pérdidas de ventas, un esfuerzo de ingeniería urgente y un gran desafío de relaciones públicas.

Instrumentos

Afortunadamente, existen herramientas poderosas para crear redes de comunicación inalámbrica seguras y sólidas. Se necesita dedicación y atención a los detalles, pero no hay nada realmente difícil al respecto.

Números y Nonces

La herramienta criptográfica más básica es el cifrado de bloque. Por ejemplo, AES-128 es una cadena de bloques especial que toma un mensaje de 16 bytes (el texto sin formato) con una clave de 128 bits y genera una versión cifrada de 16 bytes del mensaje (el texto cifrado). Cualquiera con la misma clave puede descifrar el texto cifrado para recuperar el texto sin formato. Nadie sin la clave puede obtener el texto sin formato. El cifrado AES (Advanced Encryption Standard) es fácil de implementar en software y normalmente está disponible en hardware en muchos microprocesadores y chips de radio. Por lo que se sabe, AES-128 es irrompible: dado el texto cifrado, no hay forma de descifrar el texto sin formato sin la clave. De hecho, la Agencia de Seguridad Nacional de EE. UU. eligió el mismo cifrado base para cifrar documentos de alto secreto. En todos los ataques informados a la seguridad de WSN, nadie ha afirmado que el cifrado AES proporcionó el eslabón débil.

El único ataque conocido contra AES-128 es el llamado ataque de "fuerza bruta", lo que significa que el atacante prueba todas las claves posibles para determinar cuál da un mensaje razonable. Probar todas las claves posibles de 128 bits es una tarea abrumadora. Si tuviera mil millones de computadoras, y cada computadora pudiera verificar mil millones de claves cada segundo, y ejecutara todas esas computadoras durante mil millones de años, solo generaría alrededor del 0.1% de las claves de 128 bits que podrían tener Hay más de 300 billones de billones de billones de claves diferentes de 128 bits.

Blockchain permite que la fuente cifre un mensaje para que solo el destino (con la misma clave) pueda descifrarlo. Por supuesto, si los mensajes son algo simple como "luz encendida" o "luz apagada", incluso si los mensajes están encriptados en cadenas de bits como el significado, cualquiera que intercepte algunos mensajes comprenderá rápidamente que solo hay dos mensajes diferentes. Una solución a este problema es disponer de un contador de mensajes con el número de cada mensaje enviado. Debido a la naturaleza del cifrado, cualquier cambio en el texto sin formato del mensaje dará como resultado un texto de texto diferente y dos mensajes que se enviarán en momentos diferentes, por ejemplo, "Mensaje 1: Encienda la luz" y "Mensaje 53: Encienda la luz "." es completamente diferente para cualquiera que no esté en posesión de la llave. Siempre que el contador de mensajes nunca cambie, el texto cifrado tampoco cambiará nunca. Este concepto de un contador de mensajes que nunca se recarga se llama nonce, como un "número usado una vez".

Comprobación de la integridad del mensaje

Es una comprobación criptográfica del mensaje. es la Verificación de integridad del mensaje, o MIC (a veces llamado Código de autenticación del mensaje o MAC). Al ejecutar cada parte de un mensaje secuencialmente a través de un cifrado de bloque con una clave separada, el remitente del mensaje crea un breve resumen cifrado de todo el mensaje, conocido como verificación de integridad del mensaje. Este MIC luego se agrega al mensaje. El receptor, utilizando la misma tecla, puede realizar la misma función en el mensaje, calculando su propio MIC y verificando que el resultado coincide con el MIC recibido. Cualquier modificación del mensaje, aunque sea leve, modificará el MIC y, por tanto, el destinatario rechazará el mensaje.

Generadores de números aleatorios

Se pueden generar las claves de cifrado en una WSN, pero esto suele ser poco práctico y, en última instancia, inseguro, como se explica a continuación. Idealmente, las computadoras tendrían que generar las claves para nosotros. No queremos que nadie pueda adivinar las claves, por lo que queremos que sean aleatorias, y eso requiere un generador de números aleatorios (RNG). Las personas generalmente están contentas con las computadoras cuando son completamente deterministas y tienen un mal comportamiento aleatorio. Hacer una computadora verdaderamente aleatoria no es una tarea trivial y siempre implica interactuar con un objeto no digital. Afortunadamente, son radios intrínsecamente no digitales, y se ha avanzado un siglo desde los días de Marconi para llevarlos al punto en que entregan mensajes digitales de manera confiable. Cualquier sistema WSN bien diseñado utilizará la radio u otra fuente de ruido térmico como parte de su RNG y generará números verdaderamente aleatorios.

Control de acceso

Incluso un dispositivo que se adquiere legítimamente y se implementa incorrectamente puede causar que un sistema de control que no espera que se pierda información adicional. Las listas de control de acceso (listas blancas, listas negras) brindan una capa adicional de control para garantizar que los dispositivos no deseados no puedan interferir con una red.

errores

Falta de comprensión del problema.

El error más común en la seguridad de WSN es no comprender el alcance del problema hasta que es demasiado tarde. Es posible que no se sienta cómodo construyendo e implementando un sistema de control de iluminación inalámbrico sin seguridad hasta que los estudiantes locales comiencen a hacer espectáculos de luces en las oficinas de su cliente.

Incluso aquellos que entienden la importancia de la seguridad pueden no darse cuenta de la gran sofisticación, las herramientas de software y hardware y las habilidades disponibles y que se aplican de forma rutinaria al lado oscuro de este conflicto. Muchas compañías de WSN han dicho que sus protocolos de salto de canal tienen ventajas de seguridad, como si un atacante no pudiera comprar un receptor y transmisor multicanal. Otros parecen pensar que millones o miles de millones de claves son suficientes para evitar un ataque exitoso, cuando incluso miles de millones no son suficientes. [DES-cracking1998].

A muchas personas que entienden que la seguridad es buena en principio les preocupa que sea práctica, que requiera demasiada computación o batería. Afortunadamente, todas las tecnologías descritas en este artículo pueden (y han sido) utilizadas en nodos de sensores inalámbricos con recursos computacionales muy limitados que operan a niveles de potencia de microvatios. Otros se preocupan por los "problemas" de seguridad. Como dijo un cliente preocupado: "Las únicas herramientas que nuestros instaladores saben usar son un martillo y un soplador". Afortunadamente, la mayoría de las aplicaciones se pueden implementar de tal manera que todos los mecanismos de seguridad estén automatizados, no requieran intervención humana y sean completamente transparentes para el usuario final. Los técnicos que manejan mazos ahora instalan rutinariamente redes de sensores seguras, lo sepan o no.

Claves compartidas e ingeniería inversa de software

Si se elige un cifrado adecuado y se utilizan noces, el sistema más simple utilizará una clave compartida para todas las operaciones criptográficas. Este enfoque es aceptable siempre que se mantenga la clave secreta, pero es un objetivo difícil de lograr.

Un gran ejemplo es la vulnerabilidad reportada recientemente de un combo de inodoro/bidé controlado por Bluetooth, donde se usó la clave de emparejamiento predeterminada de todos los ceros. [Trustwave]. En realidad, este es más un ejemplo de "sin seguridad" que de mala seguridad, pero muestra que los mejores protocolos no ofrecen protección contra claves mal elegidas, o incluso una clave aleatoria que es ampliamente conocida en Internet. Bluetooth tiene excelentes herramientas de seguridad, pero si no las usa correctamente, no tendrán ningún valor una vez que alguien publique una clave de producto desacertada en la web.

El nivel más alto es tener una clave única para cada red entregada o instalada, o una nueva clave cada vez que se forma una red. Si tiene un buen generador de números aleatorios y controla todo el hardware de su red, este enfoque está bien. Sin embargo, si uno de los nodos de la red se ve comprometido, toda la red está abierta al ataque. Si a los usuarios se les permite escribir su propio software en los nodos de la red, es bastante difícil evitar que un usuario malintencionado encuentre la clave de la red.

Incluso si el software del nodo está cerrado, es bastante difícil evitar que un atacante lea el programa en un microprocesador si posee el hardware. La literatura de seguridad está llena de ejemplos de este tipo de ataques, que a menudo se ven así:

  • Obtenga una versión legal del contenido y acceda a ella para obtener el código.
  • Ingeniería inversa del código para averiguar dónde se almacena la clave (esto puede ser tan simple como comparar el código de dos redes diferentes para averiguar qué bits son diferentes).
  • Utilice esta información para comprender cómo se calculó la clave (consulte la sección RNG de mala calidad) o para acelerar la extracción de la clave del contenido capturado de la red real bajo ataque.

Tal ataque se realizó contra la seguridad de los discos de video digital (DVD). El DVD Content Scramble System (CSS) original y el Advanced Access Content System (AACS) de HD-DVD/Blu-Ray están en riesgo después de que los piratas informáticos examinaron el código del reproductor y expusieron y liberaron algunas de las claves de procesamiento que protegen este contenido. [AACS].

Con muy raras excepciones, debe asumir que un atacante determinado podrá encontrar su hardware, leer su código y aplicar ingeniería inversa a sus algoritmos y software. Por lo tanto, un sistema de seguridad bien diseñado no debe depender de algoritmos y software que permanezcan en secreto, ni debe depender de una clave o claves de dispositivo que permanezcan en secreto. Se debe suponer que un atacante en posesión de uno de los nodos de la red podrá obtener el control total de ese nodo y, en un sistema bien diseñado, el compromiso de un solo nodo no debería afectar la seguridad del resto de los nodos. red .

La solución más simple a este problema de ingeniería inversa es garantizar que cada sesión de comunicación (o flujo de datos entre dos puntos finales) tenga sus propias claves únicas que sean desconocidas para todos los demás nodos de la red. En este caso, incluso un nodo comprometido en la red no puede espiar, manipular o imitar los datos o comandos de cualquier otro nodo en la red.

Distribución de llaves

Cuando se utilizan los protocolos y cifrados apropiados, una red con claves aleatorias únicas para cada sesión de extremo a extremo protege la confidencialidad, integridad y autenticidad de las comunicaciones de la red. Sin embargo, la distribución de claves expone vulnerabilidades en algunos sistemas. Por lo general, no es práctico registrar previamente cada nodo en la red con todas las claves únicas que necesitará para cada sesión futura, por lo que las claves deben distribuirse después de entrenar la red. En algunos sistemas, esto se hizo enviando las claves de la sesión inicial "en claro" (sin encriptación), asumiendo que la red solo era vulnerable a ataques por un corto tiempo cuando la red estaba siendo entrenada. Desafortunadamente, un atacante puede configurar su software espía y esperar pacientemente a que se restablezca la red o, de hecho, provocar un restablecimiento de la red al reiniciar el controlador de red o la puerta de enlace, o por algún otro medio.

Una solución simple a este problema es instalar una clave única en cada nodo de la red en el momento de la fabricación y tener un administrador de seguridad de confianza en la red que reciba estas claves, lo que permite una sesión segura entre cada nodo y el administrador de seguridad. . . Luego, el administrador de seguridad genera las claves necesarias para todas las demás sesiones y las envía a través de sus canales seguros a cada uno de los dispositivos relevantes. Alternativamente, existe otro conjunto de herramientas que utilizan infraestructura de clave pública que ofrece una funcionalidad similar con otros beneficios. [PKI].

RNG de mala calidad

Entre aquellos que toman en serio la seguridad, quizás el error más común es usar un generador de números aleatorios inferior. Incluso con todos los protocolos y patrones correctos, atacar la red es tan difícil como adivinar las claves. Los errores comunes aquí son utilizar generadores de números aleatorios no crípticos o generadores de números aleatorios criptográficos con semillas no aleatorias.

Los números aleatorios son útiles en muchas aplicaciones informáticas diferentes, por lo que muchos sistemas operativos tienen una función "rand()" incorporada. Por ejemplo, la función original de UNIX rand() mantuvo un estado interno de 32 bits y calculó el siguiente aleatorio. el siguiente número y el estado basado en el estado actual. Un usuario podría sembrar este RNG con un número de 32 bits, luego cada llamada a rand() generaría el siguiente valor en una secuencia de cuatro mil millones de valores. No era un gran RNG, pero era lo suficientemente bueno para la mayoría de las aplicaciones no crípticas. Hoy, sin embargo, sería una tarea simple generar una tabla en una sola computadora de escritorio que contenga los cuatro mil millones de números aleatorios y su posición en orden. Ninguna cantidad de aleatorización de semillas ayudará: el RNG en sí no es lo suficientemente sofisticado.

Los RNG criptográficos usan mucho más estado interno, generalmente al menos 128 bits. Con 128 bits, como se muestra arriba, es poco probable que incluso miles de millones de computadoras funcionando durante miles de millones de años encuentren un patrón en la secuencia de números. Los procedimientos para implementar y probar buenos RNG criptográficos están bien documentados. [NIST].

Incluso el mejor algoritmo RNG es tan aleatorio como la semilla que se le proporcionó. Se reportó un error común en dos sistemas de seguridad WSN en [IOActive], en el que descubrieron mediante ingeniería inversa los binarios de software de ambos productos que estaban usando una semilla muy aleatoria. Ambos productos utilizaron la función de tiempo (en segundos) como la semilla de su generador de números aleatorios. Dado que solo hay unas pocas milésimas de segundo por año, incluso una computadora portátil modesta puede generar todas las claves posibles a través de una búsqueda rápida en las últimas décadas.

Redes seguras

Si bien las noticias están llenas de ejemplos de fallas en la seguridad inalámbrica, el mundo está lleno de redes inalámbricas realmente seguras. Las redes seguras ni siquiera miran. Como se indicó anteriormente, una red segura requiere un protocolo seguro y una implementación segura.

Algunos ejemplos de protocolos de seguridad bien diseñados en WSN incluyen los protocolos de automatización inalámbrica industrial HART e ISA100.11a, y los protocolos ZigBee Smart Energy. Todos estos protocolos han sido revisados ​​exhaustivamente por expertos en seguridad, y muchas implementaciones han sido objeto de un escrutinio similar.

En particular, el protocolo inalámbrico HART es la base para redes seguras implementadas en aplicaciones de infraestructura crítica en todo el mundo, desde el círculo polar ártico hasta el desierto árabe. Los usuarios finales de esta tecnología confían en WSN para entregar de manera confiable y confidencial información de control de procesos entre puntos finales autenticados. Los clientes de esta industria, así como los proveedores que los suministran, confían en sus redes debido al análisis y las pruebas exhaustivos de los protocolos y las implementaciones que las sustentan.

En WSN para la automatización de procesos industriales se entendió desde un principio que la seguridad es fundamental, y los protocolos e implementaciones reflejan esta realidad. A medida que surgen nuevos protocolos, especialmente para IoT, algunas de las lecciones más difíciles de aprender se encontrarán en entornos de aplicaciones donde es menos obvio que la seguridad es primordial. Como han demostrado los ejemplos anteriores, algunos de ellos todavía tienen que aprender estas lecciones. Afortunadamente, es tan fácil proporcionar seguridad de "grado industrial" en aplicaciones de Protocolo de Internet (IP) como lo es en aplicaciones industriales. Los ejemplos incluyen SmartMesh IP de Linear Technology y muchos de los estándares IP emergentes.

Conclusión

Las consecuencias de una seguridad deficiente en las redes de sensores inalámbricos son graves. Es desafortunado que muchos productos en el mercado actual no hayan hecho un esfuerzo serio para ser seguros o hayan fallado en ese esfuerzo. Afortunadamente, mediante el uso de principios bien establecidos, protocolos y patrones adecuados, y la aleatoriedad inherente de la física del ruido térmico, es posible construir sistemas que sean seguros y eficientes. Existen muchos protocolos e implementaciones de este tipo, y el mundo está cubierto de redes inalámbricas seguras. Todos en el espacio de redes de sensores inalámbricos se beneficiarán cuando todas las demás redes también sean seguras.

Referencias

[Stuxnet] seguridad/stuxnet-true-story

[DES-cracking1998] Fundación Frontera Electrónica, "Cracking DES", O'Reilly Media, 1998.

[Trustwave]

[AACS]

[PKI]

[NIST] fips140-2/fips1402anexo.pdf

[IOActive] Lucas Apa, Carlos Hollman, “Instalaciones industriales en peligro a 40 millas de distancia.* Blackhat 2013.

Si quieres conocer otros artículos parecidos a Lograr una seguridad justa en las redes de sensores inalámbricos puedes visitar la categoría Generalidades.

¡Más Contenido!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir