{"id":52639,"date":"2019-11-13T00:00:00","date_gmt":"2019-11-12T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/domen-fronting-na-baze-tls-1-3"},"modified":"2026-05-20T19:54:20","modified_gmt":"2026-05-20T17:54:20","slug":"domen-fronting-na-baze-tls-1-3","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/domen-fronting-na-baze-tls-1-3","title":{"rendered":"Domain fronting oparty na TLS 1.3","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h3>Wprowadzenie<\/h3>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2019\/11\/9e81fbeed9c8d41c7e4f583235541370.jpg\" alt=\"Domain fronting oparty na TLS 1.3\" \/><br \/>\nNowoczesne korporacyjne systemy filtracji tre\u015bci, takie jak Cisco, BlueCoat, FireEye, maj\u0105 wiele wsp\u00f3lnego z bardziej zaawansowanymi rozwi\u0105zaniami \u2014 systemami DPI, kt\u00f3re s\u0105 intensywnie wdra\u017cane na poziomie krajowym. Ich dzia\u0142anie polega na monitorowaniu przychodz\u0105cego i wychodz\u0105cego ruchu internetowego oraz, na podstawie czarnych\/bia\u0142ych list, podejmowaniu decyzji o zablokowaniu po\u0142\u0105czenia internetowego. Poniewa\u017c zar\u00f3wno jedne, jak i drugie polegaj\u0105 na podobnych zasadach, metody ich omijania r\u00f3wnie\u017c maj\u0105 wiele wsp\u00f3lnego.<\/p>\n<p>Jedn\u0105 z technologii, kt\u00f3ra pozwala do\u015b\u0107 skutecznie omija\u0107 zar\u00f3wno systemy DPI, jak i korporacyjne, jest technologia domain fronting. Polega ona na tym, \u017ce kierujemy si\u0119 do zablokowanego zasobu, ukrywaj\u0105c si\u0119 za inn\u0105, publiczn\u0105 domen\u0105 o dobrej reputacji, kt\u00f3ra z pewno\u015bci\u0105 nie b\u0119dzie zablokowana przez \u017caden system, na przyk\u0142ad google.com.<\/p>\n<p>Na temat tej technologii napisano ju\u017c wiele artyku\u0142\u00f3w i podano liczne przyk\u0142ady. Jednak popularne ostatnio technologie DNS-over-HTTPS i encrypted-SNI, a tak\u017ce nowa wersja protoko\u0142u TLS 1.3, daj\u0105 mo\u017cliwo\u015b\u0107 rozwa\u017cenia kolejnej opcji domain fronting.<br \/>\n<a rel=\"nofollow\" name=\"habracut\"><\/a><\/p>\n<h3>Zag\u0142\u0119biamy si\u0119 w technologi\u0119<\/h3>\n<p>Najpierw ustalmy podstawowe poj\u0119cia, aby ka\u017cdy mia\u0142 jasno\u015b\u0107, kto jest kim i po co to wszystko. Wspomnieli\u015bmy o mechanizmie eSNI, kt\u00f3rego dzia\u0142anie om\u00f3wimy p\u00f3\u017aniej. Mechanizm eSNI (encrypted Server Name Indication) to zabezpieczona wersja SNI, dost\u0119pna tylko dla protoko\u0142u TLS 1.3. G\u0142\u00f3wna idea polega na szyfrowaniu r\u00f3wnie\u017c informacji o tym, do jakiej domeny wysy\u0142ane jest zapytanie.<\/p>\n<p>A teraz przyjrzyjmy si\u0119, jak dzia\u0142a mechanizm eSNI w praktyce.<\/p>\n<p>Za\u0142\u00f3\u017cmy, \u017ce mamy zas\u00f3b internetowy, kt\u00f3ry jest blokowany przez nowoczesne rozwi\u0105zanie DPI (we\u017amy na przyk\u0142ad znany tracker torrent\u00f3w \u2014 rutracker.nl). Przy pr\u00f3bie dost\u0119pu do strony trackera torrent\u00f3w widzimy standardowy komunikat dostawcy, informuj\u0105cy o tym, \u017ce zas\u00f3b jest zablokowany:<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2019\/11\/6a2aeccd290f9046efa799166ffa875f.jpg\" alt=\"Domain fronting oparty na TLS 1.3\" \/><\/p>\n<p>Na stronie RKN domena faktycznie widnieje na czarnej li\u015bcie:<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2019\/11\/1c881e2c8403cf85f77d9d74cbf3f54e.jpg\" alt=\"Domain fronting oparty na TLS 1.3\" \/><\/p>\n<p>Przy zapytaniu whois wida\u0107, \u017ce sama domena jest \"schowana\" za chmurowym dostawc\u0105 Cloudflare.<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2019\/11\/55b472de20a6eb85162ffbba286b9487.jpg\" alt=\"Domain fronting oparty na TLS 1.3\" \/><\/p>\n<p>Jednak w przeciwie\u0144stwie do \"specjalist\u00f3w\" z RKN, bardziej technicznie zaawansowani pracownicy z Beeline (lub nauczeni gorzkim do\u015bwiadczeniem naszego s\u0142ynnego regulatora) nie po prostu zablokowali strony po adresie IP, lecz wpisali na czarn\u0105 list\u0119 w\u0142a\u015bnie <a href=\"https:\/\/prohoster.info\/pl\/domain\/\">nazw\u0119 domeny<\/a>. \u0141atwo to potwierdzi\u0107, je\u015bli zobaczysz, jakie inne domeny s\u0105 ukryte za tym samym <a href=\"https:\/\/prohoster.info\/pl\/lir\/ipv4\/\">adresem IP<\/a>, odwiedzisz jedn\u0105 z nich i zobaczysz, \u017ce dost\u0119p nie jest zablokowany:<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2019\/11\/fe7de472c9c5cc8abe4d4ed6cacdd21c.jpg\" alt=\"Domain fronting oparty na TLS 1.3\" \/><\/p>\n<p>Jak to mo\u017cliwe? W jaki spos\u00f3b dostawca wykrywa, na kt\u00f3r\u0105 domen\u0119 kieruje si\u0119 moja przegl\u0105darka, skoro wszystkie komunikacje odbywaj\u0105 si\u0119 za pomoc\u0105 protoko\u0142u https, a zjawiska podmiany certyfikat\u00f3w https ze strony Beeline wydaj\u0105 si\u0119 na razie nie zauwa\u017cone? Czy mo\u017ce ma jakie\u015b zdolno\u015bci parapsychiczne, czy te\u017c kto\u015b mnie \u015bledzi?<\/p>\n<p>Spr\u00f3bujemy odpowiedzie\u0107 na to pytanie, analizuj\u0105c ruch za pomoc\u0105 Wiresharka<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2019\/11\/330f05030e9edb066bf2fd80c935e0c3.jpg\" alt=\"Domain fronting oparty na TLS 1.3\" \/><\/p>\n<p>Na zrzucie ekranu wida\u0107, \u017ce najpierw przegl\u0105darka uzyskuje adres IP serwera przez DNS, potem nast\u0119puje standardowe nawi\u0105zanie po\u0142\u0105czenia TCP z docelowym serwerem, a nast\u0119pnie przegl\u0105darka pr\u00f3buje nawi\u0105za\u0107 po\u0142\u0105czenie ssl z serwerem. W tym celu przesy\u0142a pakiet <a href=\"https:\/\/prohoster.info\/pl\/ssl-sertifikat\/\">SSL<\/a> Client Hello, w kt\u00f3rym znajduje si\u0119 nazwa \u017ar\u00f3d\u0142owej domeny w otwartej formie. To pole jest potrzebne serwerowi frontendowemu Cloudflare, aby poprawnie kierowa\u0107 po\u0142\u0105czenie. I to jest moment, w kt\u00f3rym dopada nas dostawca DPI, zrywaj\u0105c nasze po\u0142\u0105czenie. Przy tym nie otrzymujemy od dostawcy \u017cadnego komunikatu o b\u0142\u0119dzie, a widzimy standardowy b\u0142\u0105d przegl\u0105darki, jakby strona by\u0142a wy\u0142\u0105czona lub po prostu nie dzia\u0142a\u0142a:<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2019\/11\/9642c783158c0ace70c50fea917e7d9d.jpg\" alt=\"Domain fronting oparty na TLS 1.3\" \/><\/p>\n<p>Teraz w\u0142\u0105czmy mechanizm eSNI w przegl\u0105darce, zgodnie z instrukcj\u0105 dla <a href=\"https:\/\/miketabor.com\/enable-dns-over-https-and-encrypted-sni-in-firefox\/\" rel=\"nofollow\">Firefox <\/a>:<br \/>\nW tym celu otwieramy stron\u0119 konfiguracji Firefox <b>about:config<\/b> i aktywujemy nast\u0119puj\u0105ce ustawienia:<\/p>\n<pre><code class=\"plaintext\">network.trr.mode = 2;\nnetwork.trr.uri = https:\/\/mozilla.cloudflare-dns.com\/dns-query\nnetwork.security.esni.enabled = true\n<\/code><\/pre>\n<p>Po tym sprawdzimy poprawno\u015b\u0107 ustawie\u0144 na stronie Cloudflare za <a href=\"https:\/\/www.cloudflare.com\/ssl\/encrypted-sni\/\" rel=\"nofollow\">linkiem<\/a> i spr\u00f3bujemy jeszcze raz u\u017cy\u0107 naszego torrenta.<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2019\/11\/4996a67993bd2f1b5ebeb1ac156ba29a.jpg\" alt=\"Domain fronting oparty na TLS 1.3\" \/><\/p>\n<p>Voil\u00e0. Nasz ulubiony tracker otworzy\u0142 si\u0119, bez jakichkolwiek VPN i serwer\u00f3w proxy. Sp\u00f3jrzmy teraz na zrzut ruchu w Wiresharku, co si\u0119 wydarzy\u0142o.<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2019\/11\/a7e305afbf29896f6ebb82e53c7fed88.jpg\" alt=\"Domain fronting oparty na TLS 1.3\" \/><\/p>\n<p>Tym razem pakiet ssl client hello nie zawiera jawnie docelowej domeny, a zamiast tego pojawi\u0142o si\u0119 nowe pole w pakiecie \u2014 encrypted_server_name \u2014 to tam znajduje si\u0119 warto\u015b\u0107 rutracker.nl, a pole to mo\u017ce odszyfrowa\u0107 tylko serwer frontendowy Cloudflare. W zwi\u0105zku z tym dostawca DPI nie ma innego wyboru, jak tylko umy\u0107 r\u0119ce i zezwoli\u0107 na taki ruch. Nie ma innych opcji z szyfrowaniem.<\/p>\n<p>Przyjrzyjmy si\u0119, jak technologia dzia\u0142a w przegl\u0105darkach \u2014 to ju\u017c zobaczyli\u015bmy. Teraz spr\u00f3bujmy zastosowa\u0107 j\u0105 w bardziej specyficznych i interesuj\u0105cych rzeczach. Na pocz\u0105tek nauczymy ten sam curl u\u017cywa\u0107 eSNI do pracy z TLS 1.3, a przy okazji zobaczymy, jak dzia\u0142a sam domain fronting na podstawie eSNI.<\/p>\n<h3>Domain fronting z eSNI<\/h3>\n<p>Bior\u0105c pod uwag\u0119, \u017ce curl do \u0142\u0105czenia si\u0119 przez protok\u00f3\u0142 https u\u017cywa standardowej biblioteki openssl, najpierw musimy zapewni\u0107 wsparcie eSNI tam. W g\u0142\u00f3wnych ga\u0142\u0119ziach openssl wsparcia eSNI na razie nie ma, wi\u0119c musimy pobra\u0107 specjaln\u0105 ga\u0142\u0105\u017a openssl, skompilowa\u0107 j\u0105 i zainstalowa\u0107.<\/p>\n<p>Klonujemy repozytorium z GitHuba i kompilujemy jak zazwyczaj:<\/p>\n<pre><code class=\"plaintext\">$ git clone https:\/\/github.com\/sftcd\/openssl\n$ cd openssl\n$ .\/config\n\n$ make\n$ cd esnistuff\n$ make\n<\/code><\/pre>\n<p>Nast\u0119pnie klonujemy repozytorium z curl i konfigurujemy jego kompilacj\u0119 z wykorzystaniem naszej skompilowanej biblioteki openssl:<\/p>\n<pre><code class=\"plaintext\">$ cd $HOME\/code\n$ git clone https:\/\/github.com\/niallor\/curl.git curl-esni\n$ cd curl-esni\n\n$ export LD_LIBRARY_PATH=\/opt\/openssl\n$ .\/buildconf\n$ LDFLAGS=\"-L\/opt\/openssl\" .\/configure --with-ssl=\/opt\/openssl --enable-esni --enable-debug\n<\/code><\/pre>\n<p>Wa\u017cne jest, aby prawid\u0142owo wskaza\u0107 wszystkie katalogi, w kt\u00f3rych znajduje si\u0119 openssl (w naszym przypadku \u2014 to \/opt\/openssl\/) i upewni\u0107 si\u0119, \u017ce proces konfiguracji przebieg\u0142 bez b\u0142\u0119d\u00f3w.<\/p>\n<p>W przypadku pomy\u015blnej konfiguracji zobaczymy lini\u0119:<\/p>\n<p><b>WARNING: esni ESNI enabled but marked EXPERIMENTAL. Use with caution!<\/b><\/p>\n<pre><code class=\"plaintext\">$ make<\/code><\/pre>\n<p>Po pomy\u015blnej budowie pakietu skorzystamy ze specjalnego pliku bash z zestawu openssl do konfiguracji i uruchomienia curl. Skopiujemy go do katalogu z curl dla wygody:<\/p>\n<pre><code class=\"plaintext\">cp \/opt\/openssl\/esnistuff\/curl-esni <\/code><\/pre>\n<p>i przeprowadzimy testowe zapytanie https do serwera cloudflare, jednocze\u015bnie zapisuj\u0105c pakiety DNS i TLS w Wireshark.<\/p>\n<pre><code class=\"plaintext\">$ ESNI_COVER=\"www.hello-rkn.ru\" .\/curl-esni https:\/\/cloudflare.com\/<\/code><\/pre>\n<p>W odpowiedzi serwera, obok wielu informacji debugowych od openssl i curl, otrzymamy odpowied\u017a HTTP z kodem 301 od cloudflare.<\/p>\n<pre><code class=\"plaintext\">HTTP\/1.1 301 Moved Permanently\n&lt; Date: Sun, 03 Nov 2019 13:12:55 GMT\n&lt; Transfer-Encoding: chunked\n&lt; Connection: keep-alive\n&lt; Cache-Control: max-age=3600\n&lt; Expires: Sun, 03 Nov 2019 14:12:55 GMT\n&lt; Location: https:\/\/www.cloudflare.com\/\n<\/code><\/pre>\n<p>co wskazuje, \u017ce nasza pro\u015bba zosta\u0142a pomy\u015blnie dostarczona do serwera docelowego, us\u0142yszana i przetworzona.<\/p>\n<p>Teraz przyjrzyjmy si\u0119 zrzutowi ruchu w Wireshark, to znaczy, co w tej sytuacji zobaczy\u0142 dostawca z DPI.<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2019\/11\/25945e28e6ff5dec3ab92e018b91bab1.jpg\" alt=\"Domain fronting oparty na TLS 1.3\" \/><\/p>\n<p>Wida\u0107, \u017ce najpierw curl zwr\u00f3ci\u0142 si\u0119 do serwera DNS o publiczne klucze eSNI dla serwera Cloudflare \u2014 zapytanie DNS TXT o _esni.cloudflare.com (pakiet nr 13). Nast\u0119pnie, u\u017cywaj\u0105c biblioteki OpenSSL, curl wys\u0142a\u0142 zapytanie TLS 1.3 do serwera Cloudflare, w kt\u00f3rym pole SNI zosta\u0142o zaszyfrowane publicznym kluczem uzyskanym na wcze\u015bniejszym etapie (pakiet nr 22). <b>Jednak opr\u00f3cz pola eSNI w pakiecie SSL hello umieszczono r\u00f3wnie\u017c pole z normalnym \u2014 otwartym SNI, kt\u00f3re mo\u017cemy poda\u0107 w dowolnej kolejno\u015bci (w tym przypadku \u2014 <a href=\"http:\/\/www.hello-rkn.ru\" rel=\"nofollow\">www.hello-rkn.ru<\/a>). <\/b><\/p>\n<p>To pole otwartego SNI nie by\u0142o brane pod uwag\u0119 podczas przetwarzania przez serwery Cloudflare i s\u0142u\u017cy\u0142o jedynie jako maskowanie dla DPI dostawcy. Serwer Cloudflare przyj\u0105\u0142 nasz pakiet ssl-hello, odszyfrowa\u0142 eSNI, wyodr\u0119bni\u0142 z niego oryginalny SNI i przetworzy\u0142 go tak, jakby nic si\u0119 nie sta\u0142o (zrobi\u0142 wszystko tak, jak planowano podczas rozwoju eSNI).<\/p>\n<p>Jedyn\u0105 rzecz\u0105, na kt\u00f3r\u0105 mo\u017cna w tym przypadku zwr\u00f3ci\u0107 uwag\u0119 z punktu widzenia DPI, jest pierwotne zapytanie DNS o _esni.cloudflare.com. Ale zrobili\u015bmy zapytanie DNS otwarte jedynie po to, aby pokaza\u0107, jak ten mechanizm dzia\u0142a od \u015brodka.<\/p>\n<p>Aby ostatecznie wyeliminowa\u0107 grunt pod nogami DPI, u\u017cywamy ju\u017c wspomnianego mechanizmu DNS-over-HTTPS. Kr\u00f3tkie wyja\u015bnienie \u2013 DOH to protok\u00f3\u0142, kt\u00f3ry pozwala chroni\u0107 si\u0119 przed atakiem \u201ecz\u0142owiek w \u015brodku\u201d poprzez wysy\u0142anie zapytania DNS za pomoc\u0105 protoko\u0142u HTTPS.<\/p>\n<p>Wykonamy \u017c\u0105danie ponownie, ale tym razem publiczne klucze eSNI uzyskamy za pomoc\u0105 protoko\u0142u https, a nie DNS:<\/p>\n<pre><code class=\"plaintext\">ESNI_COVER=\"www.hello-rkn.ru\" DOH_URL=https:\/\/mozilla.cloudflare-dns.com\/dns-query .\/curl-esni https:\/\/cloudflare.com\/<\/code><\/pre>\n<p>Zrzut ruchu zapytania jest przedstawiony na poni\u017cszym zrzucie ekranu:<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2019\/11\/284d1d8110b24c647a57e644d93a8142.jpg\" alt=\"Domain fronting oparty na TLS 1.3\" \/><\/p>\n<p>Wida\u0107, \u017ce najpierw curl zwraca si\u0119 do serwera mozilla.cloudflare-dns.com za pomoc\u0105 protoko\u0142u DoH (po\u0142\u0105czenie https z serwerem 104.16.249.249), aby uzyska\u0107 od nich warto\u015bci publicznych kluczy do szyfrowania SNI, a nast\u0119pnie do serwera docelowego, ukrywaj\u0105c si\u0119 pod tymczasowym domen\u0105 <a href=\"http:\/\/www.hello-rkn.ru\" rel=\"nofollow\">www.hello-rkn.ru<\/a>.<\/p>\n<p>Opr\u00f3cz wspomnianego wcze\u015bniej resolvera DoH mozilla.cloudflare-dns.com mo\u017cemy r\u00f3wnie\u017c u\u017cywa\u0107 innych popularnych us\u0142ug DoH, na przyk\u0142ad od s\u0142ynnej korporacji z\u0142a.<br \/>\nWykonamy takie zapytanie:<\/p>\n<pre><code class=\"plaintext\">ESNI_COVER=\"www.kremlin.ru\" DOH_URL=https:\/\/dns.google\/dns-query .\/curl-esni https:\/\/rutracker.nl\/<\/code><\/pre>\n<p>I otrzymamy odpowied\u017a:<\/p>\n<pre><code class=\"plaintext\">&lt; HTTP\/1.1 301 Moved Permanently\n&lt; Date: Sun, 03 Nov 2019 14:10:22 GMT\n&lt; Content-Type: text\/html\n&lt; Transfer-Encoding: chunked\n&lt; Connection: keep-alive\n&lt; Set-Cookie: __cfduid=da0144d982437e77b0b37af7d00438b1a1572790222; expires=Mon, 02-Nov-20 14:10:22 GMT; path=\/; domain=.rutracker.nl; HttpOnly; Secure\n&lt; Location: https:\/\/rutracker.nl\/forum\/index.php\n&lt; CF-Cache-Status: DYNAMIC\n&lt; Expect-CT: max-age=604800, report-uri=&quot;https:\/\/report-uri.cloudflare.com\/cdn-cgi\/beacon\/expect-ct&quot;\n&lt; Server: cloudflare\n&lt; CF-RAY: 52feee696f42d891-CPH\n<\/code><\/pre>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2019\/11\/c77b8a396e7d20f0b4d74b61380595df.jpg\" alt=\"Domain fronting oparty na TLS 1.3\" \/><\/p>\n<p>W tym przypadku skontaktowali\u015bmy si\u0119 z zablokowanym serwerem rutracker.nl, u\u017cywaj\u0105c przy tym rozwi\u0105zywacza DoH dns.google (tu nie ma liter\u00f3wki, teraz znana firma ma swoj\u0105 w\u0142asn\u0105 domen\u0119 najwy\u017cszego poziomu) i przykryli\u015bmy si\u0119 inn\u0105 domen\u0105, blokowanie kt\u00f3rej jest surowo zabronione przez wszystkie systemy DPI pod gro\u017ab\u0105 kary \u015bmierci. Z uzyskanej odpowiedzi mo\u017cna zrozumie\u0107, \u017ce nasze zapytanie zosta\u0142o pomy\u015blnie przetworzone.<\/p>\n<p>Jako dodatkowe sprawdzenie, \u017ce dostawca DPI reaguje na otwarte SNI, kt\u00f3re przekazujemy jako os\u0142on\u0119 \u2014 mo\u017cemy z\u0142o\u017cy\u0107 zapytanie do rutracker.nl, przykrywaj\u0105c si\u0119 jakim\u015b innym zakazanym zasobem, na przyk\u0142ad innym 'dobrym' trackerem torrent\u00f3w:<\/p>\n<pre><code class=\"plaintext\">$ ESNI_COVER=\"rutor.info\" DOH_URL=https:\/\/dns.google\/dns-query .\/curl-esni https:\/\/rutracker.nl\/<\/code><\/pre>\n<p>Nie otrzymamy odpowiedzi od serwera, poniewa\u017c nasze zapytanie zostanie zablokowane przez system DPI.<\/p>\n<h3>Kr\u00f3tka konkluzja do pierwszej cz\u0119\u015bci<\/h3>\n<p>Zatem uda\u0142o nam si\u0119 pokaza\u0107 dzia\u0142anie eSNI za pomoc\u0105 openssl i curl oraz sprawdzi\u0107 dzia\u0142anie frontingu domeny opartego na eSNI. W ten sam spos\u00f3b mo\u017cemy dostosowa\u0107 nasze ulubione narz\u0119dzia korzystaj\u0105ce z biblioteki openssl do dzia\u0142ania 'pod przykryciem' innych domen. Wi\u0119cej na ten temat w naszych nast\u0119pnych artyku\u0142ach.<\/p>\n<p>\u0179r\u00f3d\u0142o: <a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/475372\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430, \u043e\u0442 \u0442\u0430\u043a\u0438\u0445 \u0438\u043c\u0435\u043d\u0438\u0442\u044b\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u043a\u0430\u043a Cisco, BlueCoat, FireEye \u0438\u043c\u0435\u044e\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u0441 \u0431\u043e\u043b\u0435\u0435 \u043c\u043e\u0449\u043d\u044b\u043c\u0438 \u0438\u0445 \u0441\u043e\u0431\u0440\u0430\u0442\u044c\u044f\u043c\u0438 \u2014 DPI \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0441\u0438\u043b\u0435\u043d\u043d\u043e \u0432\u043d\u0435\u0434\u0440\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u043d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435. \u0421\u0443\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u0442\u0435\u0445 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u0434\u043e\u0441\u043c\u043e\u0442\u0440 \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0438 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0438, \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0447\u0435\u0440\u043d\u044b\u0445\/\u0431\u0435\u043b\u044b\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-52639","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/domen-fronting-na-baze-tls-1-3\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0414\u043e\u043c\u0435\u043d-\u0444\u0440\u043e\u043d\u0442\u0438\u043d\u0433 \u043d\u0430 \u0431\u0430\u0437\u0435 TLS 1.3 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/domen-fronting-na-baze-tls-1-3\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-11-12T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-05-20T17:54:20+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Frontend domenowy oparty na TLS 1.3 | ProHoster","description":"Wprowadzenie Nowoczesne korporacyjne systemy filtracji.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/domen-fronting-na-baze-tls-1-3","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0414\u043e\u043c\u0435\u043d-\u0444\u0440\u043e\u043d\u0442\u0438\u043d\u0433 \u043d\u0430 \u0431\u0430\u0437\u0435 TLS 1.3 | ProHoster","og:description":"\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/domen-fronting-na-baze-tls-1-3","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-11-12T21:00:00+00:00","article:modified_time":"2026-05-20T17:54:20+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"52639","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 04:19:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:39:27","updated":"2026-01-24 04:19:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/52639","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=52639"}],"version-history":[{"count":3,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/52639\/revisions"}],"predecessor-version":[{"id":173323,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/52639\/revisions\/173323"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=52639"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=52639"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=52639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}