Ник Пост Дата
s11

Добрый день,

Мы подготовили первую версию Freebrowser (https://play.google.com/store/apps/details?id=org.greatfire.freebrowser) для десктопа, и хотим начать с ограниченного тестирования в России.

[обновлено] Скачать последнюю версию:

Linux версия работает на Debian (Ubuntu, Debian, Mint) и Redhat (Fedora, CentOS) системах. Для запуска необходимо добавить разрешения chmod +x freebrowser_v102 и запускать как скрипт ./freebrowser_v102

Windows версия тестировалась на Win 7, 10 и 11. Запускается от имени администратора по умолчанию.

Состоит из связки последнего браузера Chrome (скачивается если не установлен) и локального прокси, которое редактирует запросы (запускается на порту 8888)

Использует несколько подходов (любой, который сработает первым):

  1. DNS-over-HTTPs + запрос без изменений
  2. DNS-over-HTTPs + пустой SNI
  3. DNS-over-HTTPs + фейковый SNI
  4. Domain fronting через CDN

Любые отзывы по работающему\не работающему обходу блокировок и производительности приветствуются! Вопросы тоже.


Hi,

We’ve developed first version of Freebrowser (https://play.google.com/store/apps/details?id=org.greatfire.freebrowser) for desktop, and would like to do a limited testing in Russia.

[updated] Download latest version:

Linux version is working for Debian (Ubuntu, Debian, Mint) and Redhat based (Fedora, CentOS) systems. To run, just chmod +x freebrowser_v102 and run as script ./freebrowser_v102

Windows version was tested on Win 7, 10 и 11. Runs as administrator by default.

Package consists of latest Chrome browser (downloaded if not installed) and localhost proxy which applies request modifications (launched on port 8888).

Uses several methods of circumvention, whichever returns first:

  1. DNS-over-HTTPs + No request modifications
  2. DNS-over-HTTPs + Empty SNI
  3. DNS-over-HTTPs + Fake SNI
  4. Domain fronting via CDN

Any feedback on circumvention success/failures and performance is appreciated! Questions welcomed too.

2023-07-17T15:01:36.230Z
sbq-e

Is the source code available?
I’m not a RMS fanboy, but for software designed to circumvent censorship I expect to be FOSS.

Also 6.8 MB for Chromium + proxy bundle is kinda suspicious.

2023-07-17T15:22:08.748Z
CRACKen(panic!("this is a terrible mistake!");)

Package consists of latest Chrome browser (downloaded if not installed) and localhost proxy which applies request modifications (launched on port 8888).

As I understand, the Chrome browser is not included and must be installed manually by the user, and this 6.8 Mb is the proxy that implements the functionality described in the post.

Or am I misunderstanding something? @s11

Anyway, I agree with the user above that it would be nice to see the Source Code.

2023-07-17T15:35:43.124Z
CRACKen(panic!("this is a terrible mistake!");)

И еще вопрос для @s11 - как реализован Domain Fronting (на основе каких инструментов)?

2023-07-17T15:37:40.909Z
s11

Yes correct, browser isn’t included, but installation is triggered by the executable itself if it is not available @CRACKen @sbq-e Moreover, Chrome download is proxied to so works in case Google’s download web page is blocked (China case).

Unfortunately we don’t release source code in case of Freebrowser. Main reason is it has information about access to our backend (for domain fronting), which we can’t allow to leak…

2023-07-17T15:48:41.088Z
CRACKen(panic!("this is a terrible mistake!");)

Is it possible to at least partially get the source code posted, or even that is out of the question?

2023-07-17T15:54:39.941Z
s11

В целом domain fronting реализован вполне буквально (Domain fronting - Wikipedia) - подмена SNI и HTTP заголовков (в данном случае прокси делает как раз это).

Вот тут (это наш другой, опен сорсный инструмент) https://github.com/greatfire/envoy/blob/master/native/README.md#examples есть пример который показывает какие заголовки подменяются и конфигурация бекенда (на NGINX) который этот запрос преобразовывает в оригинальный вид и посылает дальше. Логика в Freebrowser та же.

curl --resolve allowed.example.com:443:1.2.3.4 \ --header 'Host: forbidden.example.com' \ --header 'Url-Orig: https://forbidden.example.com' --header 'Host-Orig: forbidden.example.com' \ https://allowed.example.com/app1/ # --ciphers ECDHE-RSA-AES128-GCM-SHA256

2023-07-17T15:59:26.516Z
s11

Let me discuss this internally. Maybe we can do that with domain fronting method cleaned. Will come back.

2023-07-17T16:04:33.407Z
CRACKen(panic!("this is a terrible mistake!");)

Got it!

Thanks so much for all the answers.

2023-07-17T16:06:29.185Z
anon94384997

Уточню для англоязычных. DRMо созвучно с одним не очень культурным словом, которое переводится как shit.

2023-07-21T15:24:24.252Z
s11

Спасибо за фидбек по безопасности! Действительно, первую версию мы даже не обфусцировали и не убрали дебаг символы, это зря.

Попробуйте, пожалуйста, деобфусцировать вот этот билд: freebrowser_v101 (6.6 MB)

Апдейты:

  • добавлена обфускация и убраны дебаг символы
  • исправлен TLS fingerprint, теперь тоже мимикрирует Chrome
  • исправлен баг с HTTPS на нестандартные порты

По шифрованной конфигурации, действительно мы делаем шифрование конфигурации + whitebox + обфускация. Да, в продакшене ещё добавляется скачивание свежих конфигов, но нам нужен рабочий конфиг out of the box, для случая если скачивание новых заблокировано. Поэтому иных вариантов, кроме как максимально осложнить вытаскивание базового конфига из билда нет. Понятно, что любые обфускации теоретически ломаются, поэтому главное их просто осложнить. Предложите лучший подход, мы им воспользуемся.

Уточните, DRM и TPM это digital rights management и trusted platform module? (ну, помимо shit)

И да, цензору нужны бекенды, мы знаем по опыту. Весь смысл domain fronting’a в том, что адреса и SNI блокировать нельзя, потому что они используются для других сервисов (ну, можно конечно, но это вызывает collateral damage, в этом вся логика). Поэтому иронии по поводу делать сложней пользователям, а не цензору, не понял.

2023-07-21T16:01:20.922Z
s11

Привет!

Появилась версия под Windows (тестировалась на win7, 10, 11):
freebrowser_v102.zip (8.4 MB)

И обновлённая под Linux (Debian, Ubuntu, Mint, Fedora, CentOS):
freebrowser_v102_linux.zip (8.1 MB)

Отзывы по тому, что загружается/ не загружается в РФ приветствуются!

2023-07-27T22:26:21.449Z
NetShark(NetShark)

Проверка в Туркменистане, ошибка браузера NET::ERR_CERT_AUTHORITY_INVALID Win7

2023-08-03T03:30:27.996Z
s11

Спасибо за отзыв! Подскажите, Chrome был установлен до запуска? Приложение запускалось от имени администратора? (должно было по умолчанию, но вдруг)

2023-08-14T21:39:38.778Z
ani917(ani)

зачем это если есть тор?

2023-08-16T13:11:48.961Z
s11

Всегда лучше несколько инструментов, чем один. Ну и во-вторых, есть места где тор не работает, а freebrowser да

2023-08-16T16:18:01.200Z
idkzzz(Idkzzz)

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

2023-08-20T23:29:51.913Z
nollik(Dimon)

В Тм не подключается.win8.
“Error occured, please tru again.” В консоли разраб. - ошибка 505.
Если зайти в настройки браузера сразу выходит сообщение “настройки браузера были изменены посторонней программой.Браузер восстановил знначения по умолчанию.”, до запуска chrome уже был установлен.

2023-08-21T09:25:12.937Z
s11

Спасибо за отзыв, действительно в ТМ кажется не подключается (не только у вас такие симптомы). Смотрим в чём дело.

2023-08-21T21:39:54.634Z
s11

эту тему к любому браузеру можно прилепить

Верно, можно, не думал что есть большой запрос на другой браузер. Посмотрим, может зарелизим с чем-то ещё

2023-08-21T21:43:46.239Z
mizoru

Твиттер работает, мне нравится! А то, что пароли автоматически из хрома не подгружаются, - это так и должно быть?

win10

2023-09-02T01:47:10.627Z
welazsc

Не пользуйтесь Freebrowser для частных коммуникаций, если они вам важны. Freebrowser работает по принципу MITM, терминируя TLS трафик сайта локальным прокси. Считайте ваши пароли и сообщения помимо твиттера читают на чужом CDN и бекенде.

2023-09-02T08:58:42.990Z
fdsadf4345

nod32 троянская программа, так и должно быть ? :slight_smile:

2023-09-03T16:38:46.242Z
Sofi

Да :smiley:

2023-09-03T20:36:32.263Z
Anonimno(Anonimno)

Не только nod32 возбуждается на обфускацию

2023-09-04T01:03:22.108Z
s11

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

Но если вы включите синхронизацию от гугла (Как синхронизировать закладки, пароли и другую информацию на устройствах - Компьютер - Cправка - Google Chrome), то пароли тоже подгрузятся, я проверил

2023-09-06T13:53:04.214Z
s11

Всё верно описано!

Добавлю только, что и без Freebrowser’a для всех сервисов, использующих CDN (то есть практически для всего), HTTPS трафик терминируется на серверах CDN, а значит доступен на них в открытом виде в любом случае.

Поэтому в идеале важные сервисы должны иметь своё end to end шифрование от приложения до сервера. В этом случае ни MITM сервер, ни CDN сервер ваши важные сообщения не прочитают :slight_smile:

2023-09-06T14:00:30.572Z
s11

Внизу верно отметили, обфускация сильно портит впечатление антивирусного ПО от приложения… Пока что так. Подумаем над software publisher certificate. Ну и работаем над открытием кода.

2023-09-06T15:08:02.956Z
s11

Выложили офиц релизы win/linux на https://freebrowser.org/

Теперь можно распространять :slight_smile:

2023-11-13T14:07:25.850Z
s11

Новая версия доступна на 免费下载自由浏览 app,了解墙外最新资讯 - 自由浏览 - теперь под все платформы включая MacOS

@sbq-e @CRACKen took a while, but finally we’ve published our code

GitHub - greatfire/freebrowser (Client)

GitHub - greatfire/freebrowser-backend (Server)

2024-05-07T13:35:21.900Z
Anonimno(Anonimno)

Пишут, что данный браузер так же помогает обойти ограничение скорости c Youtube.

Заявлена поддержка: Android, Windows, Linux, Mac.

2024-08-04T18:18:05.697Z
artenox

Не могу подтвердить. Попробовал версию для Linux на интернете от Yota. Не знаю какая там маршрутизация. 2ip.ru ходит напрямую, whoer.net показал Сингапур. Похоже незаблокированные сайты ходят напрямую и YouTube в том числе. 1080p VP9 в Chrome тормозил, график скорости в среднем 180 кбайт/с. Под другим VPN не тормозил.
Если они пустят YouTube через себя и не захлебнутся, то может не будет тормозить. А пока YouTube напрямую идёт с ограничением провайдера. В Wireshark видел IP 37.29.1.207.

Стало даже хуже. Потому что Freebrowser использует Chrome, установленный в системе (отдельный профиль). Он настраивает Chrome на локальный прокси fbproxy (отдельный процесс). И QUIC не используется, даже если fbproxy пускает трафик к незаблокированным сайтам напрямую. Коннект к ним идёт по TCP, а ютубовский TCP Yota режет до 1 мбит/с.
Может быть, Android версия настроена по другому. Проверить имеет смысл.

2024-08-04T23:24:33.599Z
s11

корректные наблюдения!

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

андроид версия из google play проксирует всё, включая ютуб

quic’a нет, только https по tcp, без исключений

ну и в любом случае, мы используем довольно небыстрый метод обхода (domain fronting), поэтому даже проксируемый ютуб может быть не лучше замедленного :slight_smile:

2024-08-07T01:45:34.828Z
artenox

А есть ли возможность установить блокировщик рекламы или расширения в Android версии? Ведь на зарубежном IP будет реклама, от которой пользователи отвыкли.

И ещё, не планирует ли хостер отказаться от domain fronting в будущем? Используется Fastly или Linode, вроде.

2024-08-07T02:42:14.392Z
s11

да, реклама будет… (причем странная :D, сервера в ЮВА в основном, типа Корея Япония и тп - ближе к Китаю)

как-то не задумывались над этим, может и стоит добавить блокировщик рекламы

собственно все особенности от того, что изначально продукт для Китая, просто работает ± везде

пока domain fronting это основной метод, но работаем над другими

2024-08-07T02:52:49.951Z