tcp – MQTT بدون TLS – جلوگیری از ارسال پیام ها از دستگاه های غیرقابل شناسایی

من یک مورد استفاده دارم که در آن من نمی توانم از MQTTS / TLS به دلیل محدودیت در دستگاه استفاده کنم.

برنامه ما این است که در طول MQTT CONNECT تأییدیه را منتقل کنیم، یک نشانه JWT به عنوان یک کلمه عبور. اگر به درستی درک کنم MQTT یک اتصال TCP را برای تمام پیام های بعدی باز نگه می دارد.

با توجه به یک Broker استاندارد MQTT (مانند HiveMQ، VerneMQ، …)، ممکن است یک مهاجم به PUBLISH mqtt message بدون تماس CONNECT ابتدا؟

البته آنها به طور بالقوه میتوانند نشانه JWT را تشخیص دهند و با CONNECT تماس بگیرند، اما این نشانه تنها برای مدت کوتاهی معتبر خواهد بود .. و همچنین ما می توانیم برخی از حسابرسی در CONNECT برای جلوگیری از حملات (فیلتر کردن IP، …)

قرار داد.

من شناخته شده است که در هر صورت این راه حل امن اثبات نخواهد شد، اما این تنها در یک مجموعه کوچک از دستگاهها مورد استفاده قرار می گیرد، امیدوارم مدت زمان کوتاهی باشد.

نگرانی من این است که آیا مهاجم فقط می تواند ترافیک را از طرف یک اتصال TCP دیگر ارسال کند؟ تماس انتشار بدون تماس اول CONNECT . شاید این حس نداشته باشد …

برنامه وب – اگر رجیسترهای غیرقابل اعتماد از طرف سرور کنار گذاشته شوند، اگر از طریق document.createTextNode به داخل سند وارد شوند؟

Webapp چت. مشتریان (یعنی مرورگرهای وب) پیام هایی را به سرور ارسال می کنند که سرور آن را به تمام مشتریان مرتبط متصل می کند. کد مشتری به نظر می رسد مانند:

 اجازه دهید p = document.createTextNode ('p')
p.appendChild (document.createTextNode (پیام))
document.getElementById ('chatbox') appendChild (p)

از کجا پیام رشته دریافت شده از سرور است

مشکل در اینجا این است که به شدت توصیه میشود که داده های غیر قابل اطمینان سرور را ضدعفونی کنید تا قبل از قرار دادن آن درون سند با حذف شخصیت های خاص <، > ، ، و غیره) و جایگزینی آنها با نهادهای HTML مناسب است. به من گفته شد کد بالا برای XSS آسیب پذیر است اگر این ، ، ، ، ، ، کاراکترهای ویژه verbatim را نمایش می دهد و را نمی بینند و آنها را به صورت HTML می بینند. بنابراین ضدعفونی کردن سرور، تغییر کاراکترهای فوق به موجودات HTML باعث خواهد شد که مشتریان، نه شخصیت هایی که انسان ها قرار دارند

به این ترتیب من اعتقاد ندارم که چنین اعتبار لازم است و درست نیست زمانی که document.createTextNode () استفاده می شود.

با این حال، به من گفته شد که همیشه لازم است برای رفع نواقص سرور رشته ها. به من گفته شد که فرار از این صفات سرور همیشه ضروری است. در این صورت، من قصد داشتم از استفاده از document.createTextNode () استفاده نکنم و به جای آن از innerHTML استفاده کنم؟ این به نظر من عجیب و غریب به نظر می رسد زیرا من همیشه فکر innerHTML را به عنوان یکی از حداقل ویژگی های امنیتی جاوا اسکریپت می دانم که نباید با محتوای نامعتبر استفاده شود.

</p>
<pre>برنامه وب - اگر رجیسترهای غیرقابل اعتماد از طرف سرور کنار گذاشته شوند، اگر از طریق document.createTextNode به داخل سند وارد شوند؟<br />

vpn – IPv6 over IPv4 در OpenVPN بر روی یک سرور که چندین آدرس غیرقابل انطباق IPv6 دارد

من یک سرور داریم که دارای 1 آدرس عمومی IPv4 و 10 آدرس عمومی IPv6 است (هر یک از 128 / نه در یک زیر شبکه مانند یک / 64 یا / 48) – من می دانم که این صدا عجیب است اما من کنترلش را ندارم ، این چگونه آنها توسط ارائه دهنده تعیین شده است. این به عنوان یک سرور OpenVPN عمل می کند که در حال حاضر با IPv4 با استفاده از NAT با یک پروتکل عمومی عمومی IPv4 اجرا می شود. تا کنون خیلی خوب است.

اکنون سعی میکنم یک آدرس IPv6 عمومی را به مشتریان نیز اختصاص دهم. مشکل این است که من مطمئن نیستم که چگونه این کار را انجام دهم، زیرا تمام اسنادی که یافتم نیاز به یک زیر شبکه کامل از / 64 یا حداقل / 112.

دارد راه دیگری در دسترس نیست که به من اجازه می دهد خارج از 10 آدرس IPv6 من (/ 128) برای نگه داشتن یکی برای سرور، یکی برای دستگاه tun و 8 برای مشتریان؟
آیا -ifconfig-ipv6-pool چند / 128 آدرس را می گیرد یا می تواند بیش از یک بار در server.conf استفاده شود؟ از طریق vpn، مسیری که باید آن را داشته باشد تا ترافیک ipv6 کلاینت باشد.