በTLS 1.3 ላይ የተመሰረተ የጎራ ግንባር

መግቢያ

በTLS 1.3 ላይ የተመሰረተ የጎራ ግንባር
እንደ ሲሲስኮ፣ ብሉኮአት፣ ፋየርኢይ ካሉ ታዋቂ አምራቾች የመጡ ዘመናዊ የኮርፖሬት ይዘት ማጣሪያ ስርዓቶች ከኃያላን አጋሮቻቸው ጋር ብዙ የሚያመሳስላቸው ነገር አለ - ዲፒአይ ሲስተሞች፣ በሀገር አቀፍ ደረጃ በከፍተኛ ደረጃ እየተተገበሩ ናቸው። የሁለቱም ሥራ ፍሬ ነገር ገቢ እና ወጪ የበይነመረብ ትራፊክን መመርመር እና በጥቁር / ነጭ ዝርዝሮች ላይ በመመስረት የበይነመረብ ግንኙነትን ለማገድ ውሳኔ መስጠት ነው። እና ሁለቱም በስራቸው መሰረታዊ መርሆች ላይ በተመሳሳይ መርህ ላይ ስለሚመሰረቱ፣ እነሱን የማለፍ መንገዶችም ብዙ የሚያመሳስላቸው ነገር ይኖራል።

ሁለቱንም ዲፒአይ እና የድርጅት ስርዓቶችን በብቃት ማለፍ ከሚችሉት ቴክኖሎጂዎች አንዱ የጎራ ፊት ለፊት ቴክኖሎጂ ነው። ዋናው ቁም ነገር ከሌላው፣ ከህዝብ ጎራ ተደብቀን፣ መልካም ስም ይዘን ወደ የታገደ ምንጭ መሄዳችን ነው፣ ይህም በእርግጠኝነት እንደ google.com ባሉ በማንኛውም ስርዓት አይታገድም።

ስለዚህ ቴክኖሎጂ ብዙ ጽሁፎች ተጽፈዋል እና ብዙ ምሳሌዎች ተሰጥተዋል. ነገር ግን፣ ዲ ኤን ኤስ-በላይ-ኤችቲቲፒኤስ እና ኢንክሪፕትድ-ኤስኤንአይ ቴክኖሎጂዎች ታዋቂ እና በቅርብ ጊዜ ውይይት የተደረገባቸው፣ እንዲሁም አዲሱ የTLS 1.3 ፕሮቶኮል ስሪት ሌላ የጎራ ፊት ለፊት ያለውን አማራጭ ለማጤን እድል ይሰጣሉ።

ከቴክኖሎጂ ጋር መተዋወቅ

በመጀመሪያ፣ ሁሉም ሰው ማን ማን እንደሆነ እና ለምን እንደሚያስፈልግ ግንዛቤ እንዲኖረው ትንሽ መሰረታዊ ፅንሰ ሀሳቦችን እንገልፃለን። የ eSNI ዘዴን ጠቅሰናል, አሠራሩ የበለጠ ይብራራል. የ eSNI (የተመሰጠረ የአገልጋይ ስም ማመላከቻ) ዘዴ ለTLS 1.3 ፕሮቶኮል ብቻ የሚገኝ ደህንነቱ የተጠበቀ የ SNI ስሪት ነው። ዋናው ነጥብ ጥያቄው ወደ የትኛው ጎራ እንደተላከ መረጃን ከሌሎች ነገሮች በተጨማሪ ማመስጠር ነው።

አሁን የ eSNI አሠራር በተግባር እንዴት እንደሚሰራ እንመልከት።

በዘመናዊ ዲፒአይ መፍትሔ የታገደ የኢንተርኔት ምንጭ አለን እንበል (ለምሳሌ ታዋቂውን ቶሬንት መከታተያ - rutracker.nlን እንውሰድ)። የቶርረንት መከታተያ ቦታን ለማግኘት ስንሞክር ሃብቱ እየታገደ መሆኑን የሚገልጽ መደበኛ የአቅራቢ ወረቀት እናያለን፡-

በTLS 1.3 ላይ የተመሰረተ የጎራ ግንባር

በRKN ድህረ ገጽ ላይ፣ ይህ ጎራ በእውነቱ በማቆሚያ ዝርዝሮች ውስጥ ተዘርዝሯል።

በTLS 1.3 ላይ የተመሰረተ የጎራ ግንባር

ዋይስ ሲጠይቁ፣ ጎራው ራሱ ከCloudflare ደመና አቅራቢ ጀርባ “የተደበቀ” መሆኑ ግልጽ ነው።

በTLS 1.3 ላይ የተመሰረተ የጎራ ግንባር

