it-swarm.com.de

Gibt es einen Grund, HTTPS auf einer Website nicht durchzusetzen?

Eine Website, die ich häufig besuche, hat sich endlich entschlossen, TLS auf ihren Servern zu aktivieren, nur um es nicht zu beauftragen, wie es viele Websites da draußen tun. Der Betreuer behauptet, dass TLS muss optional sein muss. Warum?

Auf meiner eigenen Website habe ich lange Zeit mandatierte TLS und HSTS mit langen Zeiträumen eingerichtet, und die schwächeren Cipher Suites sind deaktiviert. Der Klartextzugriff wird garantiert mit einem HTTP 301 auf die TLS-geschützte Version beschränkt. Beeinträchtigt dies meine Website negativ?

49
Maxthon Chan

Es gibt mehrere gute Gründe, TLS zu verwenden

(und nur wenige marginale Gründe, dies nicht zu tun).

  • Wenn die Site über eine Authentifizierung verfügt, verwenden Sie HTTP Expose, um Sitzungen und Kennwörter zu stehlen.
  • Selbst auf statischen, lediglich informativen Websites stellt die Verwendung von TLS sicher, dass niemand die Daten manipuliert hat.

  • Seit Google I/O 2014 hat Google mehrere Schritte unternommen, um alle Websites zur Verwendung von HTTPS zu ermutigen:

    • Google hat Webmastern geholfen, ihre Server sicherer zu konfigurieren, aber auch HTTPS als Ranking-Signal verwendet.
    • In jüngerer Zeit hat Google Chrome damit begonnen , HTTP-Sites als nicht sicher , als Teil eines langfristigen Plans zum Markieren aller HTTP-Sites zu markieren als nicht sicher.
    • Google Chrome In der Vorlesung des Entwicklerteams Mythbusting HTTPS wird ihre Haltung klar zum Ausdruck gebracht.
  • Der Mozilla-Sicherheitsblog hat außerdem angekündigt, nicht sicheres HTTP zu verwerfen, indem alle neuen Funktionen nur für sichere Websites verfügbar gemacht werden und schrittweise Auslaufen des Zugriffs auf Browserfunktionen für nicht sichere Websites, insbesondere Funktionen, die die Sicherheit und den Datenschutz der Benutzer gefährden.

Es gibt auch mehrere gute Gründe, TLS durchzusetzen

Wenn Sie bereits ein weithin vertrauenswürdiges Zertifikat haben, warum nicht immer verwenden? Praktisch alle aktuellen Browser unterstützen TLS und haben Stammzertifikate installiert. Das einzige Kompatibilitätsproblem, das ich seit Jahren tatsächlich gesehen habe, waren Android Geräte und Fehlende Zwischenzertifizierungsstelle , da Android nur Stammzertifizierungsstellen vertraut direkt. Dies kann leicht verhindert werden, indem der Server so konfiguriert wird, dass die Zertifikatskette an die Stammzertifizierungsstelle zurückgesendet wird.

Wenn Ihr Betreuer weiterhin HTTP-Verbindungen ohne direkten 301 Moved Permanently Zulassen möchte, z. B. um den Zugriff von einigen wirklich alten Browsern oder Mobilgeräten aus sicherzustellen , kann der Browser dies nicht wissen dass Sie sogar HTTPS konfiguriert haben . Außerdem sollten Sie HTTP Strict Transport Security (HSTS) nicht ohne 301 Moved Permanently Bereitstellen:

7.2.  HTTP Request Type

   If an HSTS Host receives a HTTP request message over a non-secure
   transport, it SHOULD send a HTTP response message containing a status
   code indicating a permanent redirect, such as status code 301
   (Section 10.3.2 of [RFC2616]), and a Location header field value
   containing either the HTTP request's original Effective Request URI
   (see Section 9 "Constructing an Effective Request URI") altered as
   necessary to have a URI scheme of "https", or a URI generated
   according to local policy with a URI scheme of "https").

Das Problem verschiedener Sites, die für beide Protokolle konfiguriert sind, wird von The Tor Project und der Electronic Frontier Foundation erkannt und von einem Multibrowser behoben. HTTPS Everywhere -Erweiterung:

Viele Websites im Web bieten eine eingeschränkte Unterstützung für die Verschlüsselung über HTTPS, erschweren jedoch die Verwendung. Beispielsweise können sie standardmäßig unverschlüsseltes HTTP verwenden oder verschlüsselte Seiten mit Links füllen, die auf die unverschlüsselte Site zurückgehen.

