Introducción
Existe una preocupación mundial por la seguridad de nuestros datos personales, por lo que en este post vamos a mencionar los diferentes métodos de seguridad que pueden transferir los datos sobre el broker para llegar al cliente de forma segura.
Estos métodos de seguridad son iniciados por el broker y depende del cliente cumplir con estos mecanismos. También es importante comprobar las capacidades de los clientes de MQTT así como de su broker.
Seguridad básica MQTT
La seguridad en MQTT se divide normalmente en varias capas para prevenir diferentes tipos de ataques. Donde el MQTT quiere llegar es a proporcionar un protocolo de comunicación ligero y fácil de usar para el Internet de las Cosas (IoT).
El protocolo en sí mismo especifica sólo unos pocos mecanismos de seguridad. Las implementaciones de MQTT comúnmente usan otros estándares de seguridad como SSL/TLS para la seguridad del transporte, pila TCP/IP, autentificación de certificados de clientes x509 y otros.
La división de los niveles de seguridad en MQTT sería la siguiente:
Nivel de red: para proveer una conexión fiable, necesitamos usar una red físicamente segura o VPN para toda la comunicación entre clientes y agentes. Esta solución puede funcionar con aplicaciones de gateway donde el gateway se conecta a los dispositivos y también a la VPN.
Nivel de transporte: SSL/TLS se utiliza comúnmente para la encriptación del transporte cuando se requiere confidencialidad. Los datos no pueden ser leídos durante la transmisión debido a este método seguro y proporciona una autentificación de certificado de cliente para verificar la identidad de ambos lados.
Nivel de aplicación: el protocolo MQTT proporciona una identificación de cliente, un identificador de cliente y credenciales de nombre de usuario/contraseña para autentificar los dispositivos en el nivel de aplicación. Estas propiedades son proporcionadas por el propio protocolo. Lo que los dispositivos están autorizados a hacer está definido por la implementación específica del agente. En el nivel de aplicación, también es posible utilizar la encriptación de la carga útil para asegurar la información transmitida sin necesidad de encriptación de transporte.
Después de hablar de cómo asegurar el MQTT a nivel de protocolo e implementar la seguridad a nivel de aplicación, vamos a hablar del despliegue seguro de un sistema MQTT. Vamos a repasar las diferentes capas de seguridad y cómo reforzar la prevención de los ataques.
Las diferentes capas de seguridad en las que nos centraremos en este caso son:
La infraestructura: Los brokers de MQTT corren típicamente en una infraestructura de red. Es importante entender la topología de la red del sistema objetivo, una parte de bloquear a los atacantes tan pronto como sea posible para evitar daños y tiempos de inactividad de los sistemas posteriores. Todas las conexiones con un corredor MQTT deben pasar, al menos, por un cortafuegos.
El sistema operativo: Los brokers MQTT están instalados en servidores que ejecutan varios sistemas operativos y muchos ataques se centran en los agujeros de seguridad del sistema operativo o del software.
El broker MQTT: las principales ventajas del broker MQTT son las siguientes: elimina las conexiones inseguras y vulnerables de los clientes, puede escalar fácilmente de un solo dispositivo a miles, rastrea y gestiona todos los estados de conexión de los clientes y puede trabajar con menor tensión de red sin comprometer la seguridad.
Conclusión
Cuando hablamos de la seguridad del sistema del MQTT, podemos decir que puede ser un desafío. La seguridad debe ser considerada en un alto número de niveles, por lo que es esencial conocer la infraestructura de la red con la que trabajas, aparte de sus servidores. Ambos necesitan ser configurados concienzudamente y de forma adecuada.