Por David Gascón, CTO de Libelium.

Infografía sobre seguridad IoT

La seguridad en el IoT es una de las principales preocupaciones de los ayuntamientos a medida que los proyectos de Smart Cities comienzan a ser una realidad. En el siguiente artículo expondremos cuál es la propuesta de seguridad desarrollada por Libelium para sus dispositivos sensores y pasarelas: Waspmote, ¡Plug & Sense! y Meshlium

En el presente artículo nos adentramos en las cuatro características principales de la Seguridad:

Infografía sobre seguridad IoT
Dispositivo a dispositivo (cifrado simétrico) [Nivel de cifrado 1 - E1]

Los nodos finales aplican un primer nivel de cifrado en la capa de enlace. Todos los nodos pertenecientes a la misma red comparten una clave común precompartida. De este modo se evita que dispositivos externos se unan a la red de sensores (garantizando la privacidad) o vean la información contenida en los paquetes que se envían mientras se encriptan (garantizando la confidencialidad). Este proceso de cifrado se realiza en Waspmote y ¡Plug & Sense! mediante hardware electrónico especial incluido en los módulos de radio. AES 128b es el algoritmo más utilizado en esta primera capa.

Infografía sobre seguridad IoT
Dispositivo a pasarela (cifrado simétrico) [Nivel de cifrado 2 - E2]

En una Smart City hay muchas redes de sensores diferentes trabajando al mismo tiempo, por ejemplo podemos encontrar los nodos de Smart Parking enviando datos en paralelo a la Smart Environment o los dispositivos sensores Smart Water. Como todos ellos pueden compartir el mismo E1 utilizada en la capa de enlace, se añade un nuevo mecanismo de seguridad, esta vez mediante el uso de cifrado simétrico en la capa de red/aplicación. E2.

Ahora cada nodo de la red tiene su propia clave privada (que garantiza la autenticidad) y el Pasarela (Meshlium) contiene todas las claves de los dispositivos para poder descifrar los paquetes enviados. La información va encriptada desde cada nodo hasta la pasarela para que los nodos intermedios no puedan acceder a ella (asegurando la privacidad y confidencialidad). Añadiendo un número de secuencia + una semilla aleatoria interna podemos realizar la suma de comprobación para asegurarnos de que los datos contenidos no han sido alterados (garantizando la integridad).

El proceso de encriptación en Waspmote y ¡Plug & Sense! se rige por bibliotecas de software incluidas en la API y ejecutado por la MCU. AES 256b es el algoritmo más utilizado. Normalmente se utiliza en combinación con la capa de seguridad E1 por lo que obtenemos un E1 + E2 esquema de seguridad.

iot_seguridad_2_2
Dispositivo a nube (cifrado simétrico) [Nivel de cifrado 3 - E3]

Esto es similar a E2 pero en lugar de tener las claves ubicadas en el Gateway se almacenan en el Nube. Esto permite utilizar diferentes Gateways (de confianza o no) ya que la información pasa encriptada a través de ellos.

El proceso de cifrado suele estar controlado por bibliotecas de software que ejecuta la MCU. AES 256b es el algoritmo más utilizado. Normalmente se utiliza en combinación con E1 por lo que obtenemos un E1 + E3 esquema de seguridad. La información va cifrada desde cada nodo hasta la pasarela, de modo que los nodos intermedios o las pasarelas no pueden acceder a ella.

iot_seguridad_3_2

Pasarela a la nube (Servidor web seguro - SSL-HTTPS-SSH) [Nivel de cifrado 4 - E4]

La Pasarela (Meshlium) utilizar certificados SSL para enviar la información a los diferentes Servidores en nube. Es el mismo esquema de seguridad que utilizamos con nuestros navegadores cuando nos conectamos a la web de nuestro banco.

Escenarios de combinación más comunes:

El escenario más seguro sería el que utilizara la combinación de todos ellos: E1 + E2 + E3 + E4 aunque reduciría la carga útil (enviaríamos menos bytes de información por paquete).

iot_seguridad_4_2
Renovación de claves (cifrado asimétrico) [Nivel de cifrado 5 - E5]

Antes de comenzar con el cifrado por software con AES 256 necesitamos compartir una clave entre cada nodo (origen) y el Pasarela o el Servidor en nube (destino). Para ello podemos cifrar la nueva clave utilizando RSA 1024 utilizando ambas claves Pública/Privada. De esta forma aseguramos la autenticación, confidencialidad e integridad del mensaje (ya que junto con la clave añadimos también una semilla para generar aleatoriedad en la transmisión del paquete). Una vez obtenida la clave compartida la utilizaremos para empezar a encriptar la información del sensor como se ve en el diagrama anterior ya que AES asegura el máximo rendimiento y la mínima sobrecarga de mensajes.

