Ojú-ọ̀nà tí a ń gbé inú WebSocket ààbò ní ìwọ̀n ìpamọ́ ìkọ̀kọ̀ kan náà tí alábàáṣepọ̀ fi sínú rẹ̀, kì í pọ̀ sí i. Ètò wss:// ń sọ pé TLS ń dáàbò bo ìsopọ̀ kan lórí ìgbésẹ̀ kan. Kò sọ ohunkóhun nípa bóyá àwọn báìtì inú àwọn ìfiránṣẹ́ WebSocket ní ààbò ọ̀tọ̀ọ̀tọ̀, àti pé ìyàtọ̀ yẹn ni ó ń pinnu ẹni tí ó lè ka ìṣàn rẹ nígbà tí ohun kan ní àárín bá parí TLS.

Ẹ̀ka méjì tí ó dàbí ọ̀kan

WebSocket ààbò ni TLS pẹ̀lú ìfọwọ́wọ́ WebSocket tí a ṣe lórí rẹ̀, gẹ́gẹ́ bí RFC 6455 ṣe ṣàlàyé nínú àwọn abala rẹ̀ nípa ìsopọ̀ àti ààbò. Ẹ̀ka TLS ń jẹ́rìí olùpínà àti ń pa ìṣàn mọ́, lẹ́yìn náà ẹ̀ka WebSocket ń fi àwọn férémù kọ ohun tí áàpù pinnu láti rán.

Ìpinnu méjì tí wọ́n dúró lórí ara wọn ni wọ́n, àti àwòrán tí ó ya ìdáná kan lórí gbogbo ojú-ọ̀nà ń fi ìkejì pamọ́. Béèrè ẹni tí ó parí ìsopọ̀ TLS. Lẹ́yìn náà béèrè ohun tí alábàáṣepọ̀ fi sínú ìfiránṣẹ́ kọ̀ọ̀kan. Gbogbo ohun mìíràn nípa ìgbékalẹ̀ ń tẹ̀lé àwọn ìdáhùn méjì yẹn.

Àpẹẹrẹ A: gbígbé ni ìpamọ́ kan ṣoṣo

Nínú àpẹẹrẹ tí ó rọrùn, alábàáṣepọ̀ ń gba àwọn pákẹ́tì IP àìkọ́kọ́ ń fi wọ́n sínú àwọn ìfiránṣẹ́ WebSocket. Kò sí ohunkóhun nínú tí a pa mọ́, nítorí náà ẹ̀yà tí ó di ìpàdé TLS mú ń ka ẹrù tí ó wà ní ìmọ́lẹ̀. Nígbà tí ẹ̀yà yẹn jẹ́ olùpínà ojú-ọ̀nà rẹ fúnra rẹ, èyí ni ibi ìparí tí a pinnu àti àpẹẹrẹ náà ń bá ara mu, nítorí olùpínà yóò ti rí ìṣàn náà bóyá bóyá.

Ó di ìṣètò mìíràn nígbà tí proxy àyẹ̀wò bá jókòó lórí ojú-ọ̀nà tí ó sì parí TLS pẹ̀lú ìwé-ẹ̀rí tí alábàáṣepọ̀ gbẹ́kẹ̀lé. Proxy yẹn ti di ìmọ́lẹ̀ kan náà tí olùpínà ìbá ti di, kò sì sí ìwọ̀n férémù WebSocket tí ó lè yí i padà. Ilé-ìkópamọ́ ìgbẹ́kẹ̀lé alábàáṣepọ̀ ti pinnu èsì yìí tipẹ́tipẹ́ ṣáájú kí ojú-ọ̀nà ṣí, nítorí ó yàn láti gba ìwé-ẹ̀rí yẹn fún orúkọ yẹn. Proxy tún ń rí olùgbàlejò tí a béèrè àti ìwọ̀n ìfiránṣẹ́ kọ̀ọ̀kan, èyí tí ó tó láti ya finga àwọn ìgbòkègbodò púpọ̀ láìṣe ìyọkúrò kankan mọ́.

Àpẹẹrẹ B: ẹrù ń gbé àwọn kọ́kọ́rọ́ tirẹ̀

Nínú àpẹẹrẹ kejì, alábàáṣepọ̀ ń pa àwọn pákẹ́tì rẹ̀ mọ́ tí ó sì ń jẹ́rìí wọn pẹ̀lú ìlànà VPN tí ó ní ìdánimọ̀ ẹlẹgbẹ́ àti pàṣípààrọ̀ kọ́kọ́rọ́ tirẹ̀, lẹ́yìn náà ó ń gbé èsì náà sínú àwọn ìfiránṣẹ́ WebSocket. Pípárí TLS ìta níbí ń fi àkọ́sílẹ̀ hàn, kì í ṣe ìṣàn. Proxy lè rí ìwọ̀n àti àkókò ìfiránṣẹ́, kò sì sí ohunkóhun mìíràn nínú ẹrù náà. Ìfarahàn yìí kéré gan-an, ó sì ṣì jẹ́ mẹ́tádéètà tí ó yẹ kí a dárúkọ nínú àyẹ̀wò dípò kí a gbá a nù.