ነገር ግን ከ RKN እንደ “ስፔሻሊስቶች” በተቃራኒ ከቤላይን የበለጠ ቴክኒካል እውቀት ያላቸው ሰራተኞች (ወይም በታዋቂው ተቆጣጣሪያችን መራራ ልምድ ያስተማረው) ጣቢያውን በአይፒ አድራሻ በሞኝነት አልከለከለውም ፣ ግን የጎራ ስሙን በማቆሚያ ዝርዝሩ ላይ ያስቀምጡት። ሌሎች ጎራዎች ከተመሳሳዩ አይፒ አድራሻ በስተጀርባ ምን እንደሚደበቁ ከተመለከቱ ፣ ከመካከላቸው አንዱን ጎብኝ እና መዳረሻ እንዳልተከለከለ ለማየት ይህ ቀላል ነው።

በTLS 1.3 ላይ የተመሰረተ የጎራ ግንባር

ግን እንዴት ይከሰታል? የአቅራቢው ዲፒአይ የእኔ አሳሽ ወደ የትኛው ጎራ እንደሚሄድ እንዴት ያውቃል፣ ምክንያቱም ሁሉም ግንኙነቶች የሚከናወኑት በhttps ፕሮቶኮል ነው፣ እና የ https ሰርተፍኬቶችን ከቢላይን መተካቱን እስካሁን አላስተዋልንም? እሱ ክላየርቮያንት ነው ወይስ እየተከተልኩ ነው?

ይህንን ጥያቄ ለመመለስ እንሞክር በ wireshark በኩል ያለውን ትራፊክ በመመልከት

በTLS 1.3 ላይ የተመሰረተ የጎራ ግንባር

ስክሪንሾቱ የሚያሳየው በመጀመሪያ አሳሹ የአገልጋዩን IP አድራሻ በዲ ኤን ኤስ ያገኛል፣ በመቀጠል መደበኛ TCP ከመድረሻ አገልጋዩ ጋር መጨባበጥ እና ከዚያም አሳሹ ከአገልጋዩ ጋር የssl ግንኙነት ለመመስረት ይሞክራል። ይህንን ለማድረግ የSSL Client Hello ጥቅል በጠራ ጽሑፍ ውስጥ የምንጭ ጎራ ስም የያዘ ፓኬት ይልካል። ግንኙነቱን በትክክል ለማስኬድ ይህ መስክ በCloudflare frontend አገልጋይ ያስፈልጋል። ይህ የአቅራቢው ዲፒአይ የሚይዘን ፣ግንኙነታችንን የሚያፈርስበት ነው። በተመሳሳይ ጊዜ ከአቅራቢው ምንም ዓይነት ማገዶ አንቀበልም ፣ እና ጣቢያው እንደተሰናከለ ወይም በቀላሉ የማይሰራ ያህል መደበኛ የአሳሽ ስህተት እናያለን።

በTLS 1.3 ላይ የተመሰረተ የጎራ ግንባር

በመመሪያው ላይ እንደተጻፈው አሁን የ eSNI ዘዴን በአሳሹ ውስጥ እናንቃት Firefox :
ይህንን ለማድረግ የፋየርፎክስ ውቅረት ገጽን እንከፍተዋለን ስለ: config እና የሚከተሉትን ቅንብሮች ያግብሩ:

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

ከዚያ በኋላ በCloudflare ድህረ ገጽ ላይ ያለውን የቅንጅቶች ትክክለኛ አሠራር እናረጋግጣለን። ማያያዣ እና ተንኮሉን እንደገና በ torrent መከታተያችን ይሞክሩት።

በTLS 1.3 ላይ የተመሰረተ የጎራ ግንባር

ቮይላ ያለ ምንም ቪፒኤን ወይም ተኪ አገልጋይ የእኛ ተወዳጅ መከታተያ ተከፈተ። አሁን ምን እንደተፈጠረ በ wireshark ውስጥ ያለውን የትራፊክ ማጠራቀሚያ እንይ።

በTLS 1.3 ላይ የተመሰረተ የጎራ ግንባር

በዚህ ጊዜ የኤስኤስኤል ደንበኛ ሄሎ ፓኬጅ የመድረሻ ጎራውን በግልፅ አልያዘም ይልቁንም አዲስ መስክ በጥቅሉ ውስጥ ታየ - ኢንክሪፕትድ_ሰርቨር_ስም - ይህ የ rutracker.nl እሴት የሚገኝበት ነው እና የCloudflare የፊት-መጨረሻ አገልጋይ ብቻ ነው ዲክሪፕት ማድረግ የሚችለው። ይህ መስክ. እና እንደዚያ ከሆነ, የዲፒአይ አቅራቢው እጃቸውን ከመታጠብ እና እንደዚህ አይነት ትራፊክን ከመፍቀድ በስተቀር ሌላ ምርጫ የለውም. እና ምስጠራ ያላቸው ሌሎች አማራጮች የሉም።

