Anmeldeinformationen für die HTTP-Basisauthentifizierung, die in URL und Verschlüsselung übergeben wurden


250

Ich habe eine Frage zu den Anmeldeinformationen für die HTTPS- und HTTP-Authentifizierung.

Angenommen, ich sichere eine URL mit HTTP-Authentifizierung:

<Directory /var/www/webcallback>
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /var/www/passwd/passwords
Require user gooduser
</Directory>

Ich greife dann von einem Remote-System über HTTPS auf diese URL zu und übergebe die Anmeldeinformationen in der URL:

https://gooduser:secretpassword@www.example.com/webcallback?foo=bar

Werden der Benutzername und das Passwort automatisch SSL-verschlüsselt? Gilt das auch für GETs und POSTs? Es fällt mir schwer, mit diesen Informationen eine glaubwürdige Quelle zu finden.



Sehr alte Frage, aber dennoch: Dieser Ansatz wurde von ietf.org/rfc/rfc3986.txt abgelehnt : "Die Verwendung des Formats" Benutzer: Kennwort "im Feld" Benutzerinfo "ist veraltet."
Madbreaks

Antworten:


237

Werden der Benutzername und das Passwort automatisch SSL-verschlüsselt? Gleiches gilt für GETs und POSTs

Ja Ja Ja.

Die gesamte Kommunikation (außer für die DNS-Suche, wenn die IP für den Hostnamen noch nicht zwischengespeichert ist) wird verschlüsselt, wenn SSL verwendet wird.


25
+1. GETs und POSTs, einschließlich der URL, werden verschlüsselt. Ich werde nur hinzufügen - Tools wie Firebug- und Tamper-Daten können die unverschlüsselten Ergebnisse nur anzeigen, weil sie Teil des Browsers sind und daher die Anforderung abfangen können, bevor sie verschlüsselt wird. Einmal über das Kabel gesendet, wird alles verschlüsselt.
Sripathi Krishnan

21
Um klar zu sein, ist alles außer der Domain verschlüsselt. Wenn jemand darüber stolpert und eine detailliertere Antwort
wünscht

7
Der Vollständigkeit halber unterstützt " Internet Explorer keine Benutzernamen und Kennwörter in Website-Adressen (HTTP- oder HTTPS-URLs) ". Es scheint, dass nur Internet Explorer-Versionen 3.0 bis 6.0 die folgende Syntax für HTTP- oder HTTPS-URLs unterstützen: http (s): //username:password@server/resource.ext Hinweis: Diese Änderung des Standardverhaltens wirkt sich nicht auf andere Protokolle aus. Beispielsweise können Sie nach der Installation des Sicherheitsupdates 832894 weiterhin Benutzerinformationen in eine FTP-URL aufnehmen.
Luke

Diese Antwort enthält weder eine glaubwürdige Quelle noch weitere Erklärungen.
Jens Piegsa

26

Ja, es wird verschlüsselt.

Sie werden es verstehen, wenn Sie einfach überprüfen, was hinter den Kulissen passiert.

  1. Der Browser oder die Anwendung zerlegt zuerst die URL und versucht, die IP des Hosts mithilfe einer DNS-Abfrage abzurufen. dh: Es wird eine DNS-Anfrage gestellt, um die IP-Adresse der Domain zu finden (www.example.com). Bitte beachten Sie, dass über diese Anfrage keine weiteren Informationen gesendet werden.
  2. Der Browser oder die Anwendung initiiert eine SSL-Verbindung mit der IP-Adresse, die von der DNS-Anforderung empfangen wurde. Zertifikate werden ausgetauscht und dies geschieht auf Transportebene. Zu diesem Zeitpunkt werden keine Informationen auf Anwendungsebene übertragen. Denken Sie daran, dass die Standardauthentifizierung Teil von HTTP ist und HTTP ein Protokoll auf Anwendungsebene ist. Keine Transportschichtaufgabe.
  3. Nach dem Herstellen der SSL-Verbindung werden nun die erforderlichen Daten an den Server übergeben. dh: Der Pfad oder die URL, die Parameter und der Benutzername und das Passwort für die Basisauthentifizierung.

-5

Nicht unbedingt wahr. Es wird auf dem Draht verschlüsselt, landet jedoch weiterhin im Klartext des Protokolls


17
Welcher Webserver protokolliert den Benutzernamen und die Kennwörter von Anforderungen? Das wäre ein verdammt unsicherer Webserver.
Andrew Barber

1
Ja das ist einfach nicht wahr. Es ist wahrscheinlich möglich, Apache anzuweisen, diese Informationen zu protokollieren, dies ist jedoch standardmäßig nicht der Fall.
DougW

27
@Brandon dachte wahrscheinlich "in URL", was in der Abfragezeichenfolge gemeint ist (z. B.? User = bob & pw = 123hackmeplz). Das könnte in den Serverprotokollen landen.
Mike Graf

5
Verwandte Themen: "Wenn Sie diese URL auf dem Client mit beispielsweise curl aufrufen, werden der Benutzername und das Kennwort in der Prozessliste deutlich sichtbar und möglicherweise in der Bash-Verlaufsdatei angezeigt." - stackoverflow.com/a/4981309
Hawkeye Parker

1
@ zb226 Der Fragesteller hat ausdrücklich erwähnt, dass die Anmeldeinformationen in die URL eingefügt wurden.
Lambart
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.