Proof of concept для "шифрования" SNI в TLS соединениях. Здесь нет настоящего шифрования, а просто применяется битовый сдвиг к символам SNI, чтобы сделать его нечитаемым для DPI. Это может помочь обойти некоторые фильтры, которые блокируют определенные домены по SNI. Работает на уровне TCP, перехватывая данные до начала TLS рукопожатия, извлекая SNI, модифицируя его и затем устанавливая новое соединение к целевому серверу с измененным SNI.
Этот код предназначен только для тестирования концепции и не готов к настоящему использованию. Работает медленно и с большими задержками, много погрнаничных случаев не обрабатывается.
- Для необходимых доменов нужно настроить DNS(файл hosts или на роутере Adguard Home/dnsmasq) так, чтобы они указывали на IP
client.ts. Настроить константыserverAddressиserverPortкоторые будут указывать наserver.ts. - На другой машине запустить
server.ts, который будет слушать и перенаправлять трафик на целевые серверы, извлекая и модифицируя SNI.