Fronting tad-dominju bbażat fuq TLS 1.3

Introduzzjoni

Fronting tad-dominju bbażat fuq TLS 1.3
Sistemi moderni ta 'filtrazzjoni tal-kontenut korporattiv minn manifatturi rinomati bħal Cisco, BlueCoat, FireEye għandhom ħafna komuni mal-kontropartijiet aktar qawwija tagħhom - sistemi DPI, li qed jiġu implimentati b'mod attiv fil-livell nazzjonali. L-essenza tax-xogħol tat-tnejn hija li jispezzjonaw it-traffiku tal-Internet li jkun dieħel u ħerġin u, ibbażat fuq listi suwed/abjad, jieħdu deċiżjoni li jipprojbixxu l-konnessjoni tal-Internet. U peress li t-tnejn jiddependu fuq prinċipji simili fil-bażi tax-xogħol tagħhom, il-metodi biex jiġu evitati wkoll se jkollhom ħafna komuni.

Waħda mit-teknoloġiji li tippermettilek li tevita b'mod pjuttost effettiv kemm id-DPI kif ukoll is-sistemi korporattivi hija t-teknoloġija li tiffaċċja d-dominju. L-essenza tagħha hija li mmorru għal riżors imblukkat, jistaħbew wara dominju pubbliku ieħor b'reputazzjoni tajba, li ovvjament mhux se jkun imblukkat minn xi sistema, pereżempju google.com.

Diġà nkitbu ħafna artikli dwar din it-teknoloġija u ngħataw ħafna eżempji. Madankollu, it-teknoloġiji popolari u diskussi reċentement DNS-over-HTTPS u encrypted-SNI, kif ukoll il-verżjoni l-ġdida tal-protokoll TLS 1.3, jagħmluha possibbli li tiġi kkunsidrata għażla oħra għall-fronting tad-dominju.

Nifhmu t-teknoloġija

L-ewwel, ejja niddefinixxu ftit kunċetti bażiċi sabiex kulħadd ikollu fehim ta 'min hu min u għaliex dan kollu huwa meħtieġ. Semmejna l-mekkaniżmu tal-eSNI, li l-operat tiegħu ser jiġi diskuss aktar. Il-mekkaniżmu eSNI (Encrypted Server Name Indication) huwa verżjoni sigura ta' SNI, disponibbli biss għall-protokoll TLS 1.3. L-idea ewlenija hija li tikkodifika, fost affarijiet oħra, informazzjoni dwar liema dominju tintbagħat it-talba.

Issa ejja nħarsu lejn kif jaħdem il-mekkaniżmu eSNI fil-prattika.

Ejja ngħidu li għandna riżors tal-Internet li huwa mblukkat minn soluzzjoni DPI moderna (ejja nieħdu, pereżempju, il-famuż torrent tracker rutracker.nl). Meta nippruvaw naċċedu għall-websajt ta 'tracker tat-torrent, naraw l-istub standard tal-fornitur li jindika li r-riżors huwa mblukkat:

Fronting tad-dominju bbażat fuq TLS 1.3

Fuq il-websajt tal-RKN dan id-dominju huwa attwalment elenkat fil-listi tal-waqfien:

Fronting tad-dominju bbażat fuq TLS 1.3

Meta mistoqsija whois, tista 'tara li d-dominju innifsu huwa "moħbi" wara l-fornitur tas-sħab Cloudflare.

Fronting tad-dominju bbażat fuq TLS 1.3

Iżda b'differenza mill-"ispeċjalisti" minn RKN, impjegati aktar teknikament sofistikati minn Beeline (jew mgħallma mill-esperjenza morra tar-regolatur famuż tagħna) ma pprojbixxux b'mod stupid is-sit bl-indirizz IP, iżda żiedu l-isem tad-dominju mal-lista ta 'waqfien. Tista' faċilment tivverifika dan jekk tħares lejn liema oqsma oħra huma moħbija wara l-istess indirizz IP, żur waħda minnhom u tara li l-aċċess mhuwiex imblukkat:

Fronting tad-dominju bbażat fuq TLS 1.3

