MQTT sin TLS: impide publicar mensajes desde dispositivos no autenticados

0

Tengo un caso de uso en el que no puedo usar MQTTS / TLS debido a restricciones en los dispositivos.

Nuestro plan es realizar la autenticación durante MQTT CONNECT , pasando un token JWT como contraseña. Si entiendo correctamente, MQTT mantendrá abierta la conexión TCP para todos los mensajes subsiguientes.

Dado un agente estándar de MQTT (como HiveMQ, VerneMQ, ...), es posible que un atacante PUBLISH mqtt mensaje sin llamar primero a CONNECT ?

Por supuesto, pueden potencialmente olfatear el token JWT y llamar al CONNECT , pero este token será válido solo por un corto período de tiempo ... Y también podemos implementar algunas auditorías en CONNECT para probar para evitar ataques (filtrado de IP, ...).

Sabía que, en cualquier caso, esto no será una solución de prueba segura, pero se usará solo en un pequeño conjunto de dispositivos, con suerte durante un breve período de tiempo.

Mi preocupación es si un atacante simplemente puede enviar tráfico "en nombre de otra conexión TCP". Llamar a PUBLISH sin llamar primero a CONNECT . Tal vez esto no tenga sentido ...

    
pregunta Davide Icardi 05.09.2018 - 12:40
fuente

1 respuesta

1

Por lo que sé, la primera operación que debe realizarse después del protocolo TCP es una CONEXIÓN. Entonces, en teoría, nadie puede enviar un mensaje PUBLICADO en el primer pdu de MQTT. Pero me preocuparé si la implementación de sus dispositivos permite recibir mensajes sin un mensaje CONECTAR. Por lo tanto, sería una buena idea verificar si la implementación en sus dispositivos respeta el orden, primero CONECTAR, utilizando una biblioteca que verifique sus inquietudes.

    
respondido por el camp0 05.09.2018 - 12:52
fuente

Lea otras preguntas en las etiquetas