Перейти к содержимому

Сравнение

Адрес и то, что идёт следом

Сменить точку выхода это лёгкая половина. Тяжёлая половина в том, что сайт читает по этому адресу страну и сверяет её с часами и языком, о которых сообщает браузер, поэтому восемь привычных способов поставлены здесь на эту ось.

Что решает адрес выхода

Адрес выхода это не один ответ. Сайт читает сам адрес, страну, найденную по нему, а ещё время и язык, о которых браузер сообщает сам.

Адрес, за которым не идут часы и язык, хуже отсутствия адреса вовсе. Немецкий выход с токийским временем описывает человека, которого никто не встречал.

  • Адрес

    Откуда выходит соединение, и единственное, что меняет прокси.

  • Страна по нему

    Находится по открытым реестрам, и вас никто не спрашивает.

  • Часы

    Часовой пояс, о котором сообщает браузер, сверяется с этой страной.

  • Список языков

    То, что браузер просит у страниц, уходит с каждым запросом.

Восемь способов на одной оси

По строкам способы, по колонкам вопросы этой оси. Прочерк значит, что способ этого не делает, а не что он делает это плохо.

Последняя строка наша. Каждая её клетка взята из дороги запуска, а файлы за ней названы внизу страницы.

Как задаётся выходНа что действует одна настройкаЧасы и язык идут следомРазных выходов разом
Обычный браузер как естьЧерез настройки системыНа все вкладки сразуОдин
Режим инкогнитоТот же, что у браузера вокругНа все вкладки сразуОдин
Профили браузера или контейнерыОбщий с браузером вокругНа все вкладки сразуОдин
Расширение с подменойЧерез настройку прокси в браузереНа все вкладки сразуОбъявлены в странице, после стартаОдин
VPNОдин туннель на машинуНа все программы машиныОдин за раз
Виртуальная машина на аккаунтЗадаётся внутри гостяНа гостевую системуРуками, внутри гостяПо одному на машину
Отдельное железо на аккаунтСвоя линия или симкаНа это устройствоРуками, на устройствеПо одному на устройство
Браузер с правкой движкаПрокси привязан к профилюТолько на этот профильДля стран из своего спискаПо одному на открытый профиль

Как узнаётся страна выхода

Программа спрашивает службы геолокации через сам проверяемый прокси, а не со своего соединения. Любой другой ход измерял бы не ту машину.

Службы опрашиваются по очереди, и берётся первый разобранный ответ. Это первый ответ, а не согласованный, и именно он решает часы.

  • Через прокси

    Запрос уходит той же дорогой, какой сейчас пойдёт профиль.

  • По закрытому соединению

    Открытый запрос могли бы переписать по пути и назвать чужую страну.

  • Несколько служб

    Одна занятая служба с отказом не должна решать чью-то личность.

  • Запоминается один раз

    Ответ хранится у профиля и берётся снова, пока адрес не сменился.

Одно правило на все схемы

Прокси приходит в браузер одним адресом, а не правилом для одного вида трафика. Правило, написанное для открытого трафика, оставляет закрытый идти напрямую, а это почти весь трафик.

Прокси, который задан, но в рабочее правило не складывается, останавливает запуск. Выйти со своего адреса, пока на экране написано обратное, это ровно то, ради чего продукт и существует.

  • Одна строка, все схемы

    Один и тот же адрес действует и на открытый, и на закрытый трафик.

  • Пароля в командной строке нет

    Пропуск идёт через мост на этой же машине.

  • Обходной дороги нет

    Прямые связи мимо прокси выключаются при запуске.

  • Выход через свой сервер

    Сперва поднимается туннель, а упавший туннель кончается отказом.

Из чего складываются часы

Страна превращается в часовой пояс и набор языков по одной таблице, и первый язык набора становится тем, которым браузер называет себя. Оба едут с профилем, и в том, что читает страница, и в заголовках, которых она не видит.

У нескольких больших стран есть свой короткий список поясов, и для них пояс тянется из зерна самого профиля. Иначе сотня профилей на американских адресах жила бы с одними часами и связалась бы по ним между собой.

Когда страна осталась неизвестной

Прокси, у которого страну узнать не вышло, оставляет профиль без согласованных часов, и программа об этом говорит, а не запускает молча. Страна не запоминается, и следующий запуск спрашивает снова. Страна, которой в таблице нет, проходит тише: предупреждения не будет, а часы останутся теми, что выдал отпечаток.

Чего это сравнение не утверждает

  • Это не утверждает, что адрес выхода прячет, кто вы. Он двигает точку, откуда соединение приходит, а всё, что вы пишете и выкладываете, остаётся вашим.
  • Это не утверждает, что адреса идут в комплекте. Пока прокси не привязан, профиль выходит через ваше же соединение.
  • Это не утверждает, что часы идут за городом и что охвачена каждая страна. Пояс строится по стране, а для страны вне этой таблицы профиль остаётся с часами, которые выдал его отпечаток.
  • Это не утверждает, что страна не бывает ошибочной. Она приходит от внешних служб, и служба, ответившая неверно, делает неверными и часы.
  • Это не измеряет чужие средства. По строкам сказано, что способ умеет по своему устройству, и только последняя строка взята из кода, который можно открыть.

Как проверить

Каждая строка называет файл, который решает поведение, и, где он есть, стенд, который валит сборку, когда сказанное перестаёт быть правдой.

Страна выхода спрашивается через сам прокси, по закрытому соединению, службы по очереди
apps/desktop/src/lib/exitGeo.js · apps/desktop/test/exit-geo.js
Одно правило прокси покрывает все схемы, и открытый трафик, и закрытый
apps/desktop/src/main/main.js · apps/desktop/test/proxy-covers-https.js
Часы и набор языков строятся по стране выхода
packages/shared/src/index.js · apps/desktop/test/fingerprint-card-matches.js
Выход через свой сервер сперва поднимает туннель, а упавший туннель отказывает в запуске
apps/desktop/src/lib/sshTunnel.js · apps/desktop/test/выход-по-ssh.js

Вопросы

Почему спрашивать страну через прокси, а не у сервера?
Потому что вопрос в том, что видит мир на дальнем конце этой дороги. Наш сервер назвал бы страну нашей же машины.
Что будет, если две службы разойдутся?
Их спрашивают по очереди, и побеждает первый разобранный ответ, до остальных дело не доходит. Ответ без страны отбрасывается.
Покрывает ли прокси закрытый трафик?
Да. Адрес уходит в браузер одним правилом на все схемы, и стенд строит это правило кодом самого запуска, а не читает настройку.
Идёт ли через него вся машина?
Нет. Этой дорогой идёт только профиль, поэтому почтовая программа и остальные окна остаются на вашем соединении. Для всей машины есть VPN.

Что ваш браузер выдаёт о своей дороге

Проверка утечек читает то, что уходит из браузера мимо прокси, и никуда это не отправляет.