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:[email protected]/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.

rcourtna
quelle
1
Verwandte: Benutzername und Passwort in https URL
Hawkeye Parker
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.

QUentin
quelle
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.
Ruchira Randana
quelle
-5

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

Brandon
quelle
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