Usimbaji fiche wa handaki la WSS huishia kwenye kimaliza TLS, si kwenye programu
Anwani ya wss:// huthibitisha TLS kwenye hatua moja. Ikiwa mzigo una usimbaji fiche wake yenyewe inategemea kile mteja anaweka ndani na nani anamaliza TLS hiyo.
Handaki linalobebwa ndani ya WebSocket salama lina usimbaji fiche kiasi sawa na kile mteja alichoweka ndani yake, si zaidi. Mpango wss:// unasema TLS hulinda muunganisho mmoja kwenye hatua moja. Hausemi chochote kuhusu kama baiti zilizo ndani ya jumbe za WebSocket zinalindwa kando, na tofauti hiyo ndiyo huamua nani anaweza kusoma trafiki yako wakati kitu katikati kinamaliza TLS.
Tabaka mbili zinazoonekana kama moja
WebSocket salama ni TLS yenye makubaliano ya mkono ya WebSocket yanayofanywa juu yake, kama RFC 6455 inavyoeleza katika sehemu zake za muunganisho na usalama. Tabaka la TLS huthibitisha seva na kusimba mtiririko, kisha tabaka la WebSocket huweka fremu kile programu inaamua kutuma.
Haya ni maamuzi mawili huru, na mchoro unaochora kufuli moja juu ya njia yote huficha la pili. Uliza nani anamaliza muunganisho wa TLS. Kisha uliza mteja anaweka nini ndani ya kila ujumbe. Kila kitu kingine kuhusu usambazaji hufuata kutoka majibu hayo mawili.
Muundo A: usafirishaji ndio usimbaji fiche pekee
Katika muundo rahisi zaidi, mteja huchukua pakiti mbichi za IP na kuzifunga katika jumbe za WebSocket. Hakuna kitu ndani kinachosimbwa fiche, kwa hiyo sehemu inayoshikilia kikao cha TLS husoma mizigo ya maandishi wazi. Wakati sehemu hiyo ni seva yako mwenyewe ya handaki, hii ndiyo ncha iliyokusudiwa na muundo ni thabiti, kwa sababu seva ingeona trafiki hata hivyo.
Inakuwa mpangilio mwingine wakati proksi ya ukaguzi inakaa njiani na kumaliza TLS kwa cheti ambacho mteja anachiamini. Proksi hiyo sasa inashikilia maandishi wazi yale yale ambayo seva ingeshikilia, na hakuna kiasi cha fremu za WebSocket kinabadilisha hilo. Hifadhi ya imani ya mteja iliamua matokeo haya muda mrefu kabla handaki kufunguliwa, kwa sababu ilichagua kukubali cheti hicho kwa jina hilo. Proksi pia huona mwenyeji aliyeombwa na ukubwa wa kila ujumbe, jambo linalotosha kuchukua alama ya vidole ya shughuli nyingi bila kusimbua kitu kingine chochote.
Muundo B: mzigo unabeba funguo zake mwenyewe
Katika muundo wa pili, mteja husimba fiche na kuthibitisha pakiti zake kwa itifaki ya VPN iliyo na utambulisho wake wa mwenzake na ubadilishanaji wa funguo, kisha hubeba matokeo ndani ya jumbe za WebSocket. Kumaliza TLS ya nje hapa kunaweka wazi maandishi yaliyosimbwa, si trafiki. Proksi inaweza kuona ukubwa na muda wa jumbe, na hakuna kingine katika mzigo. Hii ni mfiduo mdogo zaidi, na bado ni metadata inayostahili kutajwa katika mapitio badala ya kupuuzwa.
Ncha za itifaki ya ndani bado zinaona maandishi wazi, ambayo ni lengo la mpangilio na pia kikomo chake. Ikiwa sehemu kwenye ncha imeidhinishwa kusoma data kabla ya usimbaji fiche au baada ya kusimbua, tabaka la ziada halimzuii. Funguo, na programu inayozishughulikia, hubaki kuwa mpaka unaojalisha.
Lebo ya VPN, aikoni inayojulikana ya mteja au ukurasa wa masoko si uthibitisho kwamba muundo huu upo. Kusoma umbizo la mzigo ni uthibitisho.
Fuatilia mahali maandishi wazi yanaonekana kwa kweli
Mpango wa URL unakupa ukweli mmoja, kwa hiyo pata mengine kutoka kwa violesura. Endesha ukaguzi ulio chini kwa mpangilio, kwa sababu kila mmoja hupunguza ule unaofuata:
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
Anza na muunganisho wa nje. Kikao kimoja cha TCP cha muda mrefu kwenda bandari ya TLS ndicho sura ya mbebaji wa WebSocket, na kikao cha pili kwenda mwenyeji asiyehusiana kinastahili maelezo kabla ya kuangalia kwa kina zaidi. Kisha pata violesura vya handaki kwenye mteja, kwa sababu kifaa cha tun au tap kinakuambia mteja anashughulikia pakiti za IP badala ya kufanya proksi ya mtiririko mmoja wa programu.
Unasaji kwenye violesura vya handaki kwa kawaida huamua suala la mzigo. Vichwa vinavyosomeka hapo humaanisha pakiti za ndani hazikusimbwa fiche kando kamwe, wakati mizigo yenye entropia kubwa humaanisha zilisimbwa. Rudia unasaji kwenye violesura vya nje na linganisha vyote viwili: ikiwa vyote vinaonekana ovyo, tabaka la ndani linafanya kazi ambayo la nje haliwezi kuibatilisha.
Pitia imani uliyoitoa kwa kweli
Cheti cha mzizi cha shirika kilichosakinishwa ni ukweli kuhusu hifadhi ya imani ya mteja, si tamko kuhusu kile proksi yoyote hurekodi au hukagua. Weka wazi sera iliyotumika na njia halisi ya muunganisho badala ya kukisia tabia kutokana na uwepo wa CA.
Kwenye vifaa vinavyosimamiwa, muulize msimamizi ni sehemu gani inamaliza TLS, ikiwa mteja huthibitisha cheti kilichobandikwa au cha umma, na umbizo la mzigo ni lipi. Majibu hayo matatu hutoa matokeo ambayo unaweza kuyatetea baadaye.
Andika matokeo kama mpaka badala ya hukumu. "TLS huishia kwenye proksi ya ukaguzi, na mzigo wa ndani umesimbwa fiche kando kwa funguo ambazo ncha pekee zinazo" ni tamko linaloweza kuthibitishwa ambalo hustahimili mabadiliko ya muuzaji. "WebSockets ni salama" halistahimili.