ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, ΠΎΡ ΡΠ°ΠΊΠΈΡ
ΠΈΠΌΠ΅Π½ΠΈΡΡΡ
ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ ΠΊΠ°ΠΊ 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). ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π·Π°Ρ ΠΎΠ΄Π° Π½Π° ΡΠ°ΠΉΡ ΡΠΎΡΡΠ΅Π½Ρ-ΡΡΠ΅ΠΊΠ΅ΡΠ° β ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π·Π°Π³Π»ΡΡΠΊΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ΅ΡΡΡΡ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ:
ΠΠ° ΡΠ°ΠΉΡΠ΅ Π ΠΠ ΡΡΠΎ Π΄ΠΎΠΌΠ΅Π½ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΈΡΠ»ΠΈΡΡΡ Π² ΡΡΠΎΠΏ-Π»ΠΈΡΡΠ°Ρ
:
ΠΡΠΈ Π·Π°ΠΏΡΠΎΡΠ΅ whois β Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΠ°ΠΌ Π΄ΠΎΠΌΠ΅Π½ Β«ΡΠΏΡΡΡΠ°Π½Β» Π·Π° ΠΎΠ±Π»Π°ΡΠ½ΡΠΌ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠΌ Cloudflare.
ΠΠΎ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Β«ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ²Β» ΠΈΠ· Π ΠΠ, Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ ΠΈΠ· Π±ΠΈΠ»Π°ΠΉΠ½Π° (ΠΈΠ»ΠΈ Π½Π°ΡΡΠ΅Π½Π½ΡΠ΅ Π³ΠΎΡΡΠΊΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ Π½Π°ΡΠ΅Π³ΠΎ Π·Π½Π°ΠΌΠ΅Π½ΠΈΡΠΎΠ³ΠΎ ΡΠ΅Π³ΡΠ»ΡΡΠΎΡΠ°) Π½Π΅ ΡΡΠ°Π»ΠΈ ΡΡΠΏΠΎ Π±Π°Π½ΠΈΡΡ ΡΠ°ΠΉΡ ΠΏΠΎ IP -Π°Π΄ΡΠ΅ΡΡ, Π° Π²Π½Π΅ΡΠ»ΠΈ Π² ΡΡΠΎΠΏ-Π»ΠΈΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ. Π ΡΡΠΎΠΌ Π»Π΅Π³ΠΊΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΠ΅ Π΄ΠΎΠΌΠ΅Π½Ρ ΠΏΡΡΡΡΡΡΡ Π·Π° ΡΡΠΈΠΌ ΠΆΠ΅ IP-Π°Π΄ΡΠ΅ΡΠΎΠΌ, ΠΏΠΎΡΠ΅ΡΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ
ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ Π΄ΠΎΡΡΡΠΏ Π½Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½:
Π ΠΊΠ°ΠΊ ΠΆΠ΅ ΡΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ? ΠΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡΠΊΠΈΠΉ DPI ΡΠ·Π½Π°Π΅Ρ, Π½Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΈΠ΄Π΅Ρ ΠΌΠΎΠΉ Π±ΡΠ°ΡΠ·Π΅Ρ, Π²Π΅Π΄Ρ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΡΡ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ https, Π° ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² https ΠΎΡ Π±ΠΈΠ»Π°ΠΉΠ½Π° ΠΌΡ Π²ΡΠΎΠ΄Π΅ ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°ΠΌΠ΅ΡΠ°Π»ΠΈ? Π£ΠΆ Π½Π΅ ΡΡΠ½ΠΎΠ²ΠΈΠ΄ΡΡΠΈΠΉ Π»ΠΈ ΠΎΠ½ ΠΈΠ»ΠΈ Π·Π° ΠΌΠ½ΠΎΠΉ ΠΈΠ΄Π΅Ρ ΡΠ»Π΅ΠΆΠΊΠ°?
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΡΡΠΎ Π²ΠΎΠΏΡΠΎΡ, Π²Π·Π³Π»ΡΠ½ΡΠ² Π½Π° ΡΡΠ°ΡΠΈΠΊ ΡΠ΅ΡΠ΅Π· wireshark
ΠΠ° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΠΏΠ΅ΡΠ²Π° Π±ΡΠ°ΡΠ·Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ IP-Π°Π΄ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ΅ΡΠ΅Π· DNS, ΠΏΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ TCP-ΡΡΠΊΠΎΠΏΠΎΠΆΠ°ΡΠΈΠ΅ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ Π±ΡΠ°ΡΠ·Π΅Ρ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ssl-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ ΠΏΠ°ΠΊΠ΅Ρ SSL Client Hello, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΈΠΌΡ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° Π² ΠΎΡΠΊΡΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠΡΠΎ ΠΏΠΎΠ»Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΠ΅ΡΠ²Π΅ΡΡ cloudflare Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. ΠΠΎΡ ΡΡΡ-ΡΠΎ Π½Π°Ρ ΠΈ Π»ΠΎΠ²ΠΈΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡΠΊΠΈΠΉ DPI, ΡΠ°Π·ΡΡΠ²Π°Ρ Π½Π°ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. ΠΡΠΈ ΡΡΠΎΠΌ ΠΌΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π·Π°Π³Π»ΡΡΠΊΠΈ ΠΎΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°, ΠΈ Π²ΠΈΠ΄ΠΈΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΡΠ°ΠΉΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΠΌ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ eSNI Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΡΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Firefox about:config ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ:
network.trr.mode = 2;
network.trr.uri = https://mozilla.cloudflare-dns.com/dns-query
network.security.esni.enabled = true
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π½Π° ΡΠ°ΠΉΡΠ΅ cloudflare ΠΏΠΎ
ΠΡΠ°Π»Ρ. ΠΠ°Ρ Π»ΡΠ±ΠΈΠΌΡΠΉ ΡΡΠ΅ΠΊΠ΅Ρ ΠΎΡΠΊΡΡΠ»ΡΡ, Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ
-Π»ΠΈΠ±ΠΎ VPN ΠΈ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ². ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π΄Π°ΠΌΠΏ ΡΡΠ°ΡΠΈΠΊΠ° Π² wireshark, ΡΡΠΎ ΠΆΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ.
ΠΠ° ΡΠ΅ΠΉ ΡΠ°Π· ΠΏΠ°ΠΊΠ΅Ρ 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.
ΠΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΠ½Π°ΡΠ°Π»Π° curl ΠΎΠ±ΡΠ°ΡΠΈΠ»ΡΡ ΠΊ DNS ΡΠ΅ΡΠ²Π΅ΡΡ Π·Π° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌΠΈ eSNI ΠΊΠ»ΡΡΠΎΠΌ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° cloudflare β TXT DNS Π·Π°ΠΏΡΠΎΡ Π½Π° _esni.cloudflare.com (ΠΏΠ°ΠΊΠ΅Ρ β13). ΠΠ°ΡΠ΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ openssl-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, curl ΠΎΡΠΏΡΠ°Π²ΠΈΠ» TLS 1.3 Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ cloudflare Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠ»Π΅ SNI Π±ΡΠ»ΠΎ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½ΠΎ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΡΠ°ΠΏΠ΅ (ΠΏΠ°ΠΊΠ΅Ρ β22). ΠΠΎ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΏΠΎΠ»Ρ eSNI, Π² ΡΠΎΡΡΠ°Π²Π΅ SSL-hello ΠΏΠ°ΠΊΠ΅ΡΠ° Π±ΡΠ»ΠΎ Π²ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π΅ΡΠ΅ ΠΈ ΠΏΠΎΠ»Π΅ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ β ΠΎΡΠΊΡΡΡΡΠΌ SNI, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ (Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β
ΠΠ°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ 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/
ΠΠ°ΠΌΠΏ ΡΡΠ°ΡΠΈΠΊΠ° Π·Π°ΠΏΡΠΎΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π½Π° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅ Π½ΠΈΠΆΠ΅:
ΠΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΠΏΠ΅ΡΠ²Π° curl ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ mozilla.cloudflare-dns.com ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ DoH (https ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ 104.16.249.249), ΡΡΠΎΠ±Ρ ΠΎΡ Π½ΠΈΡ
ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ public ΠΊΠ»ΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ SNI, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΆΠ΅ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠΊΡΡΠ²Π°ΡΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½ΠΎΠΌ
ΠΠΎΠΌΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ 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
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ ΠΎΠ±ΡΠ°ΡΠΈΠ»ΠΈΡΡ Π½Π° Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ 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