Eine Möglichkeit zum sicheren Datenaustausch in Android?

Meines Wissens sind alle aktuellen Android-Apps mit aktivierter Internetberechtigung anfällig dafür, dass Apps Daten stehlen. Wenn Sie beispielsweise eine Messaging-App haben, können alle Ihre Nachrichten von dem Unternehmen gelesen werden, das die App bereitstellt, und wiederum von jedem, der das Unternehmen hacken/bestechen kann. Das Unternehmen könnte eine Ende-zu-Ende-Verschlüsselung verwenden, aber das ist nicht überprüfbar, es sei denn, die App ist Open Source. Selbst wenn dies der Fall ist, muss jede App-Version separat geprüft werden, was nicht realistisch ist.

Gibt es eine Möglichkeit (Drittanbieter oder nativ) oder Pläne, einen sicheren Datenaustausch für Android zu implementieren?

Ich würde erwarten, dass es funktioniert, indem entweder eine bestimmte Berechtigung verwendet wird, mit der nur vom Betriebssystem verschlüsselte Daten über das Netzwerk gesendet werden können, oder eine Art Zustandsfreigabe über das Dateisystem + eine Drittanbieter-App, die die Verschlüsselung durchführt und nur teilen.

Der Vergleich der Binärdatei und der Quelle einer (Java-basierten) Open-Source-App ist auf Android nicht so problematisch, da die gebaute Umgebung nicht so viele Varianten hat (wie auf C/C++). Ich denke sogar automatisierte Vergleiche sollten möglich sein. Daher müssten nur die Unterschiede zwischen den Releases geprüft werden.
Danke für die Eingabe. Ich glaube nicht, dass kontinuierliche Audits eine praktikable Option sind, selbst wenn nur Diffs auditiert werden. Es ist Handarbeit mit hohem Fachwissen, die extrem teuer und sogar fehleranfällig ist.

Antworten (1)

Am nächsten kommt man einem solchen Ding mit einem VPN. Der VPN-Anbieter kann die Daten beliebig verschlüsseln. Sie könnten sogar einen VPN-Server mit einem integrierten IP-Adressfilter (wie ein Adblock-System) einrichten, der es der App nicht erlaubt, mit den Servern ihres Entwicklers zu kommunizieren.

Das klingt alles gut, aber das würde Facebook nicht davon abhalten, Ihre WhatsApp-Nachrichten zu lesen. Die meisten Messaging-Apps sind so konzipiert, dass sie über ihre eigenen Server kommunizieren, anstatt direkt von Ihrem Telefon zu dem Ihres Freundes. Dies ist aus mehreren Gründen wichtig:

  1. Die meisten Mobilfunkanbieter blockieren eingehende Verbindungen aus dem Internet zu einem Telefon, möglicherweise in Kombination mit NAT, sodass mehrere Telefone eine einzige IP-Adresse teilen. Die meisten Wi-Fi-Netzwerke verwenden auch NAT. Um Nachrichten hin und her zu übertragen, benötigen Sie einen festen Endpunkt, zu dem Sie eine Verbindung herstellen können, und das ist der Server, auf dem die App ausgeführt wird.

  2. Server werden auch verwendet, um die hochgeladenen Nachrichten zu speichern und sie zwischen all Ihren Geräten (Telefon, Tablet, Webschnittstelle und was auch immer) synchron zu halten. Sie erlauben auch Offline-Nachrichten, genau wie die Voicemail auf dem Server des Mobilfunkanbieters und nicht auf Ihrem Telefon.

Wenn Sie also möchten, dass Ihre Mainstream-Chat-Apps überhaupt funktionieren, müssen sie mit ihren Servern kommunizieren. Ihre beste Alternative zum einfachen Chatten ist eine App, mit der Sie Ihren eigenen Server hosten und für Ihre eigene Sicherheit sorgen können. Jabber (alias XMPP) ist ein solches Chat-System, und es gibt mehrere Open-Source-Clients für Android. Sie können entweder überprüfen, ob der gewünschte Client nur mit Ihrem Jabber-Server kommuniziert, oder ihn hinter eine Firewall stellen, die ihn nur mit diesem einen Server kommunizieren lässt.

Self-Hosting ist die einzige vertrauenswürdige Option für andere ähnliche Dienste wie E-Mail oder Cloud-Speicher.

Um es klar zu sagen, ich suche keine Chat-App. Ich untersuche das Problem im Android-Design/Ökosystem und denke über mögliche Lösungen nach. Eine Chat-App ist nur ein Beispiel für einen Anwendungsfall, bei dem ich Daten zwischen mehreren Geräten austauschen, eine Closed-Source-App haben und sicher sein möchte, dass die App keine meiner unverschlüsselten Daten an ihre Server senden kann. Ich glaube nicht, dass ein VPN in diesem Fall von Nutzen wäre, da die App nicht richtig funktioniert, wenn ich der App nicht erlaube, unverschlüsselte Daten an ihre Server zu übergeben.