Π”ΠΎΠΌΠ΅Π½-Ρ„Ρ€ΠΎΠ½Ρ‚ΠΈΠ½Π³ Π½Π° Π±Π°Π·Π΅ TLS 1.3

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π”ΠΎΠΌΠ΅Π½-Ρ„Ρ€ΠΎΠ½Ρ‚ΠΈΠ½Π³ Π½Π° Π±Π°Π·Π΅ TLS 1.3
Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ систСмы Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΡ… ΠΈΠΌΠ΅Π½ΠΈΡ‚Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΊΠ°ΠΊ Cisco, BlueCoat, FireEye ΠΈΠΌΠ΅ΡŽΡ‚ довольно ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ с Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ ΠΈΡ… ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΠΌΠΈ β€” DPI систСмами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ усилСнно Π²Π½Π΅Π΄Ρ€ΡΡŽΡ‚ΡΡ Π½Π° Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. Π‘ΡƒΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ Ρ‚Π΅Ρ… ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ досмотр входящСго ΠΈ исходящСго ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ, Π½Π° основании Ρ‡Π΅Ρ€Π½Ρ‹Ρ…/Π±Π΅Π»Ρ‹Ρ… списков, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-соСдинСния. А Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈ Ρ‚Π΅, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π² основах своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° схоТиС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹, Ρ‚ΠΎ ΠΈ способы ΠΈΡ… ΠΎΠ±Ρ…ΠΎΠ΄Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ.

Одной ΠΈΠ· Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ достаточно эффСктивно ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ DPI, Ρ‚Π°ΠΊ ΠΈ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ систСмы, являСтся тСхнология Π΄ΠΎΠΌΠ΅Π½-Ρ„Ρ€ΠΎΠ½Ρ‚ΠΈΠ½Π³Π°. Π•Π΅ ΡΡƒΡ‚ΡŒ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠ΄Π΅ΠΌ Π½Π° Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ рСсурс, ΠΏΡ€ΠΈΠΊΡ€Ρ‹Π²Π°ΡΡΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ, ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ, с Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ†ΠΈΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ систСмой, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ google.com.

О Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π±Ρ‹Π»ΠΎ написано ΡƒΠΆΠ΅ достаточно ΠΌΠ½ΠΎΠ³ΠΎ статСй ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ². Однако популярныС ΠΈ обсуТдаСмыС Π² послСднСС врСмя Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ DNS-over-HTTPS ΠΈ encrypted-SNI, Π° Ρ‚Π°ΠΊΠΆΠ΅ новая вСрсия ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TLS 1.3 Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΄ΠΎΠΌΠ΅Π½-Ρ„Ρ€ΠΎΠ½Ρ‚ΠΈΠ½Π³Π°.

РазбираСмся с Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ

Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ опрСдСлимся с основными понятиями, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ всСх Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ who is who ΠΈ Π·Π°Ρ‡Π΅ΠΌ всС это Π½ΡƒΠΆΠ½ΠΎ. ΠœΡ‹ упомянули ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ eSNI, Ρ€Π°Π±ΠΎΡ‚Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСна дальшС. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ eSNI (encrypted Server Name Indication) – Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ SNI, доступный Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TLS 1.3. Основная ΡΡƒΡ‚ΡŒ – ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ‚ΠΎΠΌ числС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ Π΄ΠΎΠΌΠ΅Π½Ρƒ отправляСтся запрос.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° eSNI Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-рСсурс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ блокируСтся соврСмСнным DPI Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ (возьмСм ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚Ρ‹ΠΉ Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚-Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ β€” rutracker.nl). ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π·Π°Ρ…ΠΎΠ΄Π° Π½Π° сайт Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚-Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π° β€” ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π·Π°Π³Π»ΡƒΡˆΠΊΡƒ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ рСсурс блокируСтся:

Π”ΠΎΠΌΠ΅Π½-Ρ„Ρ€ΠΎΠ½Ρ‚ΠΈΠ½Π³ Π½Π° Π±Π°Π·Π΅ TLS 1.3

На сайтС РКН это Π΄ΠΎΠΌΠ΅Π½ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ числится Π² стоп-листах:

Π”ΠΎΠΌΠ΅Π½-Ρ„Ρ€ΠΎΠ½Ρ‚ΠΈΠ½Π³ Π½Π° Π±Π°Π·Π΅ TLS 1.3

ΠŸΡ€ΠΈ запросС whois β€” Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ сам Π΄ΠΎΠΌΠ΅Π½ «спрятан» Π·Π° ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠΌ Cloudflare.

Π”ΠΎΠΌΠ΅Π½-Ρ„Ρ€ΠΎΠ½Ρ‚ΠΈΠ½Π³ Π½Π° Π±Π°Π·Π΅ TLS 1.3

