Ein Browser, der zuerst http:// eingibt und nach einer Weiterleitung auf https:// landet, hat bereits eine Anfrage im Klartext gesendet, und ein VPN ändert daran nichts. Der Tunnel schützt die Strecke vom Client zum Ausgangsknoten; Es verschlüsselt nichts oberhalb der Transportschicht, sodass ein Beobachter zwischen dem Ausgang und dem Ursprung immer noch den Klartext-Sprung sieht. HTTPS als erste Anfrage festzulegen, ist eine clientseitige Änderung mit drei Teilen: einer echten HTTPS-Adresse, dem Upgrade-Modus des Browsers und der eigenen Richtlinie der Site. Die folgenden Schritte sind in der Reihenfolge, die ich verwende, jeweils mit einer Überprüfung, die Ihnen sagt, ob sie ausgeführt wurde.

Schritt 1: Bestätigen Sie, was die erste Anfrage tatsächlich ist

Bevor Sie etwas ändern, schauen Sie sich an, was der Browser sendet. Öffnen Sie das Netzwerkfenster mit der aus einem kalten Cache neu geladenen Seite und lesen Sie die erste Zeile: Wenn das Schema http ist und der Status 301 oder 308 ist, ist alles nach dieser Zeile eine zweite Anfrage. curl -sS -o /dev/null -w '%{http_code} %{url_effective}\n' http://example.com reproduziert die gleiche Sequenz außerhalb des Browsers und gibt die URL aus, auf der Sie gelandet sind.

Zwei Ergebnisse sind möglich und erfordern unterschiedliche Lösungen. Wenn die Site HTTPS auf demselben Host bereitstellt, besteht die Lösung darin, die Veröffentlichung des HTTP-Formulars zu stoppen: Aktualisieren Sie das Lesezeichen, den Wiki-Link, die Desktop-Verknüpfung und die E-Mail-Vorlage, auf die die Leute klicken. Wenn die Site überhaupt kein HTTPS bereitstellt, wird sie durch keine Browsereinstellung erstellt, und die ehrliche Antwort ist, dass das Ziel das Problem ist. Überdecken Sie den zweiten Fall nicht mit einer Ausnahme, da eine Zertifikatausnahme auf einer Kontoseite ein Transportproblem in ein Problem mit den Anmeldeinformationen umwandelt. Notieren Sie sich, in welchem Fall Sie sich befinden, bevor Sie eine Einstellung berühren.

Schritt 2: Aktivieren Sie den Nur-HTTPS-Modus des Browsers

Der Upgrade-Modus ist der zweite Teil und die Modi sind nicht austauschbar. Überprüfen Sie, was Ihr System tut, bevor Sie es aktivieren: stillschweigendes Upgrade, Upgrade mit Warnung oder Ladeverweigerung.

In Firefox befinden sich die Steuerelemente hinter about:config und auf der Seite mit den Datenschutzeinstellungen, mit dom.security.https_only_mode als Schalter und Ausnahmen pro Site, die über das Vorhängeschloss-Menü verwaltet werden. In Chrome und Edge findet sich die gleiche Idee unter „Einstellungen“, „Datenschutz und Sicherheit“, „Sicherheit“ mit der Bezeichnung „Immer sichere Verbindungen verwenden“. Wie auch immer die Bezeichnung lautet, überprüfen Sie das Verhalten gegenüber einem Host, der nur auf Port 80 antwortet, denn ein Modus, der aktualisiert und dann stillschweigend zurückfällt, ist nicht der Schutz, den Sie Ihrer Meinung nach aktiviert haben. In der Firefox HTTPS-Only-Dokumentation werden das Upgrade-, Warn- und Ausnahmeverhalten für diesen Browser erläutert.

Schritt 3: Reparieren Sie die Ressourcen, nicht nur die Adressleiste

Wenn ein Upgrade fehlschlägt, lesen Sie den genauen Fehler anstelle der Adressleiste. Ein Host ohne HTTPS-Listener, ein Hostname, der nicht mit dem Zertifikat übereinstimmt, und eine abgelaufene Kette erzeugen unterschiedliche Nachrichten und gehören unterschiedlichen Besitzern. Nur das erste ist eine serverseitige Lücke; das zweite ist normalerweise ein Lesezeichen, das nie aktualisiert wurde; Das dritte ist ein Erneuerungsproblem, für das die VPN-Verbindung keine Rolle spielt.