Kif jiġri dan? Id-DPI tal-fornitur kif jaf liema dominju qiegħed fuq il-browser tiegħi, peress li l-komunikazzjonijiet kollha jseħħu permezz tal-protokoll https, u għadna ma nnutajnax is-sostituzzjoni taċ-ċertifikati https minn Beeline? Huwa clairvoyant jew qed niġi segwit?

Ejja nippruvaw inwieġbu din il-mistoqsija billi nħarsu lejn it-traffiku permezz tal-wireshark

Fronting tad-dominju bbażat fuq TLS 1.3

Il-screenshot turi li l-ewwel il-browser jikseb l-indirizz IP tas-server permezz tad-DNS, imbagħad isseħħ handshake TCP standard mas-server tad-destinazzjoni, u mbagħad il-browser jipprova jistabbilixxi konnessjoni SSL mas-server. Biex tagħmel dan, tibgħat pakkett SSL Client Hello, li fih l-isem tad-dominju tas-sors f'test ċar. Dan il-qasam huwa meħtieġ mis-server frontend ta' cloudflare sabiex il-konnessjoni tiġi rotta b'mod korrett. Dan huwa fejn il-fornitur DPI jaqbadna, jikser il-konnessjoni tagħna. Fl-istess ħin, ma nirċievu l-ebda stub mill-fornitur, u naraw l-iżball standard tal-browser bħallikieku s-sit huwa diżattivat jew sempliċement ma jaħdimx:

Fronting tad-dominju bbażat fuq TLS 1.3

Issa ejja nippermettu l-mekkaniżmu eSNI fil-browser, kif miktub fl-istruzzjonijiet għal firefox :
Biex nagħmlu dan aħna niftħu l-paġna tal-konfigurazzjoni tal-Firefox dwar: konfigurazzjoni u attiva s-settings li ġejjin:

network.trr.mode = 2;
network.trr.uri = https://mozilla.cloudflare-dns.com/dns-query
network.security.esni.enabled = true

Wara dan, aħna niċċekkjaw li s-settings qed jaħdmu b'mod korrett fuq il-websajt cloudflare. rabta u ejja nippruvaw mill-ġdid it-trick bit-tracker tat-torrent tagħna.

Fronting tad-dominju bbażat fuq TLS 1.3

Voila. It-tracker favorit tagħna nfetaħ mingħajr VPN jew servers prokura. Ejja issa nħarsu lejn il-miżbla tat-traffiku f'wireshark biex naraw x'ġara.

Fronting tad-dominju bbażat fuq TLS 1.3

Din id-darba, il-pakkett hello tal-klijent ssl ma fihx b'mod espliċitu d-dominju tad-destinazzjoni, iżda minflok, deher qasam ġdid fil-pakkett - encrypted_server_name - dan huwa fejn jinsab il-valur ta 'rutracker.nl, u s-server frontend cloudflare biss jista' jiddeċifra dan qasam. U jekk iva, allura l-fornitur DPI m'għandux għażla ħlief li jaħsel idejh u jippermetti tali traffiku. M'hemm l-ebda għażliet oħra bil-kriptaġġ.

Allura, ħares lejn kif taħdem it-teknoloġija fil-browser. Issa ejja nippruvaw napplikawha għal affarijiet aktar speċifiċi u interessanti. U l-ewwel, se ngħallmu l-istess curl biex tuża eSNI biex taħdem ma 'TLS 1.3, u fl-istess ħin se naraw kif jaħdem id-dominju bbażat fuq l-eSNI innifsu.

Fronting tad-dominju bl-eSNI

Minħabba l-fatt li curl juża l-librerija standard openssl biex jgħaqqad permezz tal-protokoll https, l-ewwelnett jeħtieġ li nipprovdu appoġġ eSNI hemmhekk. S'issa m'hemm l-ebda appoġġ eSNI fil-fergħat prinċipali openssl, għalhekk jeħtieġ li tniżżel fergħa speċjali openssl, niġbruha u ninstallawha.

Aħna nikklonu r-repożitorju minn GitHub u niġbru bħas-soltu:

$ git clone https://github.com/sftcd/openssl
$ cd openssl
$ ./config

