WSS tunelaren zifratzea TLS terminatzailean gelditzen da, ez aplikazioan
wss:// URL batek TLS frogatzen du jauzi bakarrean. Karga erabilgarriak bere zifratzea duen ala ez klienteak barruan jartzen duenaren eta TLS hori nork amaitzen duen araberakoa da.
WebSocket seguru baten barruan garraiatutako tunel batek klienteak sartutako zifratze zehatza du, ez gehiago. wss:// eskema batek dio TLSek konexio bat babesten duela jauzi bakarrean. Ez du ezer esaten WebSocket mezuen barruko byteak bereiz babestuta dauden ala ez, eta bereizketa horrek erabakitzen du nork irakur ditzakeen zure trafikoak erdian zerbait TLS amaitzen duenean.
Bata bestearen itxura duten bi geruza
WebSocket segurua TLS da, gainean WebSocket esku-emate bat eginda, RFC 6455-ek konexioari eta segurtasunari buruzko ataletan deskribatzen duen bezala. TLS geruzak zerbitzaria autentifikatzen du eta korrontea zifratzen du, eta gero WebSocket geruzak aplikazioak bidaltzea erabakitzen duena markoztatzen du.
Bi erabaki independente dira, eta bide osoaren gainean kiskal bat soilik marrazten duen diagramak bigarrena ezkutatzen du. Galdetu nork amaitzen duen TLS konexioa. Gero galdetu zer jartzen duen klienteak mezu bakoitzaren barruan. Hedapenari buruzko gainerako guztia bi erantzun horietatik dator.
A diseinua: garraioa da zifratze bakarra
Diseinu sinpleenean, klienteak IP pakete gordinak hartzen ditu eta WebSocket mezuetan bildu. Barruan ezer ez dago zifratuta, beraz TLS saioa duen osagaiak testu lauko kargak irakurtzen ditu. Osagai hori zure tunel zerbitzaria denean, hori da aurreikusitako amaiera-puntua eta diseinua koherentea da, zerbitzariak trafikoak ikusiko zituelako beti.
Beste egitura bat bihurtzen da ikuskapen proxy bat bidean jartzen denean eta TLS klienteak fidatzen duen ziurtagiri batekin amaitzen duenean. Proxy horrek orain zerbitzariak edukiko zukeen testu lau bera du, eta WebSocket markoztatze kopuruak ez du hori aldatzen. Klientearen konfiantza biltegiak askoz lehenago erabaki zuen emaitza hori tunela ireki aurretik, izen horretarako ziurtagiri hori onartzea aukeratu zuelako. Proxyak eskatutako ostalaria eta mezu bakoitzaren tamaina ere ikusten ditu, eta hori nahikoa da jarduera askoren hatz-marka ateratzeko gehiago deszifratu gabe.
B diseinua: kargak bere gakoak daramatza
Bigarren diseinuan, klienteak bere paketeak zifratu eta autentifikatzen ditu VPN protokolo batekin, zeinak bere pare-identitatea eta gako-trukea baititu, eta gero emaitza WebSocket mezuen barruan garraiatzen du. Kanpoko TLS hemen amaitzeak testu zifratua erakusten du, ez trafikoa. Proxyak mezu tamainak eta denbora ikus ditzake, eta kargako beste ezer ez. Hori askoz esposizio txikiagoa da, eta berrikuspenean aipatzeko moduko metadatuak dira oraindik, baztertu beharrean.
Barruko protokoloaren amaiera-puntek testu laua ikusten dute oraindik, eta hori da egituraren zentzua eta baita bere muga ere. Amaiera-puntuko osagai batek zifratzearen aurretik edo deszifratzearen ondoren datuak irakurtzeko baimena badu, geruza gehigarriak ez du hura mugatzen. Gakoek eta haiek kudeatzen dituen softwareak muga garrantzitsua izaten jarraitzen dute.
VPN etiketa batek, klientearen ikono ezagun batek edo marketin orrialde batek ez dute frogatzen diseinu hau existitzen denik. Kargaren formatua irakurtzea da froga.
Jarraitu testu laua benetan non agertzen den
URL eskema batek datu bat ematen dizu, beraz gainerakoa interfazeetatik lortu. Exekutatu beheko egiaztapenak ordenan, bakoitzak hurrengoa estutzen baitu:
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
Hasi kanpoko konexioarekin. TLS porturako TCP saio luze bakarra da WebSocket garraiatzaile baten itxura, eta erlazionatu gabeko ostalari baterako bigarren saioak azalpena merezi du sakonago begiratu aurretik. Gero aurkitu tunel interfazea klientean, tun edo tap gailu batek esaten baitizue klienteak IP paketeak kudeatzen dituela aplikazio korronte bakarra proxytzen duen ordez.
Tunel interfazeko harrapaketak karga gaia transmititzen du normalean. Bertan irakurgarriak diren goiburuek barruko paketeak inoiz bereiz zifratu ez zirela esan nahi dute, eta entropia handiko kargek baietz. Errepikatu harrapaketa kanpoko interfazean eta konparatu biak: biak ausazkoak badirudite, barruko geruzak kanpokoak desegin ezin duen lana egiten du.
Berrikusi benetan eman duzun konfiantza
Instalatutako enpresako erro ziurtagiria klientearen konfiantza biltegiri buruzko datua da, ez proxyren batek zer erregistratzen edo ikuskatzen duen adierazten duen baieztapena. Ezarri inplementatutako politika eta benetako konexio-bidea, CA baten presentziatik portaera ondorioztatu beharrean.
Kudeatutako ekipoetan, galdetu administratzaileari zein osagai amaitzen duen TLS, klienteak ziurtagiri finkatua edo publikoa baliozkotzen duen, eta zein den kargaren formatua. Hiru erantzun horiek gero defenda dezakezun aurkikuntza bat sortzen dute.
Idatzi emaitza muga gisa, ez verediktu gisa. "TLS ikuskapen proxyan amaitzen da, eta barruko karga bakarrik amaiera-puntek dituzten gakoekin zifratuta dago bereiz" egiazta daitekeen baieztapena da eta hornitzaile aldaketari eusten dio. "WebSocketak seguruak dira" ez.