Но Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ «спСциалистов» ΠΈΠ· РКН, Π±ΠΎΠ»Π΅Π΅ тСхничСски ΠΏΠΎΠ΄ΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ сотрудники ΠΈΠ· Π±ΠΈΠ»Π°ΠΉΠ½Π° (ΠΈΠ»ΠΈ Π½Π°ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π³ΠΎΡ€ΡŒΠΊΠΈΠΌ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ нашСго Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ΠΎΠ³ΠΎ рСгулятора) Π½Π΅ стали Ρ‚ΡƒΠΏΠΎ Π±Π°Π½ΠΈΡ‚ΡŒ сайт ΠΏΠΎ IP -адрСсу, Π° внСсли Π² стоп-лист ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя. Π’ этом Π»Π΅Π³ΠΊΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ссли ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π΅Ρ‰Π΅ Π΄ΠΎΠΌΠ΅Π½Ρ‹ прячутся Π·Π° этим ΠΆΠ΅ IP-адрСсом, ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ… ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ доступ Π½Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½:

Π”ΠΎΠΌΠ΅Π½-Ρ„Ρ€ΠΎΠ½Ρ‚ΠΈΠ½Π³ Π½Π° Π±Π°Π·Π΅ TLS 1.3

А ΠΊΠ°ΠΊ ΠΆΠ΅ Ρ‚Π°ΠΊ получаСтся? Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ провайдСрский DPI ΡƒΠ·Π½Π°Π΅Ρ‚, Π½Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΈΠ΄Π΅Ρ‚ ΠΌΠΎΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, вСдь всС ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ происходят ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ https, Π° ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ‹ сСртификатов https ΠΎΡ‚ Π±ΠΈΠ»Π°ΠΉΠ½Π° ΠΌΡ‹ Π²Ρ€ΠΎΠ΄Π΅ ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π»ΠΈ? Π£ΠΆ Π½Π΅ ясновидящий Π»ΠΈ ΠΎΠ½ ΠΈΠ»ΠΈ Π·Π° ΠΌΠ½ΠΎΠΉ ΠΈΠ΄Π΅Ρ‚ слСТка?

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π° это вопрос, взглянув Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Ρ‡Π΅Ρ€Π΅Π· wireshark

Π”ΠΎΠΌΠ΅Π½-Ρ„Ρ€ΠΎΠ½Ρ‚ΠΈΠ½Π³ Π½Π° Π±Π°Π·Π΅ TLS 1.3

На ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ спСрва Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ IP-адрСс сСрвСра Ρ‡Π΅Ρ€Π΅Π· DNS, ΠΏΠΎΡ‚ΠΎΠΌ происходит стандартноС TCP-Ρ€ΡƒΠΊΠΎΠΏΠΎΠΆΠ°Ρ‚ΠΈΠ΅ с сСрвСром назначСния, Π° Π·Π°Ρ‚Π΅ΠΌ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ пытаСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ssl-соСдинСниС с сСрвСром. Для этого ΠΎΠ½ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ SSL Client Hello, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ присутствуСт имя исходного Π΄ΠΎΠΌΠ΅Π½Π° Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-сСрвСру cloudflare для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ соСдинСниС. Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚-Ρ‚ΠΎ нас ΠΈ Π»ΠΎΠ²ΠΈΡ‚ провайдСрский DPI, разрывая нашС соСдинСниС. ΠŸΡ€ΠΈ этом ΠΌΡ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π·Π°Π³Π»ΡƒΡˆΠΊΠΈ ΠΎΡ‚ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°, ΠΈ Π²ΠΈΠ΄ΠΈΠΌ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ сайт ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈΠ»ΠΈ просто Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

Π”ΠΎΠΌΠ΅Π½-Ρ„Ρ€ΠΎΠ½Ρ‚ΠΈΠ½Π³ Π½Π° Π±Π°Π·Π΅ TLS 1.3

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ eSNI Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, ΠΊΠ°ΠΊ это написано Π² инструкции для Firefox :
Для этого ΠΌΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ страницу ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Firefox about:config ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ настройки:

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

ПослС этого ΠΌΡ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ настроСк Π½Π° сайтС cloudflare ΠΏΠΎ ссылкС ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ фокус с нашим Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚-Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ΠΎΠΌ Π΅Ρ‰Π΅ Ρ€Π°Π·.

Π”ΠΎΠΌΠ΅Π½-Ρ„Ρ€ΠΎΠ½Ρ‚ΠΈΠ½Π³ Π½Π° Π±Π°Π·Π΅ TLS 1.3

Вуаля. Наш Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ открылся, Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ VPN ΠΈ прокси-сСрвСров. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим Π½Π° Π΄Π°ΠΌΠΏ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π² wireshark, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ.