Gemischter Inhalt war auch ein großes Problem aufgrund möglicher XSS-Angriffe auf HTTPS-Sites durch Ändern von JavaScript oder CSS, die über eine nicht sichere HTTP-Verbindung geladen wurden. Daher warnen heutzutage alle gängigen Browser Benutzer vor Seiten mit gemischtem Inhalt und lehnen es ab, diese automatisch zu laden. Dies macht es schwierig, eine Site ohne die 301 - Weiterleitungen auf HTTP zu verwalten: Sie müssen sicherstellen, dass jede HTTP-Seite nur HTTP-Contect lädt ( CSS, JS, Bilder usw.) und jede HTTPS-Seite lädt nur HTTPS-Inhalte. Das ist extrem schwer mit dem gleichen Inhalt auf beiden zu erreichen.

8
Esa Jokinen

In der heutigen Zeit sind TLS + HSTS Marker dafür, dass Ihre Website von Fachleuten verwaltet wird, denen vertraut werden kann, dass sie wissen, was sie tun. Dies ist ein neuer Mindeststandard für Vertrauenswürdigkeit, wie Google belegt, dass Websites, die dies tun, ein positives Ranking liefern.

Am anderen Ende ist maximale Kompatibilität. Es gibt immer noch ältere Kunden, insbesondere in Teilen der Welt, die nicht die USA, Europa oder China sind. Einfaches HTTP wird immer funktionieren (obwohl es nicht immer gut funktioniert ; das ist eine andere Geschichte).

TLS + HSTS : Für Suchmaschinenranking optimieren
Plain HTTP : Auf Kompatibilität optimieren

Kommt darauf an, was für dich wichtiger ist.

62
sysadmin1138

Es gibt einen guten Grund für einfache schreibgeschützte Websites, HTTPS nicht zu verwenden.

  • Web-Caches können keine Bilder zwischenspeichern, die über HTTPS transportiert werden.
  • Einige Teile der Welt haben sehr langsame internationale Verbindungen, hängen also von den Caches ab.
  • Das Hosten von Bildern aus einer anderen Domain erfordert Fähigkeiten, die die Betreiber für kleine schreibgeschützte Websites nicht erwarten können.
30
Ian Ringrose

Der Betreuer behauptet, dass TLS optional sein muss. Warum?

Um die Antwort auf diese Frage wirklich zu kennen, müssen Sie sie stellen. Wir können jedoch einige Vermutungen anstellen.

In Unternehmensumgebungen installiert die IT-Abteilung häufig eine Firewall, die eingehenden und ausgehenden Datenverkehr auf Malware, verdächtige CnC-ähnliche Aktivitäten, für die Arbeit als ungeeignet erachtete Inhalte (z. B. Pornografie) usw. überprüft. Dies wird viel schwieriger, wenn der Datenverkehr verschlüsselt wird. Es gibt im Wesentlichen drei mögliche Antworten:

  1. Geben Sie die Überwachung dieses Verkehrs auf.
  2. Installieren Sie eine Stammzertifizierungsstelle auf den Computern der Benutzer, damit Sie die MitM-Entschlüsselung und -Inspektion durchführen können.
  3. Großhandel blockiert verschlüsselten Verkehr.

Für einen betroffenen Systemadministrator ist keine dieser Optionen besonders attraktiv. Es gibt sehr viele Bedrohungen, die ein Unternehmensnetzwerk angreifen, und es ist ihre Aufgabe, das Unternehmen vor ihnen zu schützen. Das Blockieren sehr vieler Websites erhöht jedoch den Ärger der Benutzer, und die Installation einer Stammzertifizierungsstelle kann sich etwas unangenehm anfühlen, da dies Datenschutz- und Sicherheitsaspekte für Benutzer mit sich bringt. Ich erinnere mich, dass ich eine Sysadmin-Petition reddit gesehen habe (sorry, kann den Thread nicht finden), als sie HSTS zum ersten Mal einschalteten, weil er sich genau in dieser Situation befand und nicht alle reddit blockieren wollte, nur weil er vom Unternehmen dazu gezwungen wurde die porno-fokussierten Subreddits zu blockieren.

Die Räder der Technologie drehen sich weiter, und Sie werden viele finden, die argumentieren, dass diese Art von Schutz altmodisch ist und auslaufen sollte. Aber es gibt immer noch viele, die es praktizieren, und vielleicht sind es sie, mit denen sich Ihr mysteriöser Betreuer befasst.