ስለዚህ, ቴክኖሎጂው በአሳሹ ውስጥ እንዴት እንደሚሰራ አይተናል. አሁን ይበልጥ ልዩ እና አስደሳች በሆኑ ነገሮች ላይ ተግባራዊ ለማድረግ እንሞክር. እና ለመጀመር፣ ከTLS 1.3 ጋር ለመስራት eSNIን ለመጠቀም ተመሳሳዩን ኩርባ እናስተምራለን፣ እና በተመሳሳይ ጊዜ eSNI ላይ የተመሠረተ የፊት ለፊት ጎራ እንዴት እንደሚሰራ እንመለከታለን።

ከ eSNI ጋር የጎራ ግንባር

curl በ https ፕሮቶኮል በኩል ለመገናኘት መደበኛ openssl ላይብረሪ የሚጠቀም ከመሆኑ እውነታ አንጻር፣ በመጀመሪያ የ eSNI ድጋፍ እዚያ መስጠት አለብን። በ openssl ማስተር ቅርንጫፎች ውስጥ እስካሁን ምንም የ eSNI ድጋፍ የለም፣ ስለዚህ ልዩ openssl ቅርንጫፍ አውርደን፣ አጠናቅረን መጫን አለብን።

ማከማቻውን ከgithub ዘግተን እንደተለመደው እንሰበስባለን፡-

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

$ make
$ cd esnistuff
$ make

በመቀጠል፣የእኛን የተከፈተ 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 ነቅቷል ነገር ግን EXPERIMENTAL የሚል ምልክት ተደርጎበታል። በጥንቃቄ ይጠቀሙ!

$ make

ጥቅሉን በተሳካ ሁኔታ ከገነባን በኋላ curlን ለማዋቀር እና ለማስኬድ ልዩ የ bash ፋይልን ከ openssl እንጠቀማለን። ለመመቻቸት ከከርብል ጋር ወደ ማውጫው ይቅዱት፡-

cp /opt/openssl/esnistuff/curl-esni 

እና የhttps ጥያቄን ወደ Cloudflare አገልጋይ ያሂዱ፣ በተመሳሳይ ጊዜ ዲኤንኤስ እና ቲኤልኤስ ፓኬቶችን ወደ Wireshark ይፃፉ።

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

በአገልጋይ ምላሽ፣ ከ openssl እና curl ከሚመጡ ብዙ የማረም መረጃ በተጨማሪ፣ የኤችቲቲፒ ምላሽ ከCloudflare 301 ኮድ እናገኛለን።

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/

ይህ የሚያመለክተው ጥያቄያችን በተሳካ ሁኔታ ወደ መድረሻው አገልጋይ መድረሱን, ሰምቶ እና ሂደትን ነው.

አሁን በ wireshark ውስጥ ያለውን የትራፊክ መጨናነቅ እንይ፣ ማለትም። በዚህ ጉዳይ ላይ የአቅራቢው DPI ያየው.

በTLS 1.3 ላይ የተመሰረተ የጎራ ግንባር

