Коопсуз 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 коопсуз" — андай эмес.

Тектеш макалалар