Mit der Nutzung dieser Webseite akzeptieren Sie unsere Nutzung von Cookies. Weitere Informationen über Cookies finden Sie hier
Zustimmen
Infopulse - Softwareentwicklung & Infrastruktur-Management-Services
Mit der Nutzung dieser Webseite akzeptieren Sie unsere Nutzung von Cookies. Weitere Informationen über Cookies finden Sie hier
Zustimmen
Infopulse - Softwareentwicklung & Infrastruktur-Management-Services
Infopulse - Softwareentwicklung & Infrastruktur-Management-Services
Angebot Rückruf
Angebot anfordern Bitte füllen Sie dieses kurze Formular aus und wir senden Ihnen in Kürze ein kostenloses Angebot zu.
* Pflichtfelder
Der Schutz Ihrer Privatsphäre ist uns wichtig. Wir werden Ihre Informationen niemals weitergeben.
Rückruf anfordern Bitte füllen Sie dieses kurze Formular aus und wir rufen Sie in Kürze zurück.
* Pflichtfelder
Der Schutz Ihrer Privatsphäre ist uns wichtig. Wir werden Ihre Informationen niemals weitergeben.
Abonnieren Sie unsere Updates Seien Sie unter den Ersten, die exklusive Einblicke in die IT, die Innovationen und Best Practices erhalten.
* Pflichtfelder
Der Schutz Ihrer Privatsphäre ist uns wichtig. Wir werden Ihre Informationen niemals weitergeben.
Subscribe to our Vacancies Please fill in this quick form to be among the first to receive our updates.
* Required fields
Your privacy is important to us. We will never share your data.
Abonnieren Sie unsere Updates Seien Sie unter den Ersten, die exklusive Einblicke in die IT, die Innovationen und Best Practices erhalten.
* Pflichtfelder
Der Schutz Ihrer Privatsphäre ist uns wichtig. Wir werden Ihre Informationen niemals weitergeben.
Senden Sie eine E-Mail an person Bitte füllen Sie dieses kurze Formular aus, um unseren Experten direkt zu kontaktieren.
* Pflichtfelder
Der Schutz Ihrer Privatsphäre ist uns wichtig. Wir werden Ihre Informationen niemals weitergeben.
Infopulse - Expert Software Engineering, Infrastructure Management Services
Read the Full Case Study Don't miss the most interesting part of the story!
Submit this quick form to see the rest and to freely access all case studies on our website.
* Required fields
Der Schutz Ihrer Privatsphäre ist uns wichtig. Wir werden Ihre Informationen niemals weitergeben.

Überwachung des HTTPS-Datenverkehrs zwischen einem Android-Gerät und einem externen Server

Manchmal ist es interessant zu sehen, was unterschiedliche Android-Anwendungen über die HTTP- und HTTPS-Protokolle austauschen. Bei der Entwicklung der eigenen Software ist es manchmal praktisch, den gesamten Datenverkehr in Echtzeit beobachten zu können. Zur Lösung dieser Aufgaben sind viele verschiedene und gute Anwendungen entwickelt worden, z.B. Charles oder Fiddler2. Eigentlich gibt es mehr davon, doch nur die beiden Erwähnten decken sowohl HTTP als auch HTTPS ab.

Schwierigkeiten erscheinen bei der Überwachung des Datenverkehrs zwischen einem Android-Gerät und einem externen Server. Mit dem codierten (HTTP-) Verkehr ist alles ziemlich offensichtlich (hier ist eine Anleitung) — externe Links sind mit Fiddler2 erlaubt, in Android ist die Adresse unserer Maschine mit Fiddler2 als Server festgelegt — und voila, alles ist ok und läuft. Aber es hat bei mir etwas länger gedauert, bis die Überwachung des HTTPS-Datenverkehrs eingerichtet war.

Theorie

Also, was ist das Problem? Das Problem ist, dass der Client bei HTTPS standardmäßig überprüft, ob der Server, mit dem die Verbindung hergestellt wird, der richtige ist. Zu diesem Zweck werden Zertifikate verwendet. Also hat der reale Server, natürlich, ein echtes Zertifikat, das der offenen URL entspricht, während unser Proxy keins hat. Um das Problem in Desktop-Betriebssystemen zu umgehen, bietet Fiddler2 die Möglichkeit, ein gefälschtes Zertifikat zu generieren und es bei den vertrauenswürdigen Zertifikaten zu importieren — jetzt wird der Client immer glauben, dass die Verbindung zu Fiddler2 ziemlich sicher ist. Leider kaufen mobile Geräte einem diese Fälschung nicht ab.

In erster Linie ist es unmöglich, Zertifikate bei Android-Betriebssystemen zu importieren, die älter als v.4.0 sind. Es gibt einige zweifelhafte Optionen mit gerouteten Geräten, aber diese passen nicht zu uns. Zweitens ist es sogar unmöglich, ein Fiddler2-Zertifikat bei Android 4.0 zu importieren. Die Sache ist, dass das standardmäßig generierte Zertifikat einige Sicherheitskriterien von Android nicht erfüllt und daher nicht installiert werden kann. Es sollte auf besondere Weise generiert werden. Schließlich können wir es nicht für selbstverständlich halten, dass alle Anwendungen einem gefälschten Zertifikat trauen werden. Da gibt es einige Feinheiten.

Verwendung

  1. Nehmen Sie ein Gerät mit Android 4.0 oder einer aktuelleren Version. Nein, ein 2.3-Gerät wird nicht passen. Ja, ein 4.0-Emulator wird passen.
  2. Installieren Sie die neueste Version von Fiddler2 auf Ihrem PC.
  3. Installieren Sie Spezialbibliotheken, um Android-kompatible Sicherheitszertifikate (hier) zu generieren.
  4. Exportieren Sie das Sicherheitszertifikat von Fiddler2 («Tools> Fiddler-Optionen> HTTPS> Root-Zertifikat auf den Desktop exportieren»). Speichern Sie es auf Ihrem Speichermedium im Root-Verzeichnis (oder in Ihrem Emulator, wenn Sie einen verwenden).
  5. Fügen Sie das Sicherheitszertifikat zu den vertrauenswürdigen bei Android («Einstellungen> Sicherheit> Installieren von der SD-Karte») hinzu.
  6. Überwachung des HTTPS-Datenverkehrs zwischen einem Android-Gerät und einem externen Server - Infopulse - 188422

  7. Starten Sie Fiddler2, erlauben Sie Remote-Verbindungen in den Optionen.
  8. Überwachung des HTTPS-Datenverkehrs zwischen einem Android-Gerät und einem externen Server - Infopulse - 125890

  9. Geben Sie die Adresse des PCs mit Fiddler2 als Proxy in den Netzwerkeinstellungen bei Android ein.
  10. Überwachung des HTTPS-Datenverkehrs zwischen einem Android-Gerät und einem externen Server - Infopulse - 195288

  11. Öffnen Sie das Browser bei Android, geben Sie google.com ein und beobachten Sie die Anfrage und Antwort im Fiddler2-Fenster.
  12. Überwachung des HTTPS-Datenverkehrs zwischen einem Android-Gerät und einem externen Server - Infopulse - 161877

Also, mit dem Browser hat es geklappt, aber leider sind nicht alle Anwendungen so zutraulich wie der Browser. Meine Software z.B., wo ich den Apache HTTP Client verwendet habe, hat das nicht geschluckt, der Apache-Client könnte sich kaum weniger um die betriebssystemkonforme Zertifikate kümmern. In diesem Fall hatte ich diese Überprüfung manuell wie folgt deaktivieren müssen:

Protocol.registerProtocol("https", new Protocol("https", new EasySSLProtocolSocketFactory(), 443));

wo EasySSLProtocolSocketFactory erlaubt, allen Zertifikaten zu vertrauen.

Nicht sicher! Nur fürs Debuggen!

Danach wurde der Datenverkehr meiner Anwendung in Fiddler2 erfolgreich sichtbar.

Newsletter abonnieren