Как автор NetGuard я имею непосредственный опыт в этой области.
Недостаток брандмауэра на основе локальной VPN заключается в том, что не все типы трафика могут обрабатываться, поскольку ядро Linux (Android) не позволяет пересылать все типы трафика через соединение на основе сокетов. Примером является IPsec, который используется для IP-вызовов некоторыми производителями. Частичное (не для IPsec) решение этой проблемы могло бы заключаться в использовании удаленного VPN-сервера для пересылки трафика, но это конфиденциальность не приемлемо для многих людей и может привести к дополнительной сложности и, вероятно, к дополнительному расходу заряда аккумулятора. На практике обработка трафика TCP и UDP оказывается достаточной для 99,9% пользователей NetGuard. Начиная с Android 5, можно исключить приложения из маршрутизации в VPN (приложение, реализующее VPN, решает, является ли это обязательным или необязательным), который может использоваться для решения проблем, возникающих из-за невозможности пересылки всего трафика. Другой вариант - исключить адреса (диапазоны), которые NetGuard использует для «исправления» IP-вызовов для некоторых производителей.
Другим недостатком является то, что пересылка трафика приведет к увеличению расхода заряда аккумулятора на мобильных устройствах, поскольку требует некоторой обработки, поскольку пакеты необходимо проверять и пересылать. Использование iptables, встроенного в ядро Linux, более эффективно и, следовательно, более дружественно к батарее.
В целом оказалось, что Android направляет весь трафик в VPN, даже трафик системных приложений и компонентов, но производитель может принять решение исключить определенные типы трафика, снижая безопасность, которая может быть достигнута межсетевым экраном на основе VPN.
NetGuard не анализирует сами данные, за исключением DNS-запросов на блокировку рекламы, но в этом случае это может вызвать проблемы с конфиденциальностью. Тем не менее, с технической точки зрения это является преимуществом брандмауэра на основе VPN (если вы все еще хотите называть его так), поскольку он позволяет проводить проверку потоков данных с полным состоянием сверх того, что возможно с iptables. Это, вероятно, будет происходить за счет использования батареи, из-за обработки. Обратите внимание, что для проверки потоков SSL потребуется локальная атака MiT.
Еще одним недостатком является то, что Android не допускает связывание VPN, поэтому использование локальной VPN для реализации брандмауэра предотвратит использование реальной службы VPN, если только брандмауэр сам не предоставляет такую услугу или, в качестве альтернативы, не использует механизм пересылки или прокси для другой VPN. заявление.
Наконец, брандмауэр на основе VPN зависит от приложения, обеспечивающего работу службы VPN брандмауэра. Это кажется тривиальным, но это не так, потому что версии / варианты Android некоторых производителей слишком агрессивно убивают процессы в условиях нехватки памяти (ИМХО, это ошибка, если Android убивает приложения, предоставляющие услугу VPN).
Наконец, рутирование Android-устройств становится все более трудным, и брандмауэр на базе VPN остается единственным выбором для многих людей. Я не ожидаю, что Google добавит системный брандмауэр в ближайшее время, потому что это может существенно повлиять на доходы от рекламы. iOS имеет системный брандмауэр.
Дайте мне знать, если есть какие-либо вопросы, и я постараюсь ответить на них.
Насколько мне известно, это подход:
Корневые межсетевые экраны используют IPFilter / iptables для управления потоком. Это автоматически применяется ко всем приложениям, независимо от того, доступно ли сетевое соединение вообще или нет, работает ли полностью или нет маршрутизация, или вы находитесь в «закрытой среде» (интрасети) без доступа к «внешнему миру». "(Интернет). Приложения, которые вы заблокировали, заблокированы. На довольно низком уровне.
Брандмауэры без полномочий root не имеют доступа к этому низкому уровню, поэтому они должны использовать обходные пути. В большинстве случаев это делается с помощью средств VPN Android . В зависимости от реализации, это либо работает полностью на устройстве (т.е. опять-таки независимо от того, какое сетевое соединение может быть доступно), либо через «внешние сервисы» (подключая вас к VPN провайдера приложения). В последнем случае все обрывается, как только эта служба перестает быть доступной - факт, который вы можете заметить или нет. В любом случае, я не уверен, действительно ли все приложения поддерживают VPN или есть способы обойти. 1 Еще один неприятный факт с VPN, о котором я читал, - это раздражающее постоянное уведомление, в котором говорится: «Возможно, за вашей сетью следят»- но AFAIK должен появляться только в том случае, если для рассматриваемого приложения требуется собственный сертификат. 2
Вердикт: я бы лично больше доверял корневому решению. Но там, где рутинг не возможен, решения без полномочий root должны быть почти такими же хорошими. В этом случае моя рекомендация будет направлена на решения с открытым исходным кодом, такие как NetGuard (его разработчик также создал Xprivacy и пользуется большим доверием). Говоря о том, что: Для получения более подробной информации, посмотрите на введение XDA NetGuard , который объясняет фон с некоторыми дополнительными деталями.
1 Я не знаком с техническими подробностями реализации VPN для Android, но цитируя WhiteWinterWolf (см. Комментарий ниже), это зависит от базовой системы Android, нет причин думать, что это сделано неправильно.
2 Снова цитирую WhiteWinterWolf: API VPN используется NetGuard позволяет все данные будут перехвачены непривилегированным приложением, это то , что Android эффективно рассматривать как «контроль», он не имеет никакого отношения к какой - либо сертификат , и это предупреждение является неизбежным и ожидаемым следствием используя этот API.
источник
Я думаю, что важной особенностью Netguard, которую стоит отметить, будет возможность фильтровать конкретные адреса для каждого приложения. Это платный вариант.
Я не могу сказать, VPN на основе сертификатов против iptables. Вероятно, это будет зависеть от вашего ядра и версии Android для iptables и для NetGuard, алгоритмов, используемых для шифрования данных, регистрируются ли они и где они хранятся. Мой ответ может быть не таким техническим, как то, что вы искали, и как давний пользователь AFWall + (пожертвовать версию), я определенно склонен к этому. Однако я знаю, что разработчик NetGuard также активно поддерживает XPrivacy, очень известный / надежный и надежный менеджер конфиденциальности Android. AFWall + вообще не был заброшен, но определенно не получал обновления совсем недавно, как NetGuard. Они оба используют разные методы контроля трафика, но, в конечном счете, я думаю, что в основном это зависит от пользователя, насколько безопасна любая часть его устройства.
источник