Π”ΠΎΠΌΠ΅Π½-Ρ„Ρ€ΠΎΠ½Ρ‚ΠΈΠ½Π³ Π½Π° Π±Π°Π·Π΅ TLS 1.3

На сСй Ρ€Π°Π· ΠΏΠ°ΠΊΠ΅Ρ‚ ssl client hello Π½Π΅ содСрТит Π² явном Π²ΠΈΠ΄Π΅ Π΄ΠΎΠΌΠ΅Π½ назначСния, Π° вмСсто этого Π² составС ΠΏΠ°ΠΊΠ΅Ρ‚Π° появилось Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ β€” encrypted_server_name β€” ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΌ ΠΈ содСрТится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ rutracker.nl, ΠΈ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚ΡŒ это ΠΏΠΎΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ сСрвСр cloudflare. А Ρ€Π°Π· Ρ‚Π°ΠΊ, Ρ‚ΠΎ провайдСрскому DPI Π½Π΅ остаСтся Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠ°ΠΊ ΡƒΠΌΡ‹Ρ‚ΡŒ Ρ€ΡƒΠΊΠΈ ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. А Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² с ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ Π½Π΅Ρ‚.

Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ тСхнология Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ β€” ΠΌΡ‹ посмотрСли. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π΅ для Π±ΠΎΠ»Π΅Π΅ спСцифичных ΠΈ интСрСсных Π²Π΅Ρ‰Π΅ΠΉ. И для Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠΌ Ρ‚ΠΎΡ‚ ΠΆΠ΅ curl ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ eSNI для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с TLS 1.3, Π° Π·Π°ΠΎΠ΄Π½ΠΎ посмотрим, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ сам Π΄ΠΎΠΌΠ΅Π½-Ρ„Ρ€ΠΎΠ½Ρ‚ΠΈΠ½Π³ Π½Π° основС eSNI.

Π”ΠΎΠΌΠ΅Π½-Ρ„Ρ€ΠΎΠ½Ρ‚ΠΈΠ½Π³ с eSNI

Π’Π²ΠΈΠ΄Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ curl для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ https ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ openssl, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ eSNI ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΌ. Π’ master-Π²Π΅Ρ‚ΠΊΠ°Ρ… openssl ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ eSNI ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚, поэтому Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ openssl, ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π΅.

ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с Π³ΠΈΡ‚Ρ…Π°Π±Π° ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ:

$ 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/) ΠΈ ΠΏΡ€ΠΎΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ процСсс ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΡˆΠ΅Π» Π±Π΅Π· ошибок.

Π’ случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ β€” ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ строку:

WARNING: esni ESNI enabled but marked EXPERIMENTAL. Use with caution!

$ make

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ сборки ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΌΡ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ bash-Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΈΠ· состава openssl для настройки ΠΈ запуска curl. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с curl для удобства:

cp /opt/openssl/esnistuff/curl-esni 

ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ тСстовый https-запрос Π½Π° сСрвСр cloudflare, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ записав DNS ΠΈ TLS ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² Wireshark.

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

Π’ ΠΎΡ‚Π²Π΅Ρ‚Π΅ сСрвСра ΠΏΠΎΠΌΠΈΠΌΠΎ мноТСства ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ-ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΡ‚ openssl ΠΈ curl ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ HTTP-ΠΎΡ‚Π²Π΅Ρ‚ с ΠΊΠΎΠ΄ΠΎΠΌ 301 ΠΎΡ‚ 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/

Ρ‡Ρ‚ΠΎ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ наш запрос Π±Ρ‹Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ доставлСн Π΄ΠΎ сСрвСра назначСния, ΡƒΡΠ»Ρ‹ΡˆΠ°Π½ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Π΄Π°ΠΌΠΏ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π² wireshark, Ρ‚.Π΅. Ρ‡Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Π» Π² Π΄Π°Π½Π½ΠΎΠΌ случаС провайдСрский DPI.

Π”ΠΎΠΌΠ΅Π½-Ρ„Ρ€ΠΎΠ½Ρ‚ΠΈΠ½Π³ Π½Π° Π±Π°Π·Π΅ TLS 1.3

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ сначала curl обратился ΠΊ DNS сСрвСру Π·Π° ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ eSNI ΠΊΠ»ΡŽΡ‡ΠΎΠΌ для сСрвСра cloudflare β€” TXT DNS запрос Π½Π° _esni.cloudflare.com (ΠΏΠ°ΠΊΠ΅Ρ‚ β„–13). Π—Π°Ρ‚Π΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ openssl-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, curl ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» TLS 1.3 запрос Π½Π° сСрвСр cloudflare Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ»Π΅ SNI Π±Ρ‹Π»ΠΎ Π·Π°ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ этапС (ΠΏΠ°ΠΊΠ΅Ρ‚ β„–22). Но, ΠΏΠΎΠΌΠΈΠΌΠΎ поля eSNI, Π² составС SSL-hello ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π±Ρ‹Π»ΠΎ вставлСно Π΅Ρ‰Π΅ ΠΈ ΠΏΠΎΠ»Π΅ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ β€” ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ SNI, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ порядкС (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС β€” www.hello-rkn.ru).

