Für Entwickler, Hacker und Tester
HTTP Catcher: iPhone-Datenverkehr mitlesen
Entwickler und neugierige iPhone-Anwender haben ab Werk keine Möglichkeit, den Datenverkehr, den aktiven Apps oder auch Apples iOS-Betriebssystem selbst auf dem iPhone verursachen, unkompliziert mitzulesen.
DuckDuckGo: Woher kommen die Suchvorschläge
Tippt ihr etwa die Buchstabenkombination „no“ in eure Safari-Adressleiste ein und habt die datensparsame Suchmaschine DuckDuckGo aktiv, dann könnt ihr euch wundern woher die Vorschläge „norma“,“norisbank“ und „nokia“ kommen, habt aber keine Möglichkeit einfach unter die Haube zu blicken und nachzusehen.
Diese Möglichkeit bietet euch die 2,29 Euro teure iPhone-App HTTP Catcher an.
Der Download, der sich am ehesten als umfangreichere Charles-App beschreiben lässt, installiert auf Wunsch ein VPN-Profil, das den gesamten Datenverkehr eures iPhone durch einen lokalen Proxy tunnelt.
Da alle Online-Verbindungen mitgeschnitten werden, könnt ihr diese im Nachgang analysieren und so zum Beispiel herausfinden, dass die Safari-Eingabe „no“ an die DuckDuckGo-Adresse https://duckduckgo.com/ac/?q=no geschickt und hier mit einer JSON-Datei beantwortet wurde, die 10 Vorschläge zur Textvervollständigung mitbringt. Deren Inhalt sieht übrigens so aus:
Um auch den verschlüsselten HTTPS-Datenverkehr mitlesen zu können installiert der HTTP Catcher auf Wunsch ein eigenes Root-Zertifikat, das nach Apples iOS 12-Änderungen etwas umständlich aktiviert werden muss. Zum einen müsst ihr die Profil-Installation zulassen, zum anderen Einstellungen > Allgemein > Info > Zertifikats-Vertrauenseinstellungen besuchen und hier noch mal euer ganz spezifisches Vertrauen aussprechen.
Tester-Grundausstattung und kein Hexenwerk
Root-Zertifikat, VPN, Daten mitschneiden… – Was für den Laien erst mal besorgniserregend klingt, gehört zum Alltag vieler Entwickler, Hobbyisten und technisch interessierter Anwender und ist die Grundlage jeder zweiten Verbraucher-Test-Sendung, in deren Verlauf Apps auf ein datenschutztechnisch bedenkliches Verhalten hin abgeklopft werden.
Hier sind meistens nämlich keine Ausnahme-Hacker am Werk, sondern langgediente Warentest-Mitarbeiter, die mal eben 10 Apps zum aktuellen Test-Thema starten, einen Proxy mitlaufen lassen und anschließend nachschauen, welche davon Nutzerdaten im Klartext und über unverschlüsselte Leitungen an ihre Haus-Server übermittelt hat.
Tests, die ihr mit HTTP Catcher jetzt auch in Eigenregie durchführen könnt.
Solltet ihr Charles schon besitzen, dann notiert euch noch kurz folgendes: HTTP Catcher schneidet mit installiertem Zertifikat alle HTTPS-Request mit und will nicht immer eine gesonderte Ausnahme-Bestätigung haben. Zudem gefällt die übersichtliche Darstellung von Kopfzeilen und Antworten, das einfache Umschreiben von Requests, die Blacklist und die Nur-Text-Darstellung der Server-Antworten.
Ihr hättet mal kurz was zu schreiben können:
Bleibt der Traffic komplett local, d.h. der VPN Endpoint ist nur das lokale Gerät?
Ja. Zudem dürften dich folgende Absätze aus der Datenschutzrichtlinie interessieren:
„HTTP Catcher will never upload your personal data and network request data. HTTP Catcher will never upload your personal data and network request data. Your settings data may be uploaded to your iCloud storage after you enable iCloud sync. Your personal data and network request data will only be stored locally.“
Danke für die schnelle Antwort :-)
Ich, ein reiner Anwender mit kaum mehr als technischen Sachverstand“ bin sehr irritiert, da sich die Beschreibung der Installation von HTTP Catcher – zumindest in Schritt 2) so gar nicht mit den Darstellungen auf meinem Gerät decken.
Unter Zertifikatsvertrauenseinstellungen find ich gar keine Einträge mit Schaltern zum aktivieren oder deaktivieren. Seit Installation der App findet sich an oberster Stelle lediglich der Eintrag „HTTP Catcher“ und daneben in grauer Schrift „2018121000“.
In der App kann ich auf Start/Stopp gehen – Sie bemängelt nichts in Sachen Zertifikaten. Bisher wurden aber keine Aufzeichnungen gemacht. Gleichwenn bei einem Eintrag 1 Byte steht, bei allen anderen 0 Byte: Einträge sind trotzdem nicht vorhanden.
Sollte ich mir Sorgen um die Sicherheit meines Gerätes machen oder ist das der neuesten iOS Version 12.3.1 geschuldet.
Ich nutze ein iPhone X.
Danke vorab an jeden, der sich meiner Frage annimmt.
Mac McMasters
PS. Natürlich werde ich bei sich bestätigendem Verdacht von Sicherheitsproblemen selbstständig eine Wartenummer des nächsten Apple Store ziehen.
Standardmäßig zeichnet das Tool nur HTTP Verkehr auf. Du musst die HTTPS Aufzeichnung erst aktivieren; danach muss ein Profil aktiviert werden und dann das dadurch eingetragene Root- Zertifikat erlaubt werden.
Offtopic: DuckDuckGo schickt also Tastatureingaben unverschlüsselt über die Leitung?
Interessant.
Nein, ich habe das S in der Adresse vergessen – sieht man auch in den Screenshots. Danke für den Hinweis. Ist korrigiert.
@iFun: Also würdet ihr den HTTP Catcher der Charles App bevorzugen?
Aktuell sind beide installiert und der Catcher will erst noch länger getestet werden – aus dem Bauch heraus würde ich jetzt jedoch schon eher zu diesem greifen als zu Charles.
Eine Alternative dazu ist auch MitmProxy der hatte mich lange Zeit beim Entwickeln begleitet.
Ja! Der gefällt uns auch. Zuletzt hier erwähnt: https://www.ifun.de/ios-datenverkehr-mitlesen-mitmproxy-erscheint-in-version-3-0-119219/
Cool, bisher hab ich das Firebug Lite Modul für iCab Mobile genutzt, um mal eben schnell am iPhone nachzuschauen, was eine Webseite so für Anfragen abschickt. Allerdings war das schon sehr eingeschränkt.
Eigentlich eine dumme Frage, weil es wohl nicht geht, ohne jailbreak SSL Pinning auszuhebeln.
Aber ich frage mal trotzdem: kann man damit auch irgendwie den Traffic von Apps mit Zertifikatpinning mitlesen?
Der Frage schließe ich mich an.
Nein, denn damit soll ja genau das verhindert werden.
Wenn es ohne jailbraik gehen würde, wäre das doch ein erhebliches Sicherheitsproblem von iOS?
Kann man damit auch HTTP Header, Cookie und Hidden fields einsehen?
Schau mal in die Screenshots der App Store Seite.
Ich werfe hier Adguard pro in den Raum. Man sieht den Datenverkehr und kann ihn gezielt einschränken. Bei mir sind so z. B. die ganzen Datensammler von Google, Facebook und Co gesperrt.
Die nervige EU Cookie Bestätigung kann man damit z.B. auch wegdrücken.
Habe das Ding seit fast zwei Jahren im Einsatz, erschreckend, welche Apps alle noch zusätzliche Seiten im Hintergrund aufrufen.
Andreas, wie kann man genau in Adguard die absolut nervigen EU Cookie Bestätigungen konfigurieren? Kannst du mir das genau beschreiben? Ich wäre dir für die genaue Information sehr dankbar. Es ist töricht, was sich die EU mit den nervigen Cookie Bestätigungen einfallen liess.
Zahlt notebooksbilliger an DuckDuckGo um in der JSON File gelistet zu werden ?
Ich, ein reiner Anwender mit kaum mehr als technischen Sachverstand“ bin sehr irritiert, da sich die Beschreibung der Installation von HTTP Catcher – zumindest in Schritt 2) so gar nicht mit den Darstellungen auf meinem Gerät decken.
Unter Zertifikatsvertrauenseinstellungen find ich gar keine Einträge mit Schaltern zum aktivieren oder deaktivieren. Seit Installation der App findet sich an oberster Stelle lediglich der Eintrag „HTTP Catcher“ und daneben in grauer Schrift „2018121000“.
In der App kann ich auf Start/Stopp gehen – Sie bemängelt nichts in Sachen Zertifikaten. Bisher wurden aber keine Aufzeichnungen gemacht. Gleichwenn bei einem Eintrag 1 Byte steht, bei allen anderen 0 Byte: Einträge sind trotzdem nicht vorhanden.
Sollte ich mir Sorgen um die Sicherheit meines Gerätes machen oder ist das der neuesten iOS Version 12.3.1 geschuldet?
Ich nutze ein iPhone X.
Danke vorab an jeden, der sich meiner Frage annimmt.
Mac McMasters
PS. Natürlich werde ich bei sich bestätigendem Verdacht von Sicherheitsproblemen selbstständig eine Wartenummer des nächsten Apple Store ziehen.
Ja, das erwähntest Du bereits.
Bei den meisten apps sollte der HTTP Catcher ebenso wenig funktionieren wie auch Chargles aufgrund des verschlüsselten Datenverkehrs.
HTTPS zumindest geht mit Zertifikat.
Entwickler wissen vermutlich, welche Tracker implementiert sind – im Gegenteil zum Konsumenten.
Ich verwende gelegentlich den Charles-Proxy. Sehr aufschlussreich. Man kann ihn auch als Firewall verwenden.
Du bist hier im falschen Thread, awsome.
Hier geht’s nicht um , andere in respektloser und schön subtiler Art verstehen zu geben, dass man ein geistig unterbesetzter (angeblicher*) Doppelposter sei.
Hier geht’s um technische Fragen. Und da Du auf meine Fragen keine Antworten hast….
* angeblich, denn ich setzte den zweiten Post extra mit einem Hinweis an den freischalten Mod ab: „sorry fürs Doppelposting, das erste wurde als eine Antwort fehlplatziert …“ dass dieser Hinweis dann aus meinem Post gelöscht wird und noch beide Postings online bleiben, das ist nichts weiter als eine Tatsache. Das kannst Du nicht wissen, aber Du willst ja offenbar auch keine Informationen erfragen oder hier was wirklich hilfreiches abladen.
Mir gelingt die Installation des Zertifikats ebenfalls nicht. Es taucht unter Info.etc nicht auf. Was mach ich da falsch?
Tolles Tool. Danke für den Tipp.
@nautilus und
für alle anderen, die in der Installation nicht weiterkommen:
folgende Schritte sind zur Nutzung der App notwendig:
– wenn man die App gestartet hat, unten rechts auf die drei … (mehr) tippen
– oben steht dann „HTTPS Catcher aktivieren“ – hier den Schalter setzten
– daraufhin erscheint ein Popup mit der Überschrift „Zertifikatsprofilen installieren“ > hier auf „installieren“ tippen
– automatische Weiterleitung zu den iOS Systemeinstellungen
– unter Deinem Profilbild erscheint der neue Eintrag „Profil geladen“ … dort rechts auf den Pfeil klicken
– Nun erscheint das Zertifikat mit dem Hinweis in roter Schrift „nicht geprüft“
– oben rechts auf „installieren“ tippen
– es folgen zwei Warnhinweise hinsichtlich des ungeprüften Zertifikats, nun noch einmal final oben rechts auf „installieren“ tippen
– abschließend in den hier bereits genannten Bereich der Zertifikatsvertrauenseinstellungen wechseln: hier erscheint das Zertifikat und kann per Schalter-Option aktiviert werden …. dann läufts …
entschuldigt den/die Tippfehler
… HTTPS Capture …