
Ich verwende Wireshark, um den Webverkehr zu analysieren.
Wenn ich meinen Webbrowser öffne und die Adresse stackexchange.com eingebe, führt er zuerst eine DNS-Abfrage aus, erhält eine Antwort und sendet dann ein TCP-Syn-Paket an die richtige IP-Adresse an Port 80.
Aber wenn ich www.paypal.com eingebe, passiert dasselbe, aber das TCP-Syn-Paket wird direkt an Port 443 gesendet.
Die DNS-Antwort scheint keinen Zielport zu enthalten und es findet auch keine Protokollverhandlung zwischen meinem Browser und der Zielsite statt.Woher erkennt mein Browser den Zielport?
Beachten Sie, dass ich nicht eintippehttp://stackexchange.comoderhttps://www.paypal.com, sondern einfach stackexchange.com und www.paypal.com.
Antwort1
Ihr Browser merkt sich den Port und das Protokoll aus der vorherigen Interaktion mit der Site.
Paypal verwendet HTTP Strict Transport Security. Das bedeutet, dass der Server (möglicherweise über Port 80) einen Antwortheader gesendet hat, der Folgendes enthält, Strict-Transport-Security:max-age=63072000
bevor Sie überhaupt mit der Suche begonnen haben. Das angezeigte Alter wird in Sekunden angegeben. In den nächsten zwei Jahren nach einem Besuch von Port 80 muss der Browser also nicht erneut zu Port 80 gehen; er sollte zu Port 443 gehen. Tatsächlich erhalten nachfolgende Besuche von Port 443 dieselbe Anweisung, sodass sie für Personen, die Paypal jedes Jahr verwenden, unbegrenzt gilt.
Dies ist eine Verbesserung gegenüber dem vorherigen Schema, bei dem jede Anfrage an Port 80 eine Umleitung auf Port 443 erhielt, der langsamer war. Die Verwendung von Umleitungen war auch weniger sicher, da es dem Browser nichts ausmachte, wenn Paypal (oder vielmehr ein MITM-Angreifer, der sich als Paypal ausgab) bei Verwendung von Umleitungen plötzlich von HTTPS auf HTTP umstellte. Unter HTTP Strict Transport Security wird diese Art von Angriff viel auffälliger sein, da der Angreifer gezwungen wäre, HTTPS zu verwenden, um mit dem Browser zu kommunizieren, er jedoch keinen Zugriff auf ein an Paypal ausgestelltes HTTPS-Serverzertifikat hätte.
Antwort2
Der Browser versucht es normalerweise zuerst mit HTTP und wird dann zu HTTPS umgeleitet. Das ist der häufigste Fall, aber nicht der einzige.
Chrome und Firefox unterstützen das Konzept vonHTTP Strikte TransportsicherheitPreload-Listen sind Listen von Sites, die nur über HTTPS kontaktiert werden sollten, auch wenn auf sie mit einer HTTP-URL verwiesen wird.
Nähere Informationen finden SieHier.
Antwort3
Google Chrome, Mozilla Firefox und Internet Explorer/Microsoft Edge umgehen diese Einschränkung, indem sie eine „HSTS-vorinstallierte Liste“ implementieren, eine Liste, die bekannte Websites enthält, die HSTS unterstützen. Die Anfrage Ihres Browsers geht also direkt über https an die jeweilige HSTS-konfigurierte Serverdomäne.
Andernfalls müsste eine http-Anfrage vorliegen und der Server hätte auf https umleiten müssen (bei HSTS antwortet der Server mit Header – verwenden Sie nur HTTPS: Strict-Transport-Security: max-age=31536000).
Antwort4
Der Webbrowser fordert immer den Port 80 an, sodass der gesamte SSL-Dienst auf der Serverseite gilt. Wenn ein Client eine Verbindung zu Ihrem Dienst herstellt, leitet der Server die Verbindung auf eine sichere Verbindung oder „https“ um.