Ich verwende Charles Proxy, um den Datenverkehr meiner Android-Apps zu überprüfen. Ich habe das Telefon so konfiguriert, dass der gesamte Datenverkehr über Charles übertragen wird, der auf meinem PC installiert ist.
Bis auf den Websocket-Verkehr hat bisher alles funktioniert (HTTP / HTTPS-Verkehr). Ich konnte es in Charles und Fiddler nicht inspizieren. Zunächst schlägt die CONNECT-Anforderung wie folgt fehl:
URL https://184.73.XX.XX/
Status Failed
Failure Invalid first line in request
Response Code -
Protocol HTTP/1.0
Method CONNECT
Content-Type -
Client Address /192.168.0.10
Remote Address 184.73.XX.XX/184.73.XX.XX
Unmittelbar nach dieser Anforderung wird eine zusätzliche Anforderung zum Aktualisieren der Verbindung gesendet, die wie in der Antwort dargestellt erfolgreich zu sein scheint:
HTTP/1.1 101 Switching Protocols
Server: nginx
Date: Sun, 16 Feb 2014 02:04:33 GMT
Connection: upgrade
Upgrade: websocket
Sec-WebSocket-Accept: CKm+rgmiltNrbQvwU2HzKHzr2eM=
Danach wird der Datenverkehr von der App nicht mehr angezeigt, obwohl die Aktivität fortgesetzt wird. Was ist also mit Websocket-Verkehr, der nicht vom Proxy erfasst wird? Wie kann ich es auch erfassen, um zu sehen, was hin und her gesendet wird?
Ich habe Wireshark ausprobiert und sehe, dass der TLS-Verkehr nach der CONNECT / Upgrade-Anforderung fortgesetzt wird, aber ich weiß nicht, wie ich die Pakete in etwas rekonstruieren kann, das ich verstehen kann, und den TLS-verschlüsselten Verkehr entschlüsseln kann.