من یک مورد استفاده دارم که در آن من نمی توانم از MQTTS / TLS به دلیل محدودیت در دستگاه استفاده کنم.
برنامه ما این است که در طول MQTT CONNECT
تأییدیه را منتقل کنیم، یک نشانه JWT به عنوان یک کلمه عبور. اگر به درستی درک کنم MQTT یک اتصال TCP را برای تمام پیام های بعدی باز نگه می دارد.
با توجه به یک Broker استاندارد MQTT (مانند HiveMQ، VerneMQ، …)، ممکن است یک مهاجم به PUBLISH
mqtt message بدون تماس CONNECT
ابتدا؟
البته آنها به طور بالقوه میتوانند نشانه JWT را تشخیص دهند و با CONNECT
تماس بگیرند، اما این نشانه تنها برای مدت کوتاهی معتبر خواهد بود .. و همچنین ما می توانیم برخی از حسابرسی در CONNECT
برای جلوگیری از حملات (فیلتر کردن IP، …)
قرار داد.
من شناخته شده است که در هر صورت این راه حل امن اثبات نخواهد شد، اما این تنها در یک مجموعه کوچک از دستگاهها مورد استفاده قرار می گیرد، امیدوارم مدت زمان کوتاهی باشد.
نگرانی من این است که آیا مهاجم فقط می تواند ترافیک را از طرف یک اتصال TCP دیگر ارسال کند؟ تماس انتشار
بدون تماس اول CONNECT
. شاید این حس نداشته باشد …