Ho un caso d'uso in cui non sono in grado di utilizzare MQTTS / TLS a causa del vincolo sui dispositivi.
Il nostro piano è di eseguire l'autenticazione durante MQTT CONNECT
, passando un token JWT come password. Se capisco correttamente MQTT mantenere una connessione TCP aperta per tutti i messaggi successivi.
Dato un broker MQTT standard (come HiveMQ, VerneMQ, ...), è possibile che un utente malintenzionato abbia un messaggio PUBLISH
mqtt senza prima chiamare CONNECT
?
Ovviamente possono potenzialmente annusare il token JWT e chiamare CONNECT
, ma questo token sarà valido solo per un breve periodo di tempo ... E possiamo anche mettere in atto dei controlli su CONNECT
per provare per prevenire gli attacchi (filtro IP, ...).
Ho saputo che in ogni caso questa non sarà una soluzione a prova di sicurezza, ma sarà usata solo su un piccolo set di dispositivi, si spera per un breve periodo di tempo.
La mia preoccupazione è se un utente malintenzionato può semplicemente inviare traffico "per conto di un'altra connessione TCP"? Chiamando PUBLISH
senza prima chiamare CONNECT
. Forse questo non ha senso ...