WSS tunnelining shifrlanishi ilovada emas, TLS terminatorida tugaydi
wss:// manzili bitta sakrashda TLS borligini isbotlaydi. Yuklamaning o'z shifrlashi bor-yo'qligi mijoz ichkariga nima qo'yishiga va bu TLSni kim tugatishiga bog'liq.
Xavfsiz WebSocket ichida tashiladigan tunnel mijoz ichkariga qo'ygan shuncha shifrlashga ega, undan ko'p emas. wss:// sxemasi TLS bitta sakrashda bitta ulanishni himoya qilishini aytadi. U WebSocket xabarlari ichidagi baytlarning alohida himoyalanganligi haqida hech narsa demaydi va o'rtada nimadir TLSni tugatganda trafigingizni kim o'qiy olishini aynan shu farq belgilaydi.
Bitta kabi ko'rinadigan ikki qatlam
Xavfsiz WebSocket — bu ustida WebSocket qo'l berish marosimi bajariladigan TLS, RFC 6455 buni ulanish va xavfsizlik bo'limlarida tasvirlaydi. TLS qatlami serverni autentifikatsiya qiladi va oqimni shifrlaydi, keyin WebSocket qatlami ilova yuborishga qaror qilgan narsani ramkaga oladi.
Bular ikki mustaqil qaror, va butun yo'l ustida bitta qulf chizadigan diagramma ikkinchisini yashiradi. TLS ulanishini kim tugatishini so'rang. Keyin mijoz har bir xabar ichiga nima qo'yishini so'rang. Joylashtirish haqidagi qolgan hamma narsa shu ikki javobdan kelib chiqadi.
Dizayn A: tashish — yagona shifrlash
Soddaroq dizaynda mijoz xom IP paketlarini oladi va ularni WebSocket xabarlariga o'raydi. Ichida hech narsa shifrlanmagan, shuning uchun TLS sessiyasini ushlab turgan komponent ochiq matn yuklamalarini o'qiydi. Bu komponent o'zingizning tunnel serveringiz bo'lsa, bu ko'zda tutilgan oxirgi nuqta va dizayn izchil, chunki server trafikni baribir ko'rardi.
Yo'lda tekshiruv proksisi o'tirib, mijoz ishonadigan sertifikat bilan TLSni tugatganda bu boshqa tartibga aylanadi. O'sha proksi endi server ushlab turishi mumkin bo'lgan o'sha ochiq matnni ushlab turadi, va hech qanday WebSocket ramkalash buni o'zgartirmaydi. Mijozning ishonch ombori bu natijani tunnel ochilishidan ancha oldin hal qilgan, chunki u o'sha nom uchun o'sha sertifikatni qabul qilishni tanlagan. Proksi shuningdek so'ralgan xostni va har bir xabarning hajmini ko'radi, bu yana hech narsani shifrdan chiqarmasdan ko'p faoliyatning barmoq izini olish uchun yetarli.
Dizayn B: yuklama o'z kalitlarini olib yuradi
Ikkinchi dizaynda mijoz o'z paketlarini o'zining hamkor identifikatsiyasi va kalit almashinuviga ega VPN protokoli bilan shifrlaydi va autentifikatsiya qiladi, keyin natijani WebSocket xabarlari ichida tashiydi. Bu yerda tashqi TLSni tugatish trafikni emas, shifrlangan matnni ochib beradi. Proksi xabarlar hajmi va vaqtini ko'ra oladi, yuklamada boshqa hech narsa yo'q. Bu ancha kichik ta'sir, va baribir bu sharhda nomlanishga arziydigan metama'lumot, chetga suriladigan narsa emas.
Ichki protokolning o'z oxirgi nuqtalari hali ham ochiq matnni ko'radi, bu tartibning ma'nosi va ayni paytda uning chegarasi. Agar oxirgi nuqtadagi komponent shifrlashdan oldin yoki shifr ochilgandan keyin ma'lumot o'qishga vakolatli bo'lsa, qo'shimcha qatlam uni cheklamaydi. Kalitlar va ularni boshqaradigan dasturiy ta'minot muhim chegara bo'lib qoladi.
VPN yorlig'i, tanish mijoz belgisi yoki marketing sahifasi bu dizayn mavjudligining dalili emas. Yuklama formatini o'qish dalildir.
Ochiq matn aslida qayerda paydo bo'lishini kuzatib boring
URL sxemasi sizga bitta fakt beradi, qolganini interfeyslardan oling. Quyidagi tekshiruvlarni tartib bilan bajaring, chunki har biri keyingisini toraytiradi:
ss -tnp | grep -E ':(443|8443)\b' ip -br link show type tun openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -brief tcpdump -ni tun0 -c 5 -X
Tashqi ulanishdan boshlang. TLS portiga bitta uzoq umrli TCP sessiya bo'lishi WebSocket tashuvchisining ko'rinishi, va aloqasiz xostga ikkinchi sessiya chuqurroq qarashdan oldin izohga loyiq. Keyin mijozdagi tunnel interfeysini toping, chunki tun yoki tap qurilmasi mijoz bitta ilova oqimini proksilash o'rniga IP paketlari bilan ishlayotganini bildiradi.
Tunnel interfeysidagi ushlash odatda yuklama masalasini hal qiladi. U yerdagi o'qiladigan sarlavhalar ichki paketlar hech qachon alohida shifrlanmaganini bildiradi, yuqori entropiyali yuklamalar esa shifrlanganini bildiradi. Tashqi interfeysda ushlashni takrorlang va ikkalasini solishtiring: ikkalasi ham tasodifiy ko'rinsa, ichki qatlam tashqi qatlam qaytara olmaydigan ishni qilmoqda.
Haqiqatan bergan ishonchingizni ko'rib chiqing
O'rnatilgan korporativ ildiz sertifikati mijozning ishonch ombori haqidagi fakt, hech qanday proksining nimani yozishi yoki tekshirishi haqidagi bayonot emas. Xulq-atvorni CA borligidan kelib chiqarish o'rniga joriy etilgan siyosat va haqiqiy ulanish yo'lini belgilang.
Boshqariladigan uskunalarda administratorga qaysi komponent TLSni tugatishini, mijoz qadab qo'yilgan sertifikatni yoki ommaviy sertifikatni tekshirishini va yuklama formati nima ekanini so'rang. Bu uch javob keyinchalik himoya qilishingiz mumkin bo'lgan xulosa beradi.
Natijani hukm emas, chegara sifatida yozing. "TLS tekshiruv proksisida tugaydi, ichki yuklama esa faqat oxirgi nuqtalarda bo'lgan kalitlar bilan alohida shifrlangan" tekshiriladigan bayonot bo'lib, yetkazib beruvchi almashsa ham saqlanib qoladi. "WebSockets xavfsiz" esa unday emas.