Domain fronting secundum TLS 1.3

introduction

Domain fronting secundum TLS 1.3
Moderni corporati contenti systemata eliquare ab tam celeberrimis fabricatoribus sicut Cisco, BlueCoat, FireEye habent multum communes cum potentioribus suis calculis - DPI systematis, quae actuose in gradu nationali perficiuntur. Utriusque operis essentia est advenientem et exitu interretialem mercaturam inspicere et, in albo/albo inscripto, consilium facere ut nexum interretialem moveat. Et quia uterque in fundamentis sui operis consimilibus principiis nititur, multum etiam communes habebunt rationes circumveniendi.

Una e technologiarum quae te satis efficaciter praeterire permittit et systemata DPI et corporatum, technologiae technologiae-frontis est. Essentia eius est ut ad auxilium obsessum itur, post alium, in publico regno cum bona fama delitescit, quod patet nulla rationi obstruetur, exempli gratia google.com.

Satis multa vasa de hac technica hac arte scripta sunt et multa exempla prodita sunt. Attamen populares et nuper tractatae DNS-super-HTTPS et technologiae encrypted-SNI, necnon nova versio TLS 1.3 protocolli, fac potest ut aliam optionem ad frontem domain considerare possit.

Intellectus technology

Primum, paucas notiones praecipuas definiamus, ut quisque intellegat quisnam sit quis et quare hoc omne opus sit. Mechanismum memoravimus eSNI, de qua operatione ulterius disseretur. Mechanismus eSNI (Servo nomine Indicis encrypted) mechanismum securum versionem SNI est, tantum pro TLS 1.3 protocollo praesto est. Praecipua notio encrypt est, inter alia, informationes de qua regione petitio mittitur.

Nunc videamus quomodo mechanismus eSNI in praxi operatur.

Dicamus nos habere resource interretialem quae solutione moderni DPI obsidetur (sicut capiamus, exempli causa, torrentis venatoris celeberrimi rutracker.nl). Cum conamur website scriptori torrentis accedere, provisor scriptor signum spectamus ostendens subsidium obstructum:

Domain fronting secundum TLS 1.3

In RKN website haec regio actu recensita in schedulis interpositis:

Domain fronting secundum TLS 1.3

Cum quaeris whois, videre potes ipsum dominium "occultum" esse post nubem provisoris Cloudflare.

Domain fronting secundum TLS 1.3

Sed dissimiles "specialis" a RKN, magis technice sagaces operarii a Beeline (vel per amara experientia clarissimi moderatoris nostri edocti) locum IP inscriptionis non insulse damnaverunt, sed nomen regio in indice sistendum addiderunt. Hoc facile cognoscere potes si inspicias quae aliae regiones post eandem IP inscriptionem lateant, unam ex illis visita et accessum non impediri videas;

Domain fronting secundum TLS 1.3

Quomodo hoc fiet? Quomodo scit provisor DPI utra navigatio in regione mea sit, cum omnes communicationes fiant per https protocollum, et nondum notavimus substitutionem testium libellorum Beeline? An clarus est, an ego secutus sum?

Experiamur ad hanc quaestionem respondendum per inspectiones negotiationis per wireshark

Domain fronting secundum TLS 1.3

Screenshot ostendit primum navigatrum obtinet locum IP inscriptionis per DNS servientis, deinde signum TCP handshake occurrit cum servo destinato, et tunc navigatrum conatur SSL nexum cum servo constituere. Ad hoc faciendum, SSL Client Salve fasciculum emittit, quod nomen fontis domain in textu perspicuo continet. Hic ager requiritur a servo frontis nubeculae ut nexum recte meatus. Haec ubi provisor DPI capit, nexum nostrum solvens. Eodem tempore stipulam aliquam a provisore non accipimus, et regulam pasci erroris videmus quasi situs debilitatus vel simpliciter non operatur;

Domain fronting secundum TLS 1.3

Nunc permittemus machinam eSNI in navigatro, sicut in monitionibus pro . Incendia :
Ad hoc faciendum configurationem Firefox aperimus paginam aboutconfig et excitant sequenti occasus:

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

Post hoc, reprehendo nos uncinis bene operari in loco nubilo. Link et conemur dolum cum venato torrente iterum.

Domain fronting secundum TLS 1.3

Voila. Venator noster ventus sine ullo VPN vel procuratorio aperitur. Nunc nunc aspice ad dump negotiationis in wireshark quid acciderit.

Domain fronting secundum TLS 1.3

Hoc tempore, ssl salve clientis sarcina non explicite continet domain destinationem, sed pro, novus campus apparuit in involucro - encrypted_server_name - hoc est, ubi valor rutracker.nl continetur, et solum ad frontem nubeculae decrypt hoc potest. agrum. Et si ita est, tunc provisor DPI non habet electionem nisi lavare manus suas et talem mercaturam permitteret. Nullae aliae optiones cum encryption dantur.

Sic spectavimus quomodo opera technologia in navigatro. Nunc conemur applicare ad res subtilius et interesting. Ac primum, eundem Crispum docebimus uti eSNI ad operandum cum TLS 1.3, simulque videbimus quomodo ipsa opera eSNI-fundata regione opposita.

Domain fronting with eSNI

Ob hoc quod Crispus bibliothecam openssl vexillum utitur ut per https protocollum connectat, primum omnium eSNI subsidium ibi praebere necesse est. Nullum eSNI subsidium in ramis magistri openssl nondum est, ergo necesse est specialem ramum openssl comprehendere, eum compilare et instituere.

Repositorium ex GitHub clone et more solito componimus;

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

$ make
$ cd esnistuff
$ make

Deinde repositorium cum Crispo clone et eius compilationem configuramus utentes bibliothecae nostrae openssl compilatae:

$ 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

Hic interest recte nominare omnia directoria ubi openssl sita est (in nostro casu, hoc /opt/openssl/) et fac ut schematismi processus sine erroribus percurrat.

Si bene conformatio fuerit, videbimus lineam;

MONITUM: Esni ESNI paravit sed notatum EXPERIMENTALIUM. Caute utere!

$ make

Post sarcinam feliciter aedificandam, speciali fasciculo fasciculo ex openssl utemur ad configurandum et curro currendum. Escribamus eam in indicem cum Crispo pro commoditate:

cp /opt/openssl/esnistuff/curl-esni 

et experimentum https rogant ut servo nubeculae, dum simul memorant DNS et TLS facis in Wireshark.

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

In servo responsionis, praeter multam informationes debugging ex openssl et Crispi, responsionem HTTP accipiemus cum codice 301 ex nubecula.

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/

quod indicat petitionem nostram feliciter destinatum servo, audiri et processisse.

Nunc inspiciamus dump in wireshark negotiationis, i.e. quod provisor DPI in hoc casu vidit.

Domain fronting secundum TLS 1.3

Videri potest quod Crispum primum ad DNS server pro clavem publicam eSNI pro servo nubilo - a TXT DNS rogationem ad _esni.cloudflare.com convertit (pagina No. 13). Tum, bibliotheca openssl adhibita, curl TLS 1.3 rogationem misit ut servo nubeculae in qua SNI ager inscriptus est cum clave publica in priore gradu consecutus (#22 fasciculum). Sed, praeter eSNI campum, etiam SSL-salve fasciculus comprehendit campum solito - apertum SNI, quem quovis ordine definire possumus (in hoc casu - www.hello-rkn.ru).

Hoc apertum SNI ager non ullo modo ratio habita est cum processit a servientibus nebulosus et solum persona provisoris DPI ministravit. Servor nubilum nostrum ssl-salve fasciculum accepit, in eSNI decryptum, originale SNI inde extraxit et quasi nihil accidisse processit (omnia omnia perinde ac cogitata cum eSNI evolvere faciebat).

Sola res quae in casu isto ex DPI parte comprehendi potest est primaria DNS petitio ad _esni.cloudflare.com. Sed DNS petitionem apertam fecimus tantum ut ostenderemus quomodo haec machinatio ab intus operatur.

Ut tandem palliolum e sub DPI traheret, mechanismo iam dicto DNS super-HTTPS utimur. Explicatio aliqua - DOH est protocollum quod sinit te tueri contra hominem in medio impetu, mittendo petitionem DNS super HTTPS.

Rogationem iterum faciamus, sed hoc tempus claves eSNI publicas per protocollum, non DNS accipiemus;

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

Petitio negotiationis dump ostenditur in tortor infra:

Domain fronting secundum TLS 1.3

Videri potest Crispum primum accessiones mozilla.cloudflare-dns.com servo per DoH protocollo (https nexus cum servo 104.16.249.249) ut ab illis obtineat valores publicarum clavium pro SNI encryption, deinde ad destinationem server, latens post dominium www.hello-rkn.ru.

Praeter supra DoH resolventis mozilla.cloudflare-dns.com, aliis servitiis popularibus DoH uti possumus, exempli gratia, ex famoso corpore malo.
Sequentia curramus interrogationem:

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

Et responsum dabimus tibi;

< 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

Domain fronting secundum TLS 1.3

Hoc in casu, ad clausos rutracker.nl convertimus, utentes DoH resolventis dns.google (nihil hic typo, nunc celeberrima corporatio primum campum suum proprium habet) et alia ditione nos teximus, quod stricte est. prohibetur omnibus DPIs intercludere sub poena mortis. Ex responsione recepta, intelligere potes petitionem nostram feliciter processisse.

Cum addita perscriptio quod provisoris DPI respondet aperto SNI, quod nos ut operculum transmittimus, rogare possumus ut rutracker.nl sub specie alicuius alterius subsidii prohibiti, exempli gratia, "boni" torrentis venatoris:

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

Responsum a servo non accipiemus, quia... petitio nostra ab DPI systemate saepta erit.

Primae partis conclusio brevis

Potuimus ergo demonstrare functionem eSNI utendi openssl et Crispi et probare operationem dominii in fronte secundum eSNI. Eodem modo accommodare possumus instrumenta nostra dilectissima quae bibliotheca openssl utuntur ad operandum "sub specie" aliarum ditionum. Plura de hoc in proximis articulis.

Source: www.habr.com