Alles hängt von Ihren Sicherheitsanforderungen, der Auswahl der Benutzer und dem Risiko eines impliziten Downgrades ab. Das Deaktivieren der alten Chiffren auf der Serverseite ist größtenteils erforderlich, da Browser im Namen der Benutzererfahrung/Benutzerfreundlichkeit gerne auf der Client-Seite zu absolut schrecklichen Chiffren gelangen. Es ist natürlich auch sehr vernünftig, sicherzustellen, dass nichts von Ihnen, was abhängig von einem sicheren Kanal zum Benutzer ist, mit einer unsicheren Methode nicht erreicht werden kann.

Ich darf kein explizites Downgrade auf unsicheres HTTP durchführen, wenn ich der Meinung bin, dass in Ihrem Blog darüber geschrieben wird, warum Sie Python mehr als Ruby) mögen (ohne dies zu sagen , nur ein allgemeines Beispiel) Ich habe nichts dagegen, dass die Gespenster oder die Öffentlichkeit, auf die ich zugegriffen habe, mir ohne guten Grund in die Quere kommen, unter der Annahme, dass HTTPS für mich trivial sein wird.

Es gibt heutzutage eingebettete Systeme, die nicht in der Lage sind, TLS sofort zu verwenden, oder solche, die auf alten Implementierungen hängen bleiben (ich finde es schrecklich schlecht, dass dies so ist, aber als Power-User von [insert embedded einfügen) Gerät hier], ich kann das manchmal nicht ändern).

Hier ist ein unterhaltsames Experiment: Versuchen Sie, eine aktuelle Version von LibreSSL von der vorgelagerten OpenBSD-Site über HTTPS mit einer ausreichend alten TLS/SSL-Implementierung herunterzuladen. Das wirst du nicht können. Ich habe es neulich auf einem Gerät mit einem älteren OpenSSL-Build aus dem Jahr 2012 oder so versucht, weil ich dieses eingebettete System auf sicherere, neue Inhalte aus dem Quellcode aktualisieren wollte - ich habe nicht den Luxus eines vorgefertigten Pakets. Die Fehlermeldungen, als ich es versuchte, waren nicht gerade intuitiv, aber ich nehme an, es lag daran, dass mein älteres OpenSSL nicht die richtigen Dinge unterstützte.

Dies ist ein Beispiel, bei dem der Umzug durch das einzige HTTPS die Menschen tatsächlich schädigen kann: Wenn Sie nicht den Luxus neuerer vorgefertigter Pakete haben und das Problem selbst beheben möchten, indem Sie aus dem Quellcode erstellen, sind Sie gesperrt. Glücklicherweise können Sie im Fall LibreSSL auf die explizite Anforderung von HTTP zurückgreifen. Sicher, dies wird Sie nicht vor einem Angreifer bewahren, der Ihren Datenverkehr bereits neu schreibt, Quellpakete durch kompromittierte Versionen ersetzen und alle Prüfsummen in HTTP-Körpern neu schreiben kann, die die Pakete beschreiben, die auf den von Ihnen durchsuchten Webseiten zum Herunterladen verfügbar sind, aber es ist immer noch nützlich häufigerer Fall.

Die meisten von uns sind kein ungesicherter Download, der nicht im Besitz eines APT (Advanced Persistent Thread: Sicherheitssprache für nationale Geheimdienste und andere äußerst gut ausgestattete Cyber-Bedrohungen) ist. Manchmal möchte ich nur zu wget einer einfachen Textdokumentation oder einem kleinen Programm, dessen Quelle ich schnell überprüfen kann (z. B. meine eigenen kleinen Dienstprogramme/Skripte auf GitHub), auf eine Box, die die neuesten Cipher Suites nicht unterstützt.

Persönlich würde ich Folgendes fragen: Ist Ihr Inhalt so, dass eine Person zu Recht entscheiden kann, ob ich damit einverstanden bin, öffentlich bekannt zu sein? Gibt es eine plausible Möglichkeit eines echten Risikos für nicht-technische Personen, die versehentlich für Ihre Inhalte auf HTTP heruntergestuft haben? Wägen Sie Ihre Sicherheitsanforderungen, die Anforderungen an den erzwungenen Datenschutz für Ihre Benutzer und das Risiko impliziter Herabstufungen gegen die Fähigkeit von Benutzern ab, die die Risiken verstehen, von Fall zu Fall eine fundierte Entscheidung zu treffen, um ungesichert zu bleiben. Es ist völlig legitim zu sagen, dass es für Ihre Website keinen guten Grund gibt, HTTPS nicht durchzusetzen - aber ich denke, es ist fair zu sagen, dass es immer noch gute Anwendungsfälle für einfaches HTTP gibt.