Fügen Sie einer Kontoseite keine Zertifikatausnahme hinzu, da das VPN aktiviert ist. Die Ausnahme deaktiviert die Prüfung, die genau das Abfangen erfasst hätte, das ein VPN verhindern soll.

Der dritte Teil befindet sich innerhalb der Seite und wird von den Leuten vermisst. Eine Seite, die über HTTPS geladen wird, kann weiterhin Bilder, Schriftarten oder Skripte von einer http-URL abrufen, und der Browser blockiert sie entweder oder stuft die Sicherheitsanzeige für die gesamte Seite herab. Überprüfen Sie die fehlgeschlagenen Anfragen im Netzwerkbereich und korrigieren Sie die Ressourcenverweise bei ihrem Besitzer, anstatt davon auszugehen, dass die Adressleiste jede Anfrage beschreibt. Auf einer von Ihnen betriebenen Website bedeutet das, dass Sie die gespeicherten URLs im CMS oder in der Vorlage korrigieren, anstatt sie im Browser neu zu schreiben. Wenn Sie die Quelle nicht ändern können, erfassen Sie den gemischten Inhalt als bekannte Lücke, da ein Vorhängeschloss über einer Seite, die Klartextressourcen abruft, ein falsches Signal ist.

Schritt 4: Was HSTS hinzufügt und was nicht

HSTS ist eine Site-Richtlinie und keine Browsereinstellung und es ist hier der einzige Mechanismus, der ein eingegebenes http:// in einem neuen Profil überlebt. Sobald ein Browser einen Strict-Transport-Security-Header für einen Host gesehen hat, schreibt er spätere Anfragen vor dem Senden in https um, was genau die gewünschte Eigenschaft ist. Es passiert nichts für einen Host, den der Browser noch nie besucht hat, und nichts für einen anderen Hostnamen, der dieselbe Anwendung bedient.

Überprüfen Sie mit curl -sSI https://example.com | grep -i strict-transport-security, was der Ursprung sendet. Ein fehlender Header ist eine Serveränderung und kann nicht von einem Client installiert werden. Wenn es vorhanden ist, lesen Sie max-age und ob includeSubDomains festgelegt ist, da zwischen Besuchen ein kurzes maximales Alter abläuft und ein fehlendes includeSubDomains jede Subdomain ungeschützt lässt. RFC 6797 definiert, wie ein Benutzeragent die Richtlinie anwendet und was er ignorieren darf. Das Vorladen ist eine separate Verpflichtung, überprüfen Sie daher den Status über die hstspreload.org-API, bevor Sie jemandem versprechen, dass eine Domain auf der Liste steht.

Überprüfung und Rollback

Rollback ist für die Client-Einstellungen günstig und für HSTS teuer. Durch Deaktivieren des Nur-HTTPS-Modus wird das vorherige Verhalten sofort wiederhergestellt, bei einer langen Höchstaltersgrenze ist dies nicht der Fall, und Besucher, die es bereits erhalten haben, führen das Upgrade fort, bis es abläuft.

Überprüfen Sie also die Reihenfolge, bevor Sie es als erledigt bezeichnen. Laden Sie aus einem kalten Cache neu und bestätigen Sie, dass die erste Anfrage im Netzwerkfenster https ist und keine vorherige Umleitung erfolgt. Überprüfen Sie dann eine Subdomain, denn bei includeSubDomains erweisen sich diese Richtlinien normalerweise als enger als angenommen. Überprüfen Sie dann eine Seite, die Assets von Drittanbietern abruft, da gemischter Inhalt der Fehler ist, der jede andere Korrektur übersteht.

Wenn die erste Anfrage nach all dem immer noch http ist, ist der Client nicht mehr die Variable: Der Link, auf den die Leute klicken, ist es. Durchsuchen Sie die von Ihnen kontrollierten Orte nach der http-Form des Hostnamens, aktualisieren Sie sie und testen Sie sie erneut mit demselben Cold-Cache-Neuladen. Halten Sie die VPN-Frage durchgehend getrennt, da der Tunnel ändert, wer die Anfrage sehen kann und nie ändert, ob die Anfrage verschlüsselt ist. Die Zeile, die in das Ticket eingefügt werden muss, lautet, dass die erste Anfrage ausschlaggebend ist und eine Weiterleitung nur eine Quittung für eine bereits gesendete Anfrage ist.

Ähnliche Artikel