Аюулгүй WebSocket дотор зөөгдөж буй туннель нь клиентийн дотор хийсэн шифрлэлттэй яг тэнцүү хэмжээний шифрлэлттэй, үүнээс илүүгүй. wss:// схем нь TLS нэг алхам дээр нэг холболтыг хамгаалдаг гэж хэлдэг. WebSocket мессежүүдийн доторх байтууд тусдаа хамгаалагдсан эсэхийг энэ нь огт хэлэхгүй бөгөөд голд ямар нэгэн зүйл TLS-ийг дуусгахад таны трафикийг хэн уншиж болохыг яг энэ ялгаа шийддэг.

Нэг мэт харагдах хоёр давхарга

Аюулгүй WebSocket гэдэг нь дээр нь WebSocket гар барилт хийгддэг TLS бөгөөд RFC 6455 үүнийг холболт ба аюулгүй байдлын хэсгүүдэд тайлбарладаг. TLS давхарга серверийг баталгаажуулж, урсгалыг шифрлэдэг, дараа нь WebSocket давхарга апп юу илгээхээ шийдсэнийг фрэйм болгоно.

Эдгээр нь хоёр бие даасан шийдвэр бөгөөд бүх замын дээгүүр нэг цоож зурсан диаграм хоёр дахийг нуудаг. TLS холболтыг хэн дуусгахыг асуу. Дараа нь клиент мессеж бүрийн дотор юу хийхийг асуу. Байршуулалтын талаар үлдсэн бүхэн энэ хоёр хариултаас гарна.

Загвар A: тээвэрлэлт л цорын ганц шифрлэлт

Хялбар загварт клиент түүхий IP пакетуудыг авч WebSocket мессежүүдэд ороодог. Дотор нь юу ч шифрлэгдээгүй тул TLS сессийг барьж буй компонент нээлттэй текст ачааг уншдаг. Тэр компонент өөрийн туннелийн сервер бол энэ нь зориудын төгсгөлийн цэг бөгөөд загвар уялдаатай, учир нь сервер трафикийг ямар ч байсан харах байсан.

Зам дээр хяналтын прокси сууж, клиентийн итгэдэг сертификатаар TLS-ийг дуусгахад энэ нь өөр зохион байгуулалт болно. Тэр прокси одоо сервер барих байсан тэр нээлттэй текстийг барьж байна, WebSocket фрэймийн ямар ч хэмжээ үүнийг өөрчлөхгүй. Клиентийн итгэлцлийн сан энэ үр дүнг туннель нээгдэхээс хамаагүй өмнө шийдсэн, учир нь тэр нэрэнд тэр сертификатыг хүлээн зөвшөөрөхийг сонгосон. Прокси мөн хүссэн хост болон мессеж бүрийн хэмжээг хардаг бөгөөд энэ нь нэмж юу ч тайлахгүйгээр олон үйл ажиллагааны хурууны хээ авахад хангалттай.

Загвар B: ачаа өөрийн түлхүүрүүдийг зөөдөг

Хоёр дахь загварт клиент пакетуудаа өөрийн хамтрагчийн таних тэмдэг, түлхүүр солилцоотой VPN протоколоор шифрлэж баталгаажуулж, дараа нь үр дүнг WebSocket мессежүүдийн дотор зөөдөг. Энд гаднах TLS-ийг дуусгахад трафик биш, шифрлэсэн текст ил болно. Прокси мессежүүдийн хэмжээ, цагийг харж чадна, ачаанд өөр юу ч байхгүй. Энэ нь хамаагүй бага өртөлт бөгөөд шүүмжлэлд нэрлэх ёстой мета өгөгдөл хэвээр, харин хаяж шидэх зүйл биш.

Дотоод протоколын өөрийн төгсгөлийн цэгүүд нээлттэй текстийг харсаар байна, энэ нь зохион байгуулалтын утга бөгөөд мөн түүний хязгаар юм. Хэрэв төгсгөлийн цэг дээрх компонент шифрлэлтийн өмнө эсвэл тайлсны дараа өгөгдөл унших эрхтэй бол нэмэлт давхарга түүнийг хязгаарлахгүй. Түлхүүрүүд болон тэдгээрийг удирддаг програм хангамж чухал хил хэвээр үлддэг.

VPN шошго, танил клиентийн дүрс эсвэл маркетингийн хуудас нь энэ загвар байгаагийн баталгаа биш. Ачааны форматыг унших нь баталгаа.

Нээлттэй текст хаана үнэхээр гарч байгааг мөрдөөрэй

URL схем танд нэг баримт өгдөг тул үлдсэнийг интерфейсүүдээс ав. Доорх шалгалтуудыг дарааллаар нь ажиллуул, учир нь тус бүр дараагийнхыг нарийсгадаг:

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

Гаднах холболтоос эхэл. TLS порт руу нэг урт настай TCP сесс байх нь WebSocket тээвэрлэгчийн харагдах байдал бөгөөд холбоогүй хост руу хоёр дахь сесс нь илүү гүнзгий харахаас өмнө тайлбар шаарддаг. Дараа нь клиент дээрх туннелийн интерфейсийг ол, учир нь tun эсвэл tap төхөөрөмж нь клиент нэг аппын урсгалыг прокси хийхийн оронд IP пакетуудыг боловсруулж байгааг хэлдэг.

Туннелийн интерфейс дээрх хураалт ихэвчлэн ачааны асуудлыг шийддэг. Тэнд уншигдах толгойнууд нь дотоод пакетууд хэзээ ч тусдаа шифрлэгдээгүй гэсэн үг, харин өндөр энтропитой ачаа нь шифрлэгдсэн гэсэн үг. Гаднах интерфейс дээр хураалтыг давтаж, хоёрыг харьцуул: хэрэв хоёулаа санамсаргүй харагдвал дотоод давхарга нь гаднах давхарга буцааж чадахгүй ажлыг хийж байна.

Таны үнэхээр олгосон итгэлийг хяна

Суулгасан корпорацийн үндсэн сертификат нь клиентийн итгэлцлийн сангийн тухай баримт бөгөөд аль ч прокси юу бүртгэх, шалгах тухай мэдэгдэл биш. Байршуулсан бодлого болон бодит холболтын замыг тогтоо, CA байгаагаас зан төлөвийг таамаглахын оронд.

Удирдлагатай төхөөрөмж дээр администратороос аль компонент TLS-ийг дуусгадаг, клиент тогтоосон сертификат эсвэл нийтийн сертификатыг баталгаажуулдаг эсэх, ачааны формат юу болохыг асуу. Тэр гурван хариулт нь дараа нь хамгаалж болох дүгнэлт өгдөг.

Үр дүнг шийтгэл биш, хил хязгаар болгон бич. "TLS хяналтын прокси дээр дуусч, дотоод ачаа зөвхөн төгсгөлийн цэгүүдэд байдаг түлхүүрээр тусдаа шифрлэгдсэн" гэдэг нь нийлүүлэгч солигдсон ч тэсвэрлэх шалгаж болох мэдэгдэл юм. "WebSockets аюулгүй" гэдэг нь тийм биш.

Холбоотой нийтлэлүүд