መጀመሪያ ላይ ከርል ወደ ዲ ኤን ኤስ አገልጋይ ለወል eSNI ቁልፍ ለCloudflare አገልጋይ - የTXT ዲኤንኤስ ጥያቄ ለ _esni.cloudflare.com (ጥቅል ቁጥር 13) እንደዞረ ማየት ይቻላል። ከዚያም openssl ቤተመፃህፍትን በመጠቀም፣ curl TLS 1.3 ጥያቄን ወደ Cloudflare አገልጋይ ላከ የኤስኤንአይ መስክ ባለፈው ደረጃ በተገኘ የህዝብ ቁልፍ (ጥቅል #22) የተመሰጠረበት ነው። ነገር ግን ከ eSNI መስክ በተጨማሪ የኤስኤስኤል-ሄሎ ፓኬጅ ከተለመደው ጋር አንድ መስክ ተካቷል - ክፍት SNI, በማንኛውም ቅደም ተከተል ልንገልጽ እንችላለን (በዚህ ጉዳይ ላይ - www.ሄሎ-rkn.ru).

ይህ ክፍት የSNI መስክ በCloudflare አገልጋዮች ሲሰራ በምንም መልኩ ግምት ውስጥ አልገባም እና ለአቅራቢው ዲፒአይ መሸፈኛ ብቻ ነበር። የCloudflare አገልጋይ የእኛን ssl-hello ፓኬት ተቀብሏል፣ eSNI ን ዲክሪፕት አደረገ፣ ዋናውን SNI ከዚያ አውጥቶ ምንም እንዳልተከሰተ አስመስሎታል (በ eSNI ልማት ወቅት እንደታቀደው ሁሉንም ነገር አድርጓል)።

በዚህ ጉዳይ ላይ ከዲፒአይ አንፃር ሊያያዝ የሚችለው ብቸኛው ነገር የ _esni.cloudflare.com ዋና የዲ ኤን ኤስ ጥያቄ ነው። ግን ይህ ዘዴ ከውስጥ ሆኖ እንዴት እንደሚሰራ ለማሳየት የዲ ኤን ኤስ መጠይቁን ክፍት አድርገነዋል።

በመጨረሻ ከዲፒአይ ስር መሬቱን ለማንኳኳት ፣ ቀደም ሲል የተጠቀሰውን የዲ ኤን ኤስ-ከኤችቲቲፒኤስ ዘዴን እንጠቀማለን። ትንሽ ማብራሪያ - DOH በኤችቲቲፒኤስ ላይ የዲኤንኤስ ጥያቄ በመላክ እራስዎን ከመካከለኛው ሰው ጥቃት ለመጠበቅ የሚያስችል ፕሮቶኮል ነው።

ጥያቄውን እንደገና እናስፈጽመው፣ ግን በዚህ ጊዜ የ https ፕሮቶኮሉን በመጠቀም ይፋዊ eSNI ቁልፎችን እንቀበላለን እንጂ ዲ ኤን ኤስ አይደለም።

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

የጥያቄው ትራፊክ መጣያ ከታች ባለው ቅጽበታዊ ገጽ እይታ ላይ ይታያል፡

በTLS 1.3 ላይ የተመሰረተ የጎራ ግንባር

የSNI ምስጠራ ይፋዊ ቁልፍ እሴቶችን ለማግኘት Curl በመጀመሪያ የዶኤች ፕሮቶኮልን (ከአገልጋዩ ጋር ያለው የhttps ግንኙነት 104.16.249.249) በመጠቀም ወደ mozilla.cloudflare-dns.com አገልጋይ ሲደርስ እና ከዚያ ለ የመድረሻ አገልጋይ, ከጎራ በስተጀርባ ተደብቋል www.ሄሎ-rkn.ru.

ከላይ ከተጠቀሰው mozilla.cloudflare-dns.com DoH solver በተጨማሪ ሌሎች ታዋቂ የዶ ኤች አገልግሎቶችን ለምሳሌ ከታዋቂው ክፉ ኮርፖሬሽን መጠቀም እንችላለን።
የሚከተለውን ጥያቄ እናስፈጽም.

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 ላይ የተመሰረተ የጎራ ግንባር

በዚህ አጋጣሚ dns.google DoH solverን በመጠቀም ወደ የታገደው rutracker.nl አገልጋይ ዞር ብለናል (እዚህ የትየባ የለም አሁን ታዋቂው ኮርፖሬሽን የራሱ አንደኛ ደረጃ ጎራ አለው) እና እራሳችንን በሌላ ጎራ ሸፍነናል፣ ይህም በጥብቅ ነው። በሞት ህመም ስር በሁሉም ዲፒአይ እንዳይታገድ የተከለከለ። ከተገኘው ምላሽ፣ ጥያቄያችን በተሳካ ሁኔታ መጠናቀቁን መረዳት እንችላለን።

እንደ ሽፋን ለምናልፍበት ክፍት SNI የአቅራቢው ዲፒአይ ምላሽ እንደሰጠ እንደ ተጨማሪ ማረጋገጫ ፣ ከተከለከለው ሌላ ምንጭ ጀርባ rutracker.nl ጥያቄ ማቅረብ እንችላለን ፣ለምሳሌ ፣ ሌላ “ጥሩ” ጎርፍ መከታተያ።

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

ከአገልጋዩ ምላሽ አንቀበልም, ምክንያቱም ጥያቄያችን በዲፒአይ ስርዓት ይታገዳል።

ለመጀመሪያው ክፍል ትንሽ መደምደሚያ

ስለዚህ የeSNIን አፈጻጸም openssl እና curl በመጠቀም ማሳየት እና eSNI ላይ የተመሰረተ የጎራ የፊት ለፊት ገፅታን መፈተሽ ችለናል። በተመሳሳይ መልኩ የ openssl ቤተ-መጽሐፍትን የሚጠቀሙ ተወዳጅ መሳሪያዎቻችንን ከሌሎች ጎራዎች "በመደበቅ" እንዲሰሩ ማድረግ እንችላለን። በሚቀጥለው ጽሑፎቻችን ስለዚህ ጉዳይ ተጨማሪ።

ምንጭ: hab.com

አስተያየት ያክሉ