El mismo proceso se realiza cuando queremos renovar la clave AES.

Problemas de seguridad comunes resueltos con estos 5 niveles de cifrado:

iot_seguridad_6_2

Por qué los nodos sensores Libelium son inmunes a los ataques de las pasarelas IoT

La seguridad de sus dispositivos IoT es el mayor compromiso de Libelium. Como IBM X-Force anunció la semana pasada que había algunas vulnerabilidades en Meshlium IoT Gateway, se tomaron nuevas medidas inmediatamente por nuestro equipo de I+D ofreciendo una nueva versión de software lanzada el 1 de agostost.

La plataforma de sensores Libelium se creó inicialmente como una plataforma de desarrollo de código abierto lista para ser utilizada por investigadores y desarrolladores para tener un control total sobre los nodos sensores y las pasarelas IoT. Así es como hace seis años la plataforma de sensores Libelium se convirtió en una solución del mercado IoT mundial.

Desde el principio, nos centramos en ofrecer a los desarrolladores las herramientas adecuadas (API + SDK) para que pudieran tener un control total en cualquier aspecto de la configuración y el rendimiento. En cuanto a la seguridad de los datos recogidos y transmitidos nuestros dispositivos ofrecen la posibilidad de crear hasta 5 niveles de encriptación como se publica en el artículo titulado Infografía de Seguridad IoT - Privacidad, Autenticidad, Confidencialidad e Integridad de los Datos de los Sensores. "El activo invisible". Estos niveles están compuestos por técnicas de cifrado simétrico que utilizan la técnica de cifrado AES 256 en las capas de enlace, red y aplicación, y la RSA 1024 en la capa de aplicación.

Cuando los desarrolladores establecen correctamente estas técnicas de cifrado, pueden conseguir las cuatro características principales de seguridad para sus proyectos IoT: Privacidad para garantizar que sólo formen parte de la red los dispositivos sensores y pasarelas deseados; Autenticidad para garantizar que el supuesto remitente es el remitente real; Confidencialidad garantizar que los datos sólo puedan ser leídos por el destino propuesto; y Integridad para asegurarse de que la información contenida en el mensaje original permanece intacta.

Para garantizar todas estas características los nodos deben estar correctamente configurados, sin embargo parece que IBM no aplicó la configuración correcta para su demo en la Conferencia Black Hat 2018. En estas pruebas los investigadores no aplicaron el cifrado simétrico entre el nodo y la plataforma Cloud utilizando la técnica AES 256. Este cifrado, junto con un paquete firmado y sembrado (RSA 1024), asegura que la información no podría ser corrompida o cambiada, ya que los atacantes no pueden abrir el paquete y acceder a la info, porque las claves se almacenan en cada nodo y en el servidor Cloud, no en el Meshlium IoT Gateway. En este sentido, los posibles piratas informáticos ni siquiera podrían realizar un ataque de "hombre en el medio", ya que los paquetes están firmados y tienen varios contadores internos para garantizar que no se realicen retransmisiones de fuentes no válidas.

Utilizar en esa demo un esquema básico de configuración de los nodos sensores en lugar de aplicar las capas de cifrado completas, proporcionadas por Libelium, muestra un entorno poco fiable, muy alejado de los desarrollos de casos reales. Esta situación puede llevar a pensar que este sencillo esquema de configuración fue creado para hacer fácilmente algunas suposiciones sobre fugas de seguridad en la información de los nodos sensores cuando simplemente no existen cuando se realiza la configuración correcta.

En conclusión, cuando las opciones de seguridad están bien configuradas, aunque la transmisión de la red o la pasarela IoT se vean comprometidas, los datos seguirán estando seguros y no será posible corromperlos ni modificarlos. Lo más importante no es solo disponer de las herramientas adecuadas, sino también saber configurarlas y utilizarlas correctamente.


Para saber más sobre las librerías de encriptación implementadas por Libelium vaya a:
https://www.libelium.com/products/waspmote/encryption

Para obtener más información sobre las características de seguridad de la plataforma Libelium, visite:
https://www.libelium.com/iot-security-infographic-privacy-authenticity-confidentiality-and-integrity-of-the-sensor-data-the-invisible-asset/

Si desea más información sobre nuestros productos, visite
- Pasarela (Meshlium): https://www.libelium.com/products/meshlium/
- Waspmote: https://www.libelium.com/products/waspmote/
- Plug & Sense!: https://www.libelium.com/products/plug-sense/

O pregunte a nuestro equipo de ventas en
https://www.libelium.com/contact/

Autor: David Gascón, CTO de Libelium.