5
mtraceur

Hier wird viel darüber diskutiert, warum tls gut ist - aber das wurde nie wie im ursprünglichen Beitrag gefragt.

Maxthon stellte 2 Fragen:

1) Warum hat sich eine zufällige, nicht benannte Site entschieden, sowohl die http- als auch die https-Präsenz beizubehalten?

2) Gibt es negative Auswirkungen auf Maxthon, der nur 301 Antworten auf http-Anfragen liefert?

In Bezug auf die erste Frage wissen wir nicht, warum die Anbieter sowohl http- als auch https-Websites beibehalten haben. Es kann viele Gründe geben. Zusätzlich zu den Punkten zur Kompatibilität, zum verteilten Caching und zu einigen Hinweisen zur geopolitischen Zugänglichkeit gibt es auch Überlegungen zur Inhaltsintegration und zur Vermeidung hässlicher Browsermeldungen über den unsicheren Inhalt. Wie Alvaro betonte, ist TLS in Bezug auf die Sicherheit nur die Spitze des Eisbergs.

Die zweite Frage ist jedoch zu beantworten. Das Offenlegen eines Teils Ihrer Website auf Ihrer Website über http, wenn für den sicheren Betrieb tatsächlich https erforderlich ist, bietet einen ausnutzbaren Vektor für Angriffe. Es ist jedoch sinnvoll, dies beizubehalten, um festzustellen, wo der Datenverkehr fälschlicherweise an Port 80 auf Ihrer Site geleitet wird, und um die Ursache zu beheben. Das heißt, Es gibt sowohl negative Auswirkungen als auch die Möglichkeit positiver Auswirkungen. Das Nettoergebnis hängt davon ab, ob Sie Ihre Arbeit als Administrator ausführen.

Laut Sysadmin1138 wirkt sich https auf das SEO-Ranking aus. Während Google angegeben hat, dass es sich auf Rankings auswirkt, deuten die einzigen zuverlässigen Studien , die ich gesehen habe, darauf hin, dass der Unterschied gering ist. Dies wird nicht von Leuten unterstützt die es besser wissen sollten die behaupten, dass Websites mit dem höchsten Rang eher eine https-Präsenz haben, daher eine https-Präsenz , daher verbessert das Ranking.

3
symcbean

Es gibt nur sehr wenige gute Gründe für die Verwendung von HTTP anstelle von HTTPS auf einer Website. Wenn Ihre Website Transaktionen jeglicher Art abwickelt oder sensible oder persönliche Daten speichert, müssen Sie HTTPS unbedingt verwenden, wenn diese Daten sicher sein sollen. Der einzige vernünftige Grund, warum ich HTTPS nicht erzwingen würde, ist, wenn Ihre Website auf Caching angewiesen ist, da HTTPS nicht mit Caching funktioniert. Es lohnt sich jedoch oft, ein wenig Leistung zu opfern, um die Sicherheit Ihrer Website zu gewährleisten. Es ist auch möglich, dass Ihre Kunden HTTPS nicht unterstützen, aber 2017 sollten sie es wirklich tun.

1
Ken

Dies ist kein guter Grund, da dies bedeutet, dass Sie schlechte/defekte/unsichere Clients haben. Wenn jedoch automatisierte Prozesse über die vorhandenen http:// - URLs auf Ressourcen zugreifen, ist es möglich, dass einige davon Sie unterstützen nicht einmal https (z. B. Busybox wget, das intern keine TLS-Unterstützung bietet und diese erst kürzlich über einen untergeordneten OpenSL-Prozess hinzugefügt hat) und würden brechen, wenn sie eine Weiterleitung zu einem https erhalten würden URL, der sie nicht folgen können.

Ich wäre versucht, mit dieser Möglichkeit umzugehen, indem ich die Umleitungsregel schreibe, um unbekannte (oder bekannte) User-Agent-Zeichenfolgen von der Umleitung auszuschließen und sie auf den Inhalt über http zugreifen zu lassen, wenn sie möchten, damit alle tatsächlichen Browser davon profitieren können erzwungene https/hsts.

In der Vergangenheit musste ich HTTP anstelle von HTTPS verwenden, weil ich <embed> Seiten von anderen Stellen, die selbst über HTTP bereitgestellt wurden und ansonsten nicht funktionieren.

1
Algy Taylor