Jako autor NetGuard mam doświadczenie z pierwszej ręki w tej dziedzinie.
Wadą zapory opartej na lokalnej sieci VPN jest to, że nie wszystkie typy ruchu mogą być obsługiwane, ponieważ jądro Linuxa (Android) nie pozwala na przekazywanie wszystkich typów ruchu przez połączenie oparte na gniazdach. Przykładem jest protokół IPsec, który jest wykorzystywany przez niektórych producentów do połączeń IP. Częściowym (nie dla IPsec) rozwiązaniem tego problemu byłoby użycie zdalnego serwera VPN do przekazywania ruchu, ale jest to prywatnie niedopuszczalne dla wielu osób i wymagałoby dodatkowej złożoności, a także prawdopodobnie dodatkowego zużycia baterii. W praktyce obsługa ruchu TCP i UDP wydaje się wystarczająca dla 99,9% użytkowników NetGuard. Od systemu Android 5 można wykluczyć routing aplikacji do sieci VPN (aplikacja wdrażająca VPN decyduje, czy jest to obowiązkowe czy opcjonalne), które można wykorzystać do rozwiązania problemów wynikających z niemożności przekazania całego ruchu. Inną opcją jest wykluczenie adresu (zakresów), którego NetGuard używa do „naprawy” połączeń IP u niektórych producentów.
Kolejną wadą jest to, że ruch związany z przekazywaniem zwiększy zużycie baterii na urządzeniach mobilnych, ponieważ wiąże się to z pewnym przetwarzaniem, ponieważ pakiety muszą być sprawdzane i przekazywane. Korzystanie z iptables, które jest zintegrowane z jądrem Linuksa, jest bardziej wydajne, a zatem bardziej przyjazne dla baterii.
Zasadniczo okazało się, że Android kieruje cały ruch do VPN, nawet ruch aplikacji i komponentów systemowych, ale producent może zdecydować o wykluczeniu niektórych rodzajów ruchu, zmniejszając bezpieczeństwo, które można osiągnąć za pomocą zapory sieciowej opartej na VPN.
NetGuard nie analizuje samych danych, z wyjątkiem żądań DNS w celu zapewnienia blokowania reklam, ale gdyby to zrobił, mogłoby to budzić obawy dotyczące prywatności. Niemniej jednak technicznie widać, że jest to zaleta zapory sieciowej opartej na sieci VPN (jeśli nadal chcesz ją tak nazwać), ponieważ pozwoliłaby na pełną kontrolę strumieni danych poza stanem możliwym w przypadku iptables. Byłoby to prawdopodobnie kosztem użytkowania baterii, ze względu na związane z tym przetwarzanie. Pamiętaj, że do sprawdzenia strumieni SSL wymagany byłby lokalny atak MiT.
Jeszcze inną wadą jest to, że Android nie pozwala na łączenie sieci VPN, więc użycie lokalnej sieci VPN do wdrożenia zapory sieciowej uniemożliwi korzystanie z prawdziwej usługi VPN, chyba że zapora sieciowa sama zapewnia taką usługę lub alternatywnie mechanizm przekazywania lub proxy do innej sieci VPN podanie.
Wreszcie zapora sieciowa oparta na sieci VPN zależy od aplikacji udostępniającej zaporę VPN. Wydaje się to trywialne, ale nie jest, ponieważ niektóre wersje / warianty Androida niektórych producentów zbyt agresywnie zabijają procesy w warunkach niskiej pamięci (IMHO jest błędem, jeśli Android zabija aplikacje świadczące usługę VPN).
Wreszcie, rootowanie urządzeń z Androidem staje się coraz trudniejsze, dlatego zapora sieciowa VPN jest jedynym wyborem dla wielu osób. Nie oczekuję, że Google w najbliższym czasie doda zaporę systemową, ponieważ może to znacząco wpłynąć na ich przychody z reklam. iOS ma zaporę systemową.
Daj mi znać, jeśli będą jakieś pytania, a ja postaram się na nie odpowiedzieć.