$ make
$ cd esnistuff
$ make

Sussegwentement, aħna nikklonu r-repożitorju b'curl u kkonfiguraw il-kumpilazzjoni tiegħu billi tuża l-librerija openssl ikkumpilata tagħna:

$ cd $HOME/code
$ git clone https://github.com/niallor/curl.git curl-esni
$ cd curl-esni

$ export LD_LIBRARY_PATH=/opt/openssl
$ ./buildconf
$ LDFLAGS="-L/opt/openssl" ./configure --with-ssl=/opt/openssl --enable-esni --enable-debug

Hawnhekk huwa importanti li tispeċifika b'mod korrett id-direttorji kollha fejn jinsab openssl (fil-każ tagħna, dan huwa /opt/openssl/) u kun żgur li l-proċess ta 'konfigurazzjoni jgħaddi mingħajr żbalji.

Jekk il-konfigurazzjoni tirnexxi, naraw il-linja:

TWISSIJA: esni ESNI attivat iżda mmarkat SPERIMENTALI. Uża b'kawtela!

$ make

Wara li nibnu b'suċċess il-pakkett, se nużaw fajl bash speċjali minn openssl biex nikkonfiguraw u nħaddmu curl. Ejja nikkopjaha fid-direttorju b'curl għall-konvenjenza:

cp /opt/openssl/esnistuff/curl-esni 

u tagħmel talba https tat-test lis-server cloudflare, filwaqt li fl-istess ħin tirreġistra pakketti DNS u TLS f'Wireshark.

$ ESNI_COVER="www.hello-rkn.ru" ./curl-esni https://cloudflare.com/

Fir-rispons tas-server, minbarra ħafna informazzjoni ta 'debugging minn openssl u curl, se nirċievu rispons HTTP bil-kodiċi 301 minn cloudflare.

HTTP/1.1 301 Moved Permanently
< Date: Sun, 03 Nov 2019 13:12:55 GMT
< Transfer-Encoding: chunked
< Connection: keep-alive
< Cache-Control: max-age=3600
< Expires: Sun, 03 Nov 2019 14:12:55 GMT
< Location: https://www.cloudflare.com/

li jindika li t-talba tagħna ġiet ikkunsinnata b'suċċess lis-server tad-destinazzjoni, mismugħa u pproċessata.

Issa ejja nħarsu lejn id-dump tat-traffiku f'wireshark, i.e. dak li ra l-fornitur DPI f'dan il-każ.

Fronting tad-dominju bbażat fuq TLS 1.3

Wieħed jista 'jara li curl l-ewwel daru lejn is-server DNS għal ċavetta eSNI pubblika għas-server cloudflare - talba TXT DNS lil _esni.cloudflare.com (pakkett Nru 13). Imbagħad, bl-użu tal-librerija openssl, curl bagħat talba TLS 1.3 lis-server cloudflare li fih il-qasam SNI kien encrypted biċ-ċavetta pubblika miksuba fil-pass preċedenti (pakkett #22). Iżda, minbarra l-qasam eSNI, il-pakkett SSL-hello inkluda wkoll qasam bis-soltu - SNI miftuħ, li nistgħu nispeċifikaw fi kwalunkwe ordni (f'dan il-każ - www.hello-rkn.ru).

Dan il-qasam SNI miftuħ ma ġie kkunsidrat bl-ebda mod meta pproċessat minn servers cloudflare u serva biss bħala maskra għall-fornitur DPI. Is-server cloudflare irċieva l-pakkett ssl-hello tagħna, iddeċifra l-eSNI, estratt l-SNI oriġinali minn hemm u pproċessah bħallikieku ma ġara xejn (għamel kollox eżatt kif ippjanat meta żviluppa eSNI).

L-unika ħaġa li tista' tinqabad f'dan il-każ mil-lat tad-DPI hija t-talba primarja tad-DNS lil _esni.cloudflare.com. Imma għamilna t-talba tad-DNS miftuħa biss biex nuru kif jaħdem dan il-mekkaniżmu minn ġewwa.

