BLOG

Protocolos de mensajes de IoT: ¿El próximo desafío de seguridad para los proveedores de servicios?

Miniatura F5
F5
Publicado el 24 de febrero de 2017

El estado del IoT


Gartner pronostica que habrá 20.800 millones de dispositivos conectados en todo el mundo para 2020. El creciente número de dispositivos conectados en la Internet de las cosas (IoT) brinda una oportunidad para que los proveedores de servicios desarrollen nuevas fuentes de ingresos. Para los usuarios finales, IoT tiene el potencial de proporcionar soluciones que pueden mejorar drásticamente la productividad y la calidad en seguridad, salud, educación y muchas otras áreas. Para aprovechar esta oportunidad, los proveedores de servicios deben brindar una experiencia óptima al cliente, garantizando al mismo tiempo la absoluta protección de datos, privacidad y seguridad del usuario.

Sin embargo, esta gran cantidad de dispositivos diversos también aumentará la vulnerabilidad de la red, y muchos de ellos tienen el potencial de convertirse en objetivos de piratas informáticos y ataques de denegación de servicio. Los dispositivos IoT suelen tener limitaciones en cuanto a memoria, almacenamiento y recursos computacionales. Estas limitaciones hacen que sea un desafío soportar algoritmos de seguridad complejos y en evolución, ya que requieren mayor potencia de procesamiento con bajos ciclos de CPU. Los dispositivos conectados también podrían sobrevivir a la efectividad del cifrado.

En una encuesta e informe de febrero de 2016 sobre El futuro de la prestación de servicios móviles, Jim Hodges, analista sénior de Heavy Reading, señaló que la principal preocupación de seguridad para los proveedores de servicios son las interrupciones causadas por ataques distribuidos de denegación de servicio (DDoS) y botnets. A este temor le siguen amenazas relacionadas con la integridad del sistema en las que el tráfico es manipulado por atacantes externos mientras suplantan la identidad de un usuario.

Figura 1: Los proveedores de servicios clasifican sus preocupaciones sobre la seguridad.

Tres conceptos son fundamentales para la seguridad de IoT: identidad, autenticación y autorización. La identidad consiste en nombrar y proporcionar autorización al cliente. La autenticación significa comprobar la identidad del cliente, y la autorización se refiere a gestionar los derechos que se le otorgan al cliente. Para permitir aún más la recopilación de datos del dispositivo para el análisis de inteligencia en tiempo real, también deben acordarse los protocolos de comunicación de IoT.

Los protocolos de mensajes de IoT deben incluir las siguientes funciones de alto nivel:

  • Validación del protocolo de mensajes y mitigación de DDoS
  • Mediación de protocolos con traducciones de varios protocolos de IoT
  • Interoperabilidad del protocolo de mensajes de IoT
  • Detección y prevención de tormentas de señalización de IoT

Hoy en día, el protocolo de mensajes de IoT más popular es MQTT (Message Queue Telemetry Transport). MQTT se utiliza como protocolo de transporte principal en sectores industriales como fabricación, seguimiento de envíos y activos, energía y hogares conectados . Empresas como IBM, Microsoft, Amazon Web Services y Facebook Messenger utilizan MQTT para la entrega rápida de mensajes y para ahorrar batería en los dispositivos.

Seguridad del protocolo

Conceptos básicos de MQTT

Los protocolos de IoT como MQTT se utilizan para una comunicación segura y confiable entre dispositivos. MQTT se basa en el Protocolo de control de transmisión (TCP) y puede protegerse con Seguridad de la capa de transporte (TLS). El protocolo MQTT ha sido diseñado con bajos requisitos de memoria y computación y está optimizado con un tamaño de paquete mucho más pequeño y simple que HTTP para ciertas aplicações de IoT.

