Выпуск web-браузера CENO 2.1, использующего P2P-сеть для доступа к сайтам

После года разработки опубликован выпуск мобильного web-браузера CENO 2.1.0, предназначенного для организации доступа к информации в условиях невозможности прямого доступа к информации, например, при отключения сегментов интернета от глобальной сети в результате сбоев или действий злоумышленников. Браузер построен на основе движка GeckoView (применяется в Firefox для Android), расширенного возможностью обмена данными через децентрализованную P2P-сеть, в которой пользователи участвуют в перенаправлении трафика к внешним шлюзам, обеспечивающим доступ к информации. Наработки проекта распространяются под лицензией MIT. Готовые сборки доступны в Google Play.

P2P-функциональность вынесена в отдельную библиотеку Ouinet, которая может быть использована в произвольных приложениях. Браузер CENO и библиотека Ouinet позволяют получить доступ к информации в ситуациях вплоть до полного отключения интернета, например, в результате глобальных сбоев. В этом случае контент может раздаваться из кэша или локальных накопителей.

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

Для получения доступа к новому контенту, прямой доступ к которому невозможен, применяются специальные прокси-шлюзы (injector), которые размещаются во внешних неповреждённых частях сети, в которых остаётся возможность установки соединения. Информация между клиентом и шлюзом шифруется с использованием шифрования на базе открытых ключей. Для идентификации шлюзов и предотвращения внедрения вредоносных шлюзов применяются цифровые подписи, а ключи сопровождаемых проектом шлюзов включены в поставку браузера.

Для доступа к шлюзу в условиях его прямой недоступности поддерживается подключение по цепочке через других пользователей, которые выступают в роли прокси для проброса трафика к шлюзу (данные шифруются ключом шлюза, что не позволяет транзитным пользователям, через системы которых передаётся запрос, вклиниться в трафик или определить содержимое). Клиентские системы внешние запросы от имени других пользователей не отправляют, а либо отдают данные из кэша, либо используются в качестве звена для установки туннеля к прокси-шлюзу.

Обычные запросы вначале браузер пытается доставить напрямую, а если прямой запрос не проходит — выполняет поиск в распределённом кэше. При отсутствии URL в кэше информация запрашивается через подключение к прокси-шлюзу или обращение к шлюзу через другого пользователя. Конфиденциальные данные, такие как cookie, в кэше не сохраняются.

Каждая система в P2P-сети снабжается внутренним идентификатором, который используется при маршрутизации в P2P-сети, но не привязан к физическому местоположению пользователя. Достоверность передаваемой и сохраняемой в кэше информации обеспечивается через применение цифровых подписей (Ed25519). Передаваемый трафик шифруется при помощи TLS. Для доступа к информации о структуре сети, участниках и прокэшированном контенте применяется распределенная хэш-таблица (DHT). При необходимости в качестве транспорта помимо HTTP могут использоваться µTP или Tor.

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

Среди изменений в новом выпуске:

  • Браузерный движок синхронизирован с компонентами Firefox 123.1.0.
  • Улучшена индикация источников загрузки контента.
  • По умолчанию включён тёмный режим оформления.
  • Добавлена настройка для экспорта полных логов работы приложения.
  • Добавлена страница ожидания подключения во время запуска.
  • Добавлена настройка для управления включением мостового режима.
  • Обновлён список по умолчанию рекомендуемых сайтов.

Источник: http://www.opennet.ru/opennews/art.shtml?num=60920