Biex finalment iġbed it-tapit minn taħt id-DPI, nużaw il-mekkaniżmu DNS-over-HTTPS diġà msemmi. Ftit spjegazzjoni - DOH huwa protokoll li jippermettilek tipproteġi kontra attakk man-in-the-middle billi tibgħat talba DNS fuq HTTPS.

Ejja nerġgħu neżegwixxu t-talba, iżda din id-darba se nirċievu ċwievet eSNI pubbliċi permezz tal-protokoll https, mhux DNS:

ESNI_COVER="www.hello-rkn.ru" DOH_URL=https://mozilla.cloudflare-dns.com/dns-query ./curl-esni https://cloudflare.com/

Id-dump tat-traffiku tat-talba jidher fil-screenshot hawn taħt:

Fronting tad-dominju bbażat fuq TLS 1.3

Wieħed jista 'jara li curl l-ewwel jaċċessa s-server mozilla.cloudflare-dns.com permezz tal-protokoll DoH (konnessjoni https mas-server 104.16.249.249) biex tikseb minnhom il-valuri taċ-ċwievet pubbliċi għall-encryption SNI, u mbagħad lejn id-destinazzjoni server, jistaħbew wara d-dominju www.hello-rkn.ru.

Minbarra s-soluzzjoni DoH ta 'hawn fuq mozilla.cloudflare-dns.com, nistgħu nużaw servizzi DoH popolari oħra, pereżempju, mill-korporazzjoni ħażen famuża.
Ejja nħaddmu l-mistoqsija li ġejja:

ESNI_COVER="www.kremlin.ru" DOH_URL=https://dns.google/dns-query ./curl-esni https://rutracker.nl/

U nġibu t-tweġiba:

< HTTP/1.1 301 Moved Permanently
< Date: Sun, 03 Nov 2019 14:10:22 GMT
< Content-Type: text/html
< Transfer-Encoding: chunked
< Connection: keep-alive
< Set-Cookie: __cfduid=da0144d982437e77b0b37af7d00438b1a1572790222; expires=Mon, 02-Nov-20 14:10:22 GMT; path=/; domain=.rutracker.nl; HttpOnly; Secure
< Location: https://rutracker.nl/forum/index.php
< CF-Cache-Status: DYNAMIC
< Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
< Server: cloudflare
< CF-RAY: 52feee696f42d891-CPH

Fronting tad-dominju bbażat fuq TLS 1.3

F'dan il-każ, rrikorrejna lejn is-server rutracker.nl imblukkat, bl-użu tad-DoH resolver dns.google (m'hemm l-ebda typo hawn, issa l-korporazzjoni famuża għandha d-dominju tal-ewwel livell tagħha stess) u koprejna lilna nfusna b'dominju ieħor, li huwa strettament projbit għad-DPIs kollha li jimblokkaw taħt uġigħ ta' mewt. Ibbażat fuq ir-risposta li waslet, tista' tifhem li t-talba tagħna ġiet ipproċessata b'suċċess.

Bħala kontroll addizzjonali li d-DPI tal-fornitur jirrispondi għall-SNI miftuħ, li nittrasmettu bħala kopertura, nistgħu nagħmlu talba lil rutracker.nl taħt l-iskuża ta 'xi riżors ipprojbit ieħor, pereżempju, tracker tat-torrent "tajjeb" ieħor:

$ ESNI_COVER="rutor.info" DOH_URL=https://dns.google/dns-query ./curl-esni https://rutracker.nl/

Mhux se nirċievu tweġiba mis-server, għax... it-talba tagħna se tkun imblukkata mis-sistema DPI.

Konklużjoni qasira għall-ewwel parti

Allura, stajna nuru l-funzjonalità tal-eSNI billi tuża openssl u curl u nittestjaw l-operat tal-fronting tad-dominju bbażat fuq eSNI. Bl-istess mod, nistgħu naddattaw l-għodod favoriti tagħna li jużaw il-librerija openssl biex jaħdmu "taħt l-iskuża" ta 'oqsma oħra. Aktar dettalji dwar dan fl-artikoli li jmiss tagħna.

Sors: www.habr.com

Żid kumment