MQTT se creó originalmente en 1999 para sensores remotos, pero ha encontrado una nueva vida con varias aplicações de IoT basadas en un modelo de publicación y suscripción. Los dispositivos/sensores “publicarán” datos en una plataforma de IoT (broker) y la aplicação de IoT luego se “suscribirá” a los datos que sean relevantes para su caso de uso. Los datos publicados y suscritos se denominan “tema”, y pueden organizarse en una estructura jerárquica según los casos de uso y la categoría del tipo de datos. La conectividad y las comunicaciones entre los dispositivos y su plataforma influyen en la carga, el control y la seguridad que requiere cada caso de uso.

Para mantener el protocolo lo más liviano posible para dispositivos IoT con recursos limitados, MQTT proporciona una seguridad mínima más allá de TCP. MQTT solo recomienda que se utilice el protocolo TLS para aplicações que requieren niveles adicionales de autenticación. Como resultado, las comunicaciones MQTT que dependen únicamente de TCP no están cifradas y son susceptibles a ataques del tipo "man-in-the-middle".

Vulnerabilidades de MQTT

El protocolo MQTT conlleva una serie de vulnerabilidades potenciales. Por ejemplo, los puertos abiertos se pueden utilizar para lanzar ataques de denegación de servicio (DoS), así como ataques de desbordamiento de búfer en redes y dispositivos. Dependiendo de la cantidad de dispositivos IoT conectados y de los casos de uso admitidos, la complejidad de la estructura del “tema” puede crecer significativamente y causar problemas de escalabilidad. Las cargas útiles de los mensajes MQTT están codificadas en binario, y los tipos de aplicação/dispositivos correspondientes deben poder interoperar. Otro área problemática son los nombres de usuario y contraseñas de los mensajes MQTT, que se envían en texto sin cifrar.

Si bien no es parte específica de la especificación MQTT, se ha vuelto habitual que los intermediarios de plataformas IoT admitan la autenticación de clientes con certificados SSL/TLS del lado del cliente. El cifrado de transporte con SSL y TLS puede proteger los datos cuando se implementa correctamente. Para protegerse contra amenazas, los datos confidenciales, incluidos los ID de usuario, las contraseñas y cualquier otro tipo de credenciales, siempre deben estar cifrados.

La desventaja de usar TLS, SSL y otros métodos de cifrado es que pueden agregar una sobrecarga significativa. Sin embargo, técnicas como la reanudación de sesión TLS pueden compensar algunos de los costos de conexión de TLS. La aceleración de hardware es otro método para reducir la penalización de tamaño por cifrado. Para aplicações complejas en dispositivos restringidos, una biblioteca de cifrado optimizada puede ser muy útil. Cuando el código de la aplicação es grande, una biblioteca de cifrado puede reducir la memoria de procesamiento y aumentar el rendimiento.

La arquitectura de MQTT depende de que los brokers tengan alta disponibilidad. El uso de certificados X.509 para la autenticación de clientes puede ahorrar recursos en el lado del broker cuando muchos clientes intentan usar servicios del broker, como búsquedas en bases de datos o llamadas a servicios web. La combinación de MQTT con estándares de seguridad de última generación como TLS y el uso de certificados X.509 también puede ayudar a mejorar la seguridad y el rendimiento.

Seguridad de aplicação IoT de extremo a extremo

La IoT representa una nueva oportunidad de negocio importante para los proveedores de servicios. Si bien proteger el protocolo de mensajería MQTT con TLS es una consideración de seguridad importante, también se pueden explotar muchos otros vectores de ataque. Los proveedores de servicios deben garantizar la seguridad de extremo a extremo con una autenticación estricta de los dispositivos, autorización y políticas aplicadas por la red para el acceso a las rutas de comunicación. El cifrado de datos para seguridad y privacidad también es fundamental para los flujos de ingresos de los proveedores de servicios a la hora de ofrecer una experiencia óptima al cliente.

Figura 2: Seguridad de aplicação de IoT mediante cifrado de transporte con SSL y TLS para proteger los datos.