Π”Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ SNI Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ сСрвСрами cloudflare ΠΈ лишь являлось маскировочным для провайдСрского DPI. Π‘Π΅Ρ€Π²Π΅Ρ€ cloudflare принял наш ssl-hello ΠΏΠ°ΠΊΠ΅Ρ‚, Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π» eSNI, ΠΈΠ·Π²Π»Π΅ΠΊ ΠΎΡ‚Ρ‚ΡƒΠ΄Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ SNI ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π» Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π½ΠΈ Π² Ρ‡Π΅ΠΌ Π½Π΅ Π±Ρ‹Π²Π°Π»ΠΎ (сдСлал всС ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ eSNI).

ЕдинствСнноС, Π·Π° Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Ρ†Π΅ΠΏΠΈΡ‚ΡŒΡΡ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния DPI β€” ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ DNS запрос Π½Π° _esni.cloudflare.com. Но ΠΌΡ‹ сдСлали DNS запрос ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ лишь для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ‚ΡŒ ΠΏΠΎΡ‡Π²Ρƒ ΠΈΠ·-ΠΏΠΎΠ΄ Π½ΠΎΠ³ DPI ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΡƒΠΆΠ΅ упомянутый ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ DNS-over-HTTPS. НСбольшоС пояснСниС – DOH – ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Π°Ρ‚Π°ΠΊΠΈ Β«Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ посСрСдинС» Π·Π° счСт ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ DNS-запроса ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ HTTPS.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ запрос ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ, Π½ΠΎ Π² это Ρ€Π°Π· ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ eSNI ΠΊΠ»ΡŽΡ‡ΠΈ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ https, Π° Π½Π΅ 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 обращаСтся ΠΊ сСрвСру mozilla.cloudflare-dns.com ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ DoH (https соСдинСниС Π½Π° сСрвСр 104.16.249.249), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ Π½ΠΈΡ… ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ значСния public ΠΊΠ»ΡŽΡ‡Π΅ΠΉ для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ 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

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΡ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»ΠΈΡΡŒ Π½Π° Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ сСрвСр rutracker.nl, использовав ΠΏΡ€ΠΈ этом DoH-Ρ€Π΅Π·ΠΎΠ»Π²Π΅Ρ€ dns.google (Ρ‚ΡƒΡ‚ Π½Π΅Ρ‚ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ Π·Π½Π°ΠΌΠ΅Π½ΠΈΡ‚ΠΎΠΉ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΈ появился свой Π΄ΠΎΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня) ΠΈ ΠΏΡ€ΠΈΠΊΡ€Ρ‹Π»ΠΈΡΡŒ ΡƒΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ, Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ строго-настрого Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ всСм DPI ΠΏΠΎΠ΄ страхом смСртной ΠΊΠ°Π·Π½ΠΈ. По ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌΡƒ ΠΎΡ‚Π²Π΅Ρ‚Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ наш запрос Π±Ρ‹Π» ΡƒΠ΄Π°Ρ‡Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½.

Π’ качСствС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ провайдСрский DPI Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ SNI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π² качСствС прикрытия β€” ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ запрос ΠΊ rutracker.nl ΠΏΡ€ΠΈΠΊΡ€Ρ‹Π²ΡˆΠΈΡΡŒ ΠΊΠ°ΠΊΠΈΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π½Ρ‹ΠΌ рСсурсом, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Β«Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌΒ» Ρ‚ΠΎΡ€Ρ€Π΅Π½Ρ‚-Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ΠΎΠΌ:

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

ΠžΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ сСрвСра ΠΌΡ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ, Ρ‚.ΠΊ. наш запрос Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ DPI- систСмой.

НСбольшоС Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ части

Π˜Ρ‚Π°ΠΊ, Π½Π°ΠΌ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ eSNI с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ openssl ΠΈ curl ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄ΠΎΠΌΠ΅Π½-Ρ„Ρ€ΠΎΠ½Ρ‚ΠΈΠ½Π³Π°, основанного Π½Π° eSNI. Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ наши Π»ΡŽΠ±ΠΈΠΌΡ‹Π΅ инструмСнты, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ openssl, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Β«ΠΏΠΎΠ΄ ΠΏΡ€ΠΈΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌΒ» Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом β€” Π² Π½Π°ΡˆΠΈΡ… ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ….

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