Als Autor von NetGuard habe ich Erfahrung aus erster Hand auf diesem Gebiet.
Ein Nachteil einer Firewall, die auf einem lokalen VPN basiert, ist, dass nicht alle Datenverkehrstypen verarbeitet werden können, da der (Android-) Linux-Kernel nicht alle Datenverkehrstypen über eine Socket-basierte Verbindung weiterleiten kann. Ein Beispiel ist IPsec, das von einigen Herstellern für IP-Anrufe verwendet wird. Eine Teillösung (nicht für IPsec) hierfür wäre die Verwendung eines Remote-VPN-Servers zur Weiterleitung des Datenverkehrs. Dies ist jedoch aus Datenschutzgründen für viele Menschen nicht akzeptabel und mit zusätzlicher Komplexität und wahrscheinlich auch mit einem zusätzlichen Batterieverbrauch verbunden. In der Praxis scheint der Umgang mit TCP- und UDP-Verkehr für 99,9% der NetGuard-Benutzer ausreichend zu sein. Seit Android 5 ist es möglich, Anwendungen von der Weiterleitung in das VPN auszuschließen (die VPN-implementierende Anwendung entscheidet, ob dies obligatorisch oder optional ist). Hiermit können Probleme behoben werden, die dadurch entstehen, dass nicht der gesamte Datenverkehr weitergeleitet werden kann. Eine andere Option ist das Ausschließen von Adressen (Bereichen), mit denen NetGuard IP-Anrufe für einige Hersteller korrigiert.
Ein weiterer Nachteil ist, dass das Weiterleiten von Datenverkehr den Akkuverbrauch auf Mobilgeräten erhöht, da einige Verarbeitungsschritte erforderlich sind, da Pakete überprüft und weitergeleitet werden müssen. Die Verwendung von iptables, das in den Linux-Kernel integriert ist, ist effizienter und damit batteriefreundlicher.
Generell hat sich herausgestellt, dass Android den gesamten Datenverkehr in das VPN weiterleitet, auch den Datenverkehr von Systemanwendungen und -komponenten. Ein Hersteller könnte jedoch bestimmte Datenverkehrstypen ausschließen, um die Sicherheit einer VPN-basierten Firewall zu verringern.
NetGuard analysiert die Daten selbst nicht, mit Ausnahme von DNS-Anfragen zur Anzeigenblockierung. Andernfalls kann dies jedoch zu Datenschutzproblemen führen. Technisch gesehen ist dies jedoch ein Vorteil einer VPN-basierten Firewall (wenn Sie sie immer noch so nennen möchten), da sie eine vollständige Prüfung von Datenströmen ermöglicht, die über das hinausgeht, was mit iptables möglich ist. Dies würde wahrscheinlich auf Kosten des Batterieverbrauchs aufgrund der damit verbundenen Verarbeitung gehen. Beachten Sie, dass zum Überprüfen von SSL-Streams ein lokaler MiT-Angriff erforderlich ist.
Ein weiterer Nachteil ist, dass Android die Verkettung von VPNs nicht zulässt. Wenn Sie also ein lokales VPN zum Implementieren einer Firewall verwenden, können Sie keinen echten VPN-Dienst verwenden, es sei denn, die Firewall stellt einen solchen Dienst selbst oder alternativ einen Weiterleitungs- oder Proxy-Mechanismus für ein anderes VPN bereit Anwendung.
Schließlich hängt eine VPN-basierte Firewall von der Anwendung ab, die den auszuführenden Firewall-VPN-Dienst bereitstellt. Dies scheint trivial zu sein, ist es aber nicht, da einige Hersteller-Android-Versionen / -Varianten Prozesse bei wenig Arbeitsspeicher zu aggressiv beenden (IMHO ist es ein Fehler, wenn Android Anwendungen beendet, die einen VPN-Dienst bereitstellen).
Schließlich wird das Rooten von Android-Geräten immer schwieriger, sodass eine VPN-basierte Firewall für viele Menschen die einzige Wahl ist. Ich erwarte nicht, dass Google in Kürze eine systembasierte Firewall einführt, da dies die Werbeeinnahmen erheblich beeinträchtigen könnte. iOS hat eine systembasierte Firewall.
Lassen Sie mich wissen, wenn es irgendwelche Fragen gibt und ich werde versuchen, sie zu beantworten.
Meines Wissens ist es der Ansatz:
Root-basierte Firewalls verwenden IPFilter / iptables , um den Fluss zu steuern. Dies gilt automatisch für alle Apps, unabhängig davon, ob eine Netzwerkverbindung besteht oder nicht, ob das Routing vollständig funktioniert oder ob Sie sich in einer "geschlossenen Umgebung" (Intranet) ohne Zugang zur "Außenwelt" befinden " (Internet). Apps, die Sie blockiert haben, werden blockiert. Auf einem ziemlich niedrigen Niveau.
Firewalls, die keine Root-Firewalls sind, haben keinen Zugriff auf diese niedrige Ebene. Sie müssen daher Workarounds verwenden. In den meisten Fällen erfolgt dies über die VPN-Funktionen von Android . Je nach Implementierung funktioniert dies entweder vollständig auf dem Gerät (dh unabhängig davon, welche Netzwerkverbindung verfügbar ist) oder über "externe Dienste" (die Sie mit dem VPN des App-Anbieters verbinden). Im letzteren Fall kommt es zu einer Störung, sobald dieser Dienst nicht mehr verfügbar ist - eine Tatsache, die Sie möglicherweise bemerken oder nicht. In beiden Fällen bin ich mir nicht sicher, ob wirklich alle Apps das VPN unterstützen oder ob es einen Ausweg gibt. 1 Eine weitere unangenehme Tatsache bei VPNs, von der ich gelesen habe, ist die störende permanente Benachrichtigung: "Ihr Netzwerk wird möglicherweise überwacht."- aber AFAIK, die nur auftauchen sollte, wenn für die betreffende App ein eigenes Zertifikat installiert sein muss. 2
Fazit: Ich persönlich würde einer root-basierten Lösung eher vertrauen. Wo Rooting jedoch keine Option ist, sollten Lösungen ohne Root-Berechtigung fast genauso gut sein. In diesem Fall würde ich Open-Source-Lösungen wie NetGuard empfehlen (der Entwickler hat auch Xprivacy entwickelt und ist sehr vertrauenswürdig). Apropos: Weitere Informationen finden Sie in der XDA-Einführung von NetGuard , in der der Hintergrund mit einigen weiteren Details erläutert wird.
1 Ich kenne die technischen Details hinter der VPN-Implementierung von Android nicht, zitiere jedoch WhiteWinterWolf (siehe Kommentar unten). Es ist Sache des Android-Basissystems, dies durchzusetzen. Es gibt keinen Grund zu der Annahme, dass dies nicht richtig gemacht wird.
2 Nochmals WhiteWinterWolf zitiert: Die von NetGuard verwendete VPN-API ermöglicht das Abfangen aller Daten durch eine nicht privilegierte Anwendung. Android betrachtet dies effektiv als "Überwachung", es hat keinen Bezug zu einem Zertifikat und diese Warnung ist eine unvermeidbare und zu erwartende Konsequenz von Verwenden dieser API.
quelle
Ich denke, ein wichtiges Feature, das Sie über Netguard beachten sollten, ist die Möglichkeit, bestimmte Adressen auf App-Basis zu filtern. Dies ist eine kostenpflichtige Option.
Ich kann nicht sagen, zertifikatbasiertes VPN vs Iptables. Dies hängt wahrscheinlich von Ihrer Kernel- und Android-Version für iptables und für NetGuard ab, von den Algorithmen, die zum Verschlüsseln der Daten verwendet werden, davon, ob sie protokolliert werden und wo sie gespeichert sind. Meine Antwort ist möglicherweise nicht so technisch wie das, wonach Sie gesucht haben. Als langjähriger Benutzer von AFWall + (Spendenversion) bin ich definitiv voreingenommen. Ich weiß jedoch, dass der Entwickler von NetGuard auch XPrivacy, einen sehr bekannten / vertrauenswürdigen und robusten Android-Datenschutzmanager, aktiv pflegt . AFWall + wurde nicht aufgegeben, hat aber definitiv noch kein Update erhalten, so wie es NetGuard getan hat. Beide verwenden unterschiedliche Methoden zur Aufrechterhaltung der Verkehrskontrolle, aber letztendlich hängt es meiner Meinung nach hauptsächlich vom Benutzer ab, wie sicher ein Teil ihres Geräts ist.
quelle