Настоящее время Одной из главных забот пользователей в сети является вопрос, связанный с конфиденциальностью. вашей информации, и до этого существует большое количество решений, которые варьируются от тех, которые реализованы самими веб-браузерами, до таких вариантов, как использование сторонних приложений, среди прочего.
День сегодня мы поговорим о Privaxy который является прокси-сервером для блокировки рекламы и кодом межсайтового отслеживания.
Недавно Privaxy обновился до версии 0.5, и я могу отметить, что это прокси HTTP(s) MITM, который находится между приложениями чата HTTP(s), например веб-браузер, и HTTP-серверы, например веб-сайты служб. Устанавливая двусторонний туннель между двумя конечными точками, Privaxy может блокировать сетевые запросы на основе шаблонов URL и вставлять сценарии и стили в HTML-документы.
Работая на более низком уровне, Privaxy более эффективна и оптимизирована, чем блокировщики на основе подключаемых модулей браузера. Один экземпляр Privaxy на небольшой виртуальной машине, сервере или даже на том же компьютере, с которого исходит трафик, может фильтровать тысячи запросов в секунду и требует очень небольшого объема памяти.
Реализация блокировщика выполнена в виде отдельного прокси-сервера, что позволяет использовать его как универсальное решение, позволяющее пользователю фильтровать запросы не только от веб-браузеров. Прокси-сервер также не зависит от ограничений браузера, таких как ограничения, налагаемые третьей версией манифеста Chrome, и обеспечивает более высокую производительность и более низкие требования к ресурсам.
Например, при загрузке 320 тысяч фильтров потребление памяти составляет 50 МБ и есть возможность фильтровать тысячи запросов в секунду.
Принцип работы Privaxy заключается в реализации промежуточного фильтра. между пользователем и сайтами, используя подделку сертификата TLS для перехвата содержимого зашифрованных сеансов HTTPS и сокрытия предупреждения MITM.
Privaxy генерирует собственный сертификат, который пользователь устанавливает в хранилище сертификатов. вашей системы (/usr/local/share/ca-certificates/) и предписывает, чтобы приложения работали через прокси localhost:8100. Предусмотрено два варианта сборки: консольная утилита и графический интерфейс, позволяющий управлять настройками, визуально отслеживать текущую активность и просматривать статистику сбоев.
Когда HTTPS-запрос получен от пользователя, Privaxy устанавливает TLS-соединение. с целевым сервером от своего имени и получает его сертификат, после чего использует имя хоста фактического сертификата, полученного от сервера, и создает фиктивный сертификат, связанный цепочкой доверия с корневым сертификатом, сгенерированным для пользователя.
Используя фиктивный сертификат, прокси олицетворяет запрошенный сервер при общении с клиентом, при этом продолжая использовать TLS-соединение, установленное с целевым сервером, для получения данных. Для выбранных хостов и доменов можно отключить переадресацию с помощью метода MITM.
Помимо удаления рекламы на основе масок URL, Privaxy также предлагает возможность вставки кода JavaScript и стилей CSS в визуализированные HTML-документы.
Поддерживаются совместимые с Adblock Plus фильтры, такие как Easylist. Подстановка контента поддерживает синтаксис uBlock Origin для скриптов, контроллеров и перенаправлений, а также собственный синтаксис для установки произвольных пользовательских фильтров. Внешние списки, связанные с фильтрами, обновляются автоматически.
Из особенности, которые выделяются из Privaxy:
- Поддержка фильтров Adblock Plus, таких как easylist
- Веб-интерфейс с экраном статистики, а также браузер запросов в реальном времени.
- Поддержка исходного синтаксиса uBlock js.
- Поддержка синтаксиса источника перенаправления uBlock.
- Поддержка исходных скриптлетов uBlock.
- Независимо от браузера и HTTP-клиента.
- Поддержка пользовательских фильтров.
- Поддержка исключения хостов из конвейера MITM.
- Поддержка обновлений протокола, например, с помощью веб-сокетов.
- Автоматическое обновление списка фильтров.
- Очень низкое потребление ресурсов.
- Около 50 МБ памяти с включенными около 320 000 фильтров.
- Способен фильтровать тысячи запросов в секунду на небольшой машине.
Наконец, если вы хотите узнать об этом больше, вы можете ознакомиться с подробностями в по следующей ссылке.
Код проекта написан на Rust и распространяется под лицензией AGPLv3, а готовые сборки предоставляются для Linux (AppImage, deb), Windows и macOS.