Àwọn ibi ìparí ìlànà inú fúnra wọn ṣì ń rí ọ̀rọ̀ tí ó wà ní ìmọ́lẹ̀, èyí ni èrò ìṣètò náà àti ààlà rẹ̀ pẹ̀lú. Bí ẹ̀yà kan ní ibi ìparí bá ní àṣẹ láti ka dátà ṣáájú ìpamọ́ tàbí lẹ́yìn ìyọkúrò, ẹ̀ka àfikún kò dín a kù. Àwọn kọ́kọ́rọ́, àti sọ́fítíwé tí ó ń bójú wọn, ṣì jẹ́ ààlà tí ó ṣe pàtàkì.

Àmì VPN, àwòrán alábàáṣepọ̀ tí ó mọ̀ tàbí ojú-ìwé tita kì í ṣe ẹ̀rí pé àpẹẹrẹ yìí wà. Kíkà ìlànà ẹrù ni ẹ̀rí.

Tẹ̀lé ibi tí ọ̀rọ̀ ìmọ́lẹ̀ ti ń farahàn gan-an

Ètò URL fún ọ ní ìṣẹ̀lẹ̀ kan ṣoṣo, nítorí náà gba ìyókù láti inú àwọn ìbáraẹnisọ̀rọ̀. Ṣe àwọn àyẹ̀wò tí ó wà ní ìsàlẹ̀ lẹ́sẹẹsẹ, nítorí pé kọ̀ọ̀kan ń dín èyí tí ó tẹ̀lé kù:

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

Bẹ̀rẹ̀ pẹ̀lú ìsopọ̀ ìta. Ìpàdé TCP kan tí ó pẹ́ sí ibùdó TLS ni irisi olùgbé WebSocket, ìpàdé kejì sì sí olùgbàlejò tí kò ní ìbáṣepọ̀ yẹ kí a ṣàlàyé rẹ̀ kí o tó wo jinlẹ̀. Lẹ́yìn náà wá ìbáraẹnisọ̀rọ̀ ojú-ọ̀nà lórí alábàáṣepọ̀, nítorí ẹ̀rọ tun tàbí tap ń sọ fún ọ pé alábàáṣepọ̀ ń bójú àwọn pákẹ́tì IP dípò ṣíṣe proxy ìṣàn áàpù kan.

Mímú ìbáraẹnisọ̀rọ̀ ojú-ọ̀nà sábẹ́ ìkójọpọ̀ sábà ń yanjú ìbéèrè ẹrù náà. Àwọn àkọ́lé tí a lè kà níbẹ̀ túmọ̀ sí pé a kò pa àwọn pákẹ́tì inú mọ́ lọ́tọ̀ọ̀tọ̀ rí, nígbà tí ẹrù tí ó ní entrópì gíga túmọ̀ sí pé a pa wọ́n mọ́. Tún ìkójọpọ̀ náà ṣe lórí ìbáraẹnisọ̀rọ̀ ìta kí o sì fi méjèèjì wé: bí méjèèjì bá dàbí àìlẹ́sẹẹsẹ, ẹ̀ka inú ń ṣe iṣẹ́ tí ẹ̀ka ìta kò lè yí padà.

Yẹ̀wò ìgbẹ́kẹ̀lé tí o fún gan-an

Ìwé-ẹ̀rí gbòǹgbò ilé-iṣẹ́ tí a fi sínú ẹ̀rọ jẹ́ ìṣẹ̀lẹ̀ nípa ilé-ìkópamọ́ ìgbẹ́kẹ̀lé alábàáṣepọ̀, kì í ṣe gbólóhùn nípa ohun tí proxy kankan ń kọ sílẹ̀ tàbí ń yẹ̀wò. Fi ìlànà tí a gbé kalẹ̀ àti ojú-ọ̀nà ìsopọ̀ gidi múlẹ̀ dípò síṣe àfojúsùn ìhùwàsí láti wíwà CA kan.

Lórí ohun-èlò tí a ń bójú tó, béèrè lọ́wọ́ alábòójútó ẹ̀yà tí ó parí TLS, bóyá alábàáṣepọ̀ ń jẹ́rìí ìwé-ẹ̀rí tí a fìdí rẹ̀ múlẹ̀ tàbí ti gbogbo ènìyàn, àti ìlànà ẹrù náà. Àwọn ìdáhùn mẹ́ta yẹn ń mú àwárí jáde tí o lè gbèjà rẹ̀ lẹ́yìn náà.

Kọ èsì náà gẹ́gẹ́ bí ààlà kì í ṣe gẹ́gẹ́ bí ìdájọ́. "TLS ń parí ní proxy àyẹ̀wò, ẹrù inú sì jẹ́ ìpamọ́ lọ́tọ̀ọ̀tọ̀ pẹ̀lú àwọn kọ́kọ́rọ́ tí kì í ṣe àwọn ibi ìparí nìkan ló ní" jẹ́ gbólóhùn tí a lè yẹ̀wò tí ó sì dúró bí olùpèsè bá yí padà. "WebSockets jẹ́ ààbò" kò dúró.

Àwọn àpilẹ̀kọ tó jọra