Глоссарий
SOCKS5
SOCKS5 это протокол прокси, который передаёт связь целиком и умеет просить разрешить имя сайта на дальнем конце.
Что несёт рукопожатие
До того как уйдёт первый байт вашего трафика, проходят три коротких обмена, и каждый из них может сорваться сам по себе.
Их устройство открыто и описано давно, поэтому любой продавец и любое средство одинаково понимают, что такое SOCKS5. Сговариваться об этом не приходится.
- 1
Приветствие
Клиент перечисляет способы входа, которые умеет, а прокси называет тот, которым хочет пользоваться.
- 2
Логин, если его спросили
Имя и пароль идут отдельным обменом, и своей защиты у этого обмена нет никакой.
- 3
Запрос на связь
Место назначения уходит наверх либо числом, либо именем, и разница между ними важнее, чем кажется.
Наверх уходит имя узла
Имя сайта, превращённое в число у вас дома, кладёт посещение в журнал вашего же разборщика имён, пока трафик уходит совсем в другую сторону.
Когда с прокси разговаривает программа, место назначения уходит именем, и разрешает его уже дальняя сторона.
Это верно там, где говорит программа
Логину нужен помощник рядом
Пароль, вписанный в строку запуска, не работает. Замерено на отгружаемой сборке: простая запись давала запросы через прокси, а запись с паролем не давала ни одного и не грузила ничего.
Поэтому рядом поднимается маленький прокси на петле. Браузеру он отвечает без пароля, а настоящему прокси с паролем.
В строке запуска после этого стоит адрес на петле и больше ничего. На нашем движке местный шаг ещё и спрашивает у браузера разовый пропуск, чтобы оплаченным каналом не воспользовалась чужая программа на этой же машине.
Что принимает программа
Вставленная строка может говорить socks, socks5 или socks5h: все три означают один и тот же вид связи, когда запись уже сохранена. Переписывать то, что дал продавец, не нужно.
Незнакомую схему программа отвергает, а не превращает молча в обычный http. Тихое понижение оставило бы вас в уверенности, что вы на SOCKS5, пока вы идёте открыто.
Часто путают с этим
HTTP proxy
Говорит на языке самой сети и понимает, чего у него просят. SOCKS5 понимает связь и в содержимое не лезет.
VPN
Уводит всю машину и все программы на ней. Запись SOCKS5 принадлежит одному профилю и больше никому.
Свой сервер как выход
Обычный ssh с подвижным пробросом превращается в настоящий SOCKS5 на петле, и браузер этой разницы не замечает вовсе.
Чего это не делает
- Это ничего не шифрует само. Вся закрытость идёт от TLS внутри связи, а логин SOCKS5 пересекает провод без защиты вовсе.
- Это не решает за все случаи, где разрешаются имена. На записи без логина такой выбор принадлежит самому браузеру, а не программе.
- Это не просит у прокси ничего, кроме обычной связи. Ни слушать порт за вас, ни носить отдельные пакеты никто здесь не просит.
- Это не лучший выход, чем любой другой протокол. Адрес всё равно остаётся адресом продавца, и серверный адрес узнают как серверный, чем бы его ни несли.
Проверить
За каждым утверждением выше стоит место в коде и стенд.
- Приветствие, логин и имя узла проверяются против настоящего SOCKS5
- apps/desktop/test/proxy-auth-bridge.js
- Один адрес накрывает все схемы, и правило не читают, а исполняют
- apps/desktop/test/proxy-covers-https.js
- Проверка идёт против SOCKS5, который требует логин
- apps/desktop/test/proxy-check-uses-bridge.js
- Вставленную строку разбирает один и тот же код для программы и для кабинета
- packages/shared/src/proxy-line.js
Вопросы
- SOCKS5 безопаснее, чем HTTP proxy?
- Сам по себе содержимое не прячет ни тот, ни другой. Разница в том, что именно они несут и кто на деле превращает имя сайта в число.
- Что означает буква h в socks5h?
- Она помечает привычку разрешать имена на дальнем конце. Вставленная с ней строка сохраняется как обычная запись SOCKS5.
- Нужен ли SOCKS5 логин?
- Почти у всех платных он есть. Пароль при этом не попадает в строку запуска, где его прочла бы любая программа, идущая под вами.
- Можно ли вместо покупки взять свой сервер?
- Да. Рядом с профилем поднимается ssh с подвижным пробросом, а браузеру достаётся обычный адрес на петле. Ни движок, ни местный шаг про ssh при этом не знают ничего.
- Закрывает ли SOCKS5 утечку WebRTC?
- Нет. Это отдельная дорога наружу из самого браузера, и закрывают её тоже отдельно.
Поставьте профиль за SOCKS5
Бесплатный тариф даёт два профиля, без срока и без карты.