د ډومین فرنټنګ د TLS 1.3 پر بنسټ

پېژندنه

د ډومین فرنټنګ د TLS 1.3 پر بنسټ
د سیسکو، بلیو کوټ، FireEye په څیر د مشهور تولید کونکو څخه د عصري کارپوریټ مینځپانګې فلټر کولو سیسټمونه د دوی خورا پیاوړي همکارانو - DPI سیسټمونو سره خورا ډیر مشترک دي ، کوم چې په ملي کچه په فعاله توګه پلي کیږي. د دواړو د کار جوهر دا دی چې د انټرنیټ اتصال بندولو لپاره د راتلوونکي او وتلو انټرنیټ ترافیک معاینه کړي او د تور / سپین لیستونو پراساس پریکړه وکړي. او څرنګه چې دوی دواړه د دوی د کار په اساساتو کې په ورته اصولو تکیه کوي، د دوی د مخنیوي طریقې به هم ډیر مشترک وي.

یو له هغه ټیکنالوژیو څخه چې تاسو ته اجازه درکوي په مؤثره توګه د DPI او کارپوریټ سیسټمونو څخه تیر شئ د ډومین مخکینۍ ټیکنالوژي ده. د دې جوهر دا دی چې موږ بندې سرچینې ته ځو ، د بل تر شا پټ ، عامه ډومین د ښه شهرت سره ، کوم چې په څرګند ډول به د هیڅ سیسټم لخوا نه بندیږي ، د مثال په توګه google.com.

د دې ټیکنالوژۍ په اړه لا دمخه ډیرې مقالې لیکل شوي او ډیری مثالونه ورکړل شوي. په هرصورت، مشهور او پدې وروستیو کې بحث شوی DNS-over-HTTPS او کوډ شوي-SNI ټیکنالوژۍ، او همدارنګه د TLS 1.3 پروتوکول نوې نسخه، دا ممکنه کوي چې د ډومین فرنټینګ لپاره بل اختیار په پام کې ونیسي.

د ټیکنالوژۍ پوهه

لومړی، راځئ چې لږ بنسټیز مفکورې تعریف کړو ترڅو هرڅوک پوه شي چې څوک څوک دی او ولې دا ټول اړین دي. موږ د eSNI میکانیزم یادونه وکړه، کوم چې عملیات به نور هم بحث وکړي. د eSNI (د کوډ شوي سرور نوم اشاره) میکانیزم د SNI خوندي نسخه ده، یوازې د TLS 1.3 پروتوکول لپاره شتون لري. اصلي نظر د نورو شیانو په مینځ کې کوډ کول دي، د دې په اړه معلومات چې کوم ډومین ته غوښتنه لیږل کیږي.

اوس راځئ وګورو چې د eSNI میکانیزم په عمل کې څنګه کار کوي.

راځئ چې ووایو موږ د انټرنیټ سرچینه لرو چې د عصري DPI حل لخوا بنده شوې ده (راځئ د مثال په توګه ، مشهور torrent tracker rutracker.nl). کله چې موږ د تورینټ ټریکر ویب پا toې ته د لاسرسي هڅه کوو ، موږ د چمتو کونکي معیاري سټب ګورو چې دا په ګوته کوي چې سرچینه بنده شوې ده:

د ډومین فرنټنګ د TLS 1.3 پر بنسټ

د RKN په ویب پاڼه کې دا ډومین په حقیقت کې د بند لیستونو کې لیست شوی دی:

د ډومین فرنټنګ د TLS 1.3 پر بنسټ

کله چې تاسو پوښتنه کوئ whois، تاسو کولی شئ وګورئ چې ډومین پخپله د بادل چمتو کونکي Cloudflare شاته "پټ" دی.

د ډومین فرنټنګ د TLS 1.3 پر بنسټ

مګر د RKN څخه د "متخصصینو" برعکس ، د بیلین څخه ډیر تخنیکي پوهه کارمندان (یا زموږ د مشهور تنظیم کونکي ترخې تجربې لخوا ښوول شوي) په احمقانه ډول د IP پتې لخوا سایټ منع نه کړ ، مګر د ډومین نوم یې د سټاپ لیست کې اضافه کړ. تاسو کولی شئ دا په اسانۍ سره تایید کړئ که تاسو وګورئ چې کوم نور ډومینونه د ورته IP پتې ترشا پټ دي، یو له دوی څخه لیدنه وکړئ او وګورئ چې لاسرسی بند شوی نه دی:

د ډومین فرنټنګ د TLS 1.3 پر بنسټ

دا څنګه کیږي؟ د چمتو کونکي DPI څنګه پوهیږي چې زما براوزر په کوم ډومین کې دی ، ځکه چې ټولې اړیکې د https پروتوکول له لارې پیښیږي ، او موږ لاهم د Beeline څخه د https سندونو بدیل ندی لیدلی؟ ایا هغه د پام وړ دی یا زه تعقیب کیږم؟

راځئ هڅه وکړو چې دې پوښتنې ته ځواب ووایو د وایر شارک له لارې ترافیک ته

د ډومین فرنټنګ د TLS 1.3 پر بنسټ

سکرین شاټ ښیې چې لومړی براوزر د DNS له لارې د سرور IP پته ترلاسه کوي ، بیا د منزل سرور سره یو معیاري TCP لاس لیک رامینځته کیږي ، او بیا براوزر هڅه کوي د سرور سره د SSL اړیکې رامینځته کړي. د دې کولو لپاره، دا د SSL پیرودونکي هیلو پاکټ لیږي، کوم چې په روښانه متن کې د سرچینې ډومین نوم لري. دا ساحه د کلاوډ فلیر فرنټ اینډ سرور لخوا اړینه ده ترڅو په سمه توګه پیوستون ته لاره ومومي. دا هغه ځای دی چې چمتو کوونکی DPI موږ نیسي، زموږ اړیکه ماتوي. په ورته وخت کې، موږ د چمتو کونکي څخه هیڅ سټب نه ترلاسه کوو، او موږ د معیاري براوزر تېروتنه ګورو لکه څنګه چې سایټ غیر فعال دی یا په ساده ډول کار نه کوي:

د ډومین فرنټنګ د TLS 1.3 پر بنسټ

اوس راځئ چې په براوزر کې د eSNI میکانیزم فعال کړو، لکه څنګه چې په لارښوونو کې لیکل شوي د فایرفوکس :
د دې کولو لپاره موږ د فایرفوکس ترتیب پاڼه پرانیزو په اړه: config او لاندې ترتیبات فعال کړئ:

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

له دې وروسته ، موږ به وګورو چې تنظیمات په کلاوډ فلیر ویب پا onه کې سم کار کوي. مخونه او راځئ چې زموږ د تورینټ ټریکر سره یو ځل بیا هڅه وکړو.

د ډومین فرنټنګ د TLS 1.3 پر بنسټ

وایلا زموږ غوره ټریکر پرته له VPN یا پراکسي سرورونو خلاص شو. راځئ چې اوس په واشیرارک کې د ترافیک ډمپ وګورو ترڅو وګورو چې څه پیښ شوي.

د ډومین فرنټنګ د TLS 1.3 پر بنسټ

دا ځل، د ssl پیرودونکي هیلو بسته په واضح ډول د منزل ډومین نه لري، مګر پرځای یې، په بسته کې یو نوی ساحه ښکاره شوه - encrypted_server_name - دا هغه ځای دی چې د rutracker.nl ارزښت پکې شتون لري، او یوازې د کلاوډ فلیر فرنټ اینډ سرور کولی شي دا کوډ کړي. میدان او که داسې وي ، نو بیا چمتو کونکی DPI پرته له دې چې خپل لاسونه ومینځي او ورته ترافیک ته اجازه ورکړي بله چاره نلري. د کوډ کولو سره نور اختیارونه شتون نلري.

نو، موږ وګورو چې څنګه ټیکنالوژي په براوزر کې کار کوي. اوس راځئ هڅه وکړو چې دا په نورو ځانګړو او زړه پورې شیانو کې پلي کړو. او لومړی، موږ به د TLS 1.3 سره کار کولو لپاره د eSNI کارولو لپاره ورته کرل درس ورکړو، او په ورته وخت کې به موږ وګورو چې څنګه د eSNI-based ډومین فرنټینګ پخپله کار کوي.

د eSNI سره د ډومین مخینه

د دې حقیقت له امله چې curl د https پروتوکول له لارې د نښلولو لپاره معیاري Openssl کتابتون کاروي، لومړی موږ اړتیا لرو چې هلته د eSNI ملاتړ چمتو کړو. د Openssl ماسټر څانګو کې تر اوسه د eSNI ملاتړ شتون نلري، نو موږ اړتیا لرو چې یو ځانګړی Openssl څانګه ډاونلوډ کړئ، تالیف او نصب کړئ.

موږ د GitHub څخه ذخیره کلون کوو او د معمول په څیر یې تالیف کوو:

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

$ make
$ cd esnistuff
$ make

بیا، موږ ذخیره د curl سره کلون کوو او زموږ د تالیف شوي Openssl کتابتون په کارولو سره د هغې تالیف تنظیم کوو:

$ 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

دلته دا مهمه ده چې ټول هغه لارښودونه په سمه توګه مشخص کړئ چیرې چې openssl موقعیت لري (زموږ په قضیه کې ، دا دی /opt/openssl/) او ډاډ ترلاسه کړئ چې د ترتیب کولو پروسه پرته له خطا تیریږي.

که ترتیب بریالی وي، موږ به لاین وګورو:

اخطار: esni ESNI فعال شوی مګر تجربه لرونکی په نښه شوی. په احتیاط سره وکاروئ!

$ make

په بریالیتوب سره د بسته بندۍ له جوړولو وروسته، موږ به د Openssl څخه د curl ترتیب او چلولو لپاره یو ځانګړی باش فایل وکاروو. راځئ چې دا د اسانتیا لپاره د curl سره ډایرکټر ته کاپي کړو:

cp /opt/openssl/esnistuff/curl-esni 

او د کلاوډ فلیر سرور ته د ازموینې https غوښتنه وکړئ ، پداسې حال کې چې په ورته وخت کې په ویرشارک کې د DNS او TLS کڅوړې ثبتوي.

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

د سرور ځواب کې، د Openssl او curl څخه د ډیری ډیبګ کولو معلوماتو سربیره، موږ به د کلاوډ فلیر څخه د کوډ 301 سره د HTTP ځواب ترلاسه کړو.

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/

کوم چې دا په ګوته کوي چې زموږ غوښتنه په بریالیتوب سره د منزل سرور ته سپارل شوې، اوریدل شوې او پروسس شوې.

اوس راځئ چې په وایرشارک کې د ترافیک ډمپ وګورو ، i.e. هغه څه چې چمتو کونکي DPI پدې قضیه کې ولیدل.

د ډومین فرنټنګ د TLS 1.3 پر بنسټ

دا لیدل کیدی شي چې curl لومړی د کلاوډ فلیر سرور لپاره د عامه eSNI کیلي لپاره DNS سرور ته وګرځید - _esni.cloudflare.com ته د TXT DNS غوښتنه (د بسته نمبر 13). بیا، د Openssl کتابتون په کارولو سره، curl د کلاوډ فلیر سرور ته د TLS 1.3 غوښتنه واستوله په کوم کې چې د SNI ساحه په تیرو ګام کې ترلاسه شوي عامه کیلي سره کوډ شوې وه (پاکټ #22). مګر، د eSNI ساحې سربیره، د SSL-hello پاکټ کې د معمول - خلاص SNI سره ساحه هم شامله ده، کوم چې موږ کولی شو په هر ترتیب کې مشخص کړو (په دې حالت کې - www.hello-rkn.ru).

دا خلاص SNI ساحه په هیڅ ډول په پام کې نه وه نیول شوې کله چې د کلاوډ فلیر سرورونو لخوا پروسس کیږي او یوازې د چمتو کونکي DPI لپاره د ماسک په توګه کار کوي. د کلاوډ فلیر سرور زموږ د ssl-hello پاکټ ترلاسه کړ، eSNI یې کوډ کړ، اصلي SNI یې له هغه ځایه راوباسي او پروسس یې کړ لکه څنګه چې هیڅ شی نه وي شوی (دا هرڅه د eSNI پراختیا په وخت کې د پلان شوي پلان سره سم ترسره کړل).

یوازینی شی چې پدې قضیه کې د DPI نقطه نظر څخه نیول کیدی شي _esni.cloudflare.com ته د DNS لومړنۍ غوښتنه ده. مګر موږ د DNS غوښتنه یوازې د دې لپاره خلاصه کړه چې وښیې چې دا میکانیزم څنګه له دننه څخه کار کوي.

د دې لپاره چې په نهایت کې د DPI لاندې څخه غالۍ وباسي ، موږ دمخه ذکر شوي DNS-over-HTTPS میکانیزم کاروو. یو کوچنی توضیح - DOH یو پروتوکول دی چې تاسو ته اجازه درکوي د HTTPS په اړه د DNS غوښتنې لیږلو سره د مینځني مینځني برید پروړاندې ساتنه وکړئ.

راځئ چې بیا غوښتنه اجرا کړو، مګر دا ځل به موږ د https پروتوکول له لارې عامه eSNI کیلي ترلاسه کړو، نه DNS:

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

د غوښتنې ترافیک ډمپ لاندې سکرین شاټ کې ښودل شوی:

د ډومین فرنټنګ د TLS 1.3 پر بنسټ

دا لیدل کیدی شي چې curl لومړی د DoH پروتوکول (سرور 104.16.249.249 سره https پیوستون) له لارې mozilla.cloudflare-dns.com سرور ته لاسرسی لري ترڅو له دوی څخه د SNI کوډ کولو لپاره د عامه کیلي ارزښتونه ترلاسه کړي ، او بیا منزل ته. سرور، د ډومین تر شا پټول www.hello-rkn.ru.

د پورته DoH حل کونکي mozilla.cloudflare-dns.com سربیره، موږ کولی شو د DoH نور مشهور خدمتونه وکاروو، د بیلګې په توګه، د مشهور بری شرکت څخه.
راځئ چې لاندې پوښتنې پرمخ بوځو:

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

او موږ ځواب ترلاسه کوو:

< 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

د ډومین فرنټنګ د TLS 1.3 پر بنسټ

پدې حالت کې ، موږ د DoH حل کونکي dns.google په کارولو سره بلاک شوي rutracker.nl سرور ته مخه کړه (دلته هیڅ ډول ټایپو شتون نلري ، اوس مشهور کارپوریشن خپل د لومړۍ کچې ډومین لري) او ځان یې د بل ډومین سره پوښلی ، کوم چې سخت دی. د ټولو DPIs لپاره منع دی چې د مرګ درد لاندې بند کړي. د ترلاسه شوي ځواب پراساس، تاسو کولی شئ پوه شئ چې زموږ غوښتنه په بریالیتوب سره پروسس شوې.

د اضافي چک په توګه چې د چمتو کونکي DPI خلاص SNI ته ځواب ورکوي، کوم چې موږ د پوښ په توګه لیږدوو، موږ کولی شو د ځینو نورو ممنوع سرچینو په څیر د rutracker.nl څخه غوښتنه وکړو، د بیلګې په توګه، یو بل "ښه" مشعل تعقیبونکی:

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

موږ به د سرور څخه ځواب ترلاسه نکړو، ځکه چې ... زموږ غوښتنه به د DPI سیسټم لخوا بنده شي.

لومړۍ برخه ته لنډه پایله

نو، موږ وکولای شو چې د Openssl او curl په کارولو سره د eSNI فعالیت وښیو او د eSNI پراساس د ډومین فرنټنګ عملیات معاینه کړو. په ورته ډول، موږ کولی شو خپل غوره وسیلې تطبیق کړو چې د Openssl کتابتون څخه کار اخلي د نورو ډومینونو د "باغ لاندې" کار کولو لپاره. پدې اړه نور جزئیات زموږ په راتلونکو مقالو کې.

سرچینه: www.habr.com

Add a comment