HTTPS - URL sicher?

Raven280438

Erfahrenes Mitglied
Hi,

ich habe ein C#-Programm, in dem ich per HTTPS (System.Net.WebClient) eine Web-API auslesen.
Dazu muss ich in der URL u.A. auch das Passwort (als SHA1) übergeben.

Jetzt meine Frage: Ist das sicher? Wird die URL auch per HTTPS verschlüsselt oder kann man das SHA1-Passwort auslesen und damit unbefugt auf die Web-API zugreifen?


Gruß
 
Hi

ja, dagegen (Url lesen + Replay) ist HTTPS sicher.

Url-lesen:
HTTPS ist weniger ein geändertes HTTP, mehr eine Zusatzschicht zwischen TCP und HTTP. Bevor die eigentliche HTTP-Übertragung beginnt, vor dem allerersten Byte davon, wird das ganze Verschlüsselungszeug zwischen den zwei Computern ausgemacht, das für die Dauer der Verbindung verwendet werden soll (wobei da zwar paar Sachen mit Klartext übertragen werden, aber das ist so sinnvoll gemacht, dass es einem Mitleser nicht hilft).

Dann erst wird HTTP überhaupt relevant (das dann wirklich wie normales HTTP funktioniert, nur dass alles eben verschlüsselt Übertragen wird). Also die GET/POST-Parameter und Url der PHP-Seite (etc.) sind garantiert im verschlüsselten Bereich. Was in dem Zusammenhang öffentlich ist ist, an welchen Server die ganze Anfrage überhaupt geht (muss ja sein, weil die Übertragung sonst nicht funktionieren kann, ohne den Schlüssel zu kennen), daraus kann man in vielen Fällen auch die Domain ableiten (nur ohne genauen angefragten Dateinamen, und natürlich ohne Parameter).

Replay:
Die ganze verschlüsselte HTTPS-Übertragung kann man während der Übertragung mitlesen, in der verschlüsselten Form, nur hilfts nicht viel weil man eben nicht entschlüsseln kann. Was man (theoretisch) versuchen kann: Die verschlüsselte Anfrage später vom eigenen Computer aus noch einmal an den Server senden (der entschlüsselt, sieht wieder den richtige Passworthash und macht was er tun soll ein zweites Mal). Um Infos zurückzubekommen hilfts nicht viel (weil die auch wieder unlesbar für den Angreifer sind), aber wenn die HTTPS-Anfrage irgendwas mit dauerhaften Auswirkungen auf dem Server auslöst, könnte es ein Problem werden.

Bei HTTPS geht die Art von Angriff auch nicht, weil bei jeder Verbindung effektiv ein anderer Schlüssel zur Verschlüsselung verwendet wird (und die abgefangenen Daten in einer anderen Verbindung vom Server daher nicht richtig entschlüsselt werden können => nichts passiert). Der verwendete Schlüssel setzt sich dabei uA. aus dem Hauptschlüssel vom Zertifikat und einer Zufallszahl zusammen, letztere ist eine der Sachen, die beim HTTPS-Verbindungsaufbau ausgemacht werden (wie gesagt so, dass es einem Mitleser zu dem Zeitpunkt nicht hilft).
 

Neue Beiträge

Zurück