it-swarm.com.de

Wenn der Charles SSL-Proxy mir vertrauliche Daten anzeigt, sind diese Daten unsicher / offengelegt?

Heute habe ich eine Website erkundet, auf der die Noten der Schüler und alles, was mit der Schule zu tun hat, nachverfolgt werden können. Grundsätzlich wie ein Schulfortschritts-Tracker für Ihr Kind, der von 90% der Schulen in meinem Land verwendet wird.

Ich habe den Charles-Proxy gestartet, mein Telefon daran angeschlossen und das Stammzertifikat von Charles installiert, damit ich https verwenden kann (die Site verwendet es). Wie auch immer, ich habe mich auf der Website angemeldet und überprüft, was Charles aufgenommen hat.

Es wurde ein einfacher Ajax-Aufruf mit 4 Feldern erfasst, die alle Anmeldeinformationen enthalten. Hier ist ein Screenshot:

(enter image description here

Alles ist sogar beschriftet - uporabnik bedeutet "Benutzer" und geslo bedeutet "Passwort". Wenn ich das also richtig verstehe (ich bin wirklich wirklich nur ein Anfänger), kann es sich jeder ansehen, der es schafft, dies zu erfassen?

Ist dies nur mit einem Proxy möglich oder kann wireshark dies beispielsweise auch tun und nur Pakete über WLAN erfassen?

Sind meine Annahmen wahr und wenn ja, was soll ich dagegen tun?

22
K.Vovk

Sie scheinen grundlegend falsch zu verstehen, was TLS tut.

TLS verwendet den regulären einfachen HTTP-Verkehr, verschlüsselt ihn und fügt Integritätsprüfungen hinzu. Zusammen mit dem Zertifikat des Servers stellt dies sicher

  • Vertraulichkeit: Ein Angreifer, der den Netzwerkverkehr erfasst, kann den Inhalt der Kommunikation nicht lesen.
  • Integrität: Wenn ein Angreifer den Netzwerkverkehr ändert, führt dies zu Fehlern.
  • Authentizität: Sie können sicher sein, dass Ihr Kommunikationspartner der Server ist, mit dem Sie zu kommunizieren glauben. (Wir kommen gleich dazu.)

Wenn Sie sich die zugrunde liegende HTTP-Kommunikation ansehen, werden Ihr Benutzername und Ihr Kennwort im Klartext angezeigt, da Sie diese an den Server gesendet haben.

Was macht der Proxy jetzt?

Wenn Sie einen TLS-Proxy wie Charles verwenden, kommunizieren Sie im Wesentlichen mit dem Proxy und der Proxy kommuniziert mit dem Webserver. Was hindert einen Angreifer daran, nur einen TLS-Proxy zu verwenden? Die Urkunde!

Bei der Installation des TLS-Proxys hat der Proxy ein neues CA-Zertifikat generiert, das Sie dann importiert haben. Dies bedeutet, dass Sie dem Proxy die Berechtigung erteilt haben, ein Zertifikat für jede Domäne zu erstellen. Um ein Proxy zu sein, ist dies in Ordnung.

Ein Angreifer müsste Sie jedoch dazu bringen, sein Zertifikat zu importieren (oder Ihren privaten Schlüssel zu stehlen!), Damit Sie den Zertifikaten seines Proxys vertrauen.

Ist das jetzt ein Problem?

Nein, ist es nicht. Alles funktioniert wie es soll. Am Ende des Tages, wenn Sie Ihren Benutzernamen und Ihr Passwort an eine Website senden, muss diese irgendwie diese Website tatsächlich erreichen.

48
MechMK1

Wie gehen Ihrer Meinung nach die meisten Websites mit der Anmeldung um? Durch das Senden von Benutzernamen und Kennwörtern in POST Daten und das anschließende Erkennen des angemeldeten Benutzers mit Sitzungscookies. Es gibt keinen Grund, die Anmeldeinformationen auf der Clientseite zu hashen, und noch weniger, die Variablennamen zu verschleiern: Es wäre Ebenso einfach ist es herauszufinden, dass uporabnik oder ugcbuzsq eine Variable ist, die Benutzernamen trägt.

Aus diesem Grund wird die Verbindung mit TLS verschlüsselt, und aus diesem Grund konnten Sie diese Informationen vor der Installation des Stammzertifikats des Charles-Proxys nicht sehen.

4
Esa Jokinen