Wenn ich einen Server einrichten würde und über die SSL-Zertifikate verfügen würde, warum würde ich HTTPS nicht für die gesamte Site verwenden, anstatt nur für Käufe / Anmeldungen? Ich würde denken, es wäre sinnvoller, nur die gesamte Site zu verschlüsseln und den Benutzer vollständig zu schützen. Dies würde Probleme wie die Entscheidung, was gesichert werden muss, verhindern, da alles gesichert wäre, und es ist nicht wirklich eine Unannehmlichkeit für den Benutzer.
Wenn ich bereits ein HTTPS für einen Teil der Site verwendet habe, warum möchte ich es dann nicht für die gesamte Site verwenden?
Dies ist eine verwandte Frage: Warum wird https nur für die Anmeldung verwendet? , aber die Antworten sind nicht zufriedenstellend. Bei den Antworten wird davon ausgegangen, dass Sie https nicht auf die gesamte Site anwenden konnten.
Antworten:
Ich kann mir ein paar Gründe vorstellen.
quelle
t buy this explanation. 1) Don
verwende 2013 keinen Browser, der SSL nicht unterstützt. 2) Selbst Google verwendet derzeit SSL. 3) Richtig eingerichtet. Sie können den HTTP-Verkehr auf den richtigen https-Link umleiten.Zusätzlich zu den anderen Gründen (insbesondere in Bezug auf die Leistung) können Sie bei Verwendung von HTTPS nur eine einzelne Domain pro IP-Adresse * hosten.
Ein einzelner Server kann mehrere Domänen in HTTP unterstützen, da der Server- HTTP-Header dem Server mitteilt, mit welcher Domäne er antworten soll.
Bei HTTPS muss der Server dem Client sein Zertifikat während des ersten TLS-Handshakes (vor dem Start von HTTP) anbieten. Dies bedeutet, dass der Server- Header noch nicht gesendet wurde, sodass der Server nicht wissen kann, welche Domain angefordert wird und mit welchem Zertifikat (www.foo.com oder www.bar.com) er antworten soll.
* Fußnote: Technisch gesehen können Sie mehrere Domänen hosten, wenn Sie sie an verschiedenen Ports hosten. Dies ist jedoch im Allgemeinen keine Option. Sie können auch mehrere Domänen hosten, wenn Ihr SSL-Zertifikat über einen Platzhalter verfügt. Beispielsweise können Sie sowohl foo.example.com als auch bar.example.com mit dem Zertifikat * .example.com hosten
quelle
SSL / TLS wird fast nicht oft genug verwendet. HTTPS muss für die gesamte Sitzung verwendet werden. Zu keinem Zeitpunkt kann eine Sitzungs-ID über HTTP gesendet werden. Wenn Sie nur https zum Anmelden verwenden, verstoßen Sie eindeutig gegen die OWASP Top 10 für 2010 "A3: Broken Authentication and Session Management".
quelle
document.cookie
damit der Angreifer diesen zur Authentifizierung verwenden kann. Dieser Wert kann auch durch Abhören des Datenverkehrs ermittelt werden, den https stoppt. Ich bin mir nicht ganz sicher, worum es dir geht.Warum senden Sie nicht jeden Postversand per Einschreiben in einem manipulationssicheren undurchsichtigen Umschlag? Jemand von der Post hat immer das persönliche Sorgerecht dafür, so dass Sie ziemlich sicher sein können, dass niemand Ihre Post beschnüffelt. Offensichtlich ist die Antwort, dass einige E-Mails zwar die Kosten wert sind, die meisten E-Mails jedoch nicht. Es ist mir egal, ob jemand mein "Ich bin froh, dass du aus dem Gefängnis gekommen bist!" Postkarte an Onkel Joe.
Die Verschlüsselung ist nicht kostenlos und hilft nicht immer.
Wenn eine Sitzung (z. B. Einkaufen, Bankgeschäfte usw.) mit HTTPS beendet wird, gibt es keinen guten Grund, die gesamte Sitzung nicht so früh wie möglich zu HTTPS zu machen.
Meiner Meinung nach sollte HTTPS nur verwendet werden, wenn dies unvermeidlich erforderlich ist, entweder weil die Anforderung oder die Antwort vor Zwischen-Snooping geschützt werden muss. Schauen Sie sich als Beispiel die Yahoo! Startseite. Obwohl Sie angemeldet sind, erfolgt der größte Teil Ihrer Interaktion über HTTP. Sie authentifizieren sich über HTTPS und erhalten Cookies, die Ihre Identität belegen. Sie benötigen also kein HTTPS, um Nachrichten zu lesen.
quelle
You authenticate over HTTPS and get cookies that prove your identity, so you don't need HTTPS to read news stories.
Dies ist nicht der richtige Weg, um mit der Sitzungsauthentifizierung umzugehen. Cookies sollten mit dem SECURE-Flag gesetzt werden. Aber ignorieren Sie diesen schrecklichen Sicherheitshinweis für eine Sekunde ... Ihre Mail-Analogie ist aus einigen Gründen nicht wirklich korrekt. Eine davon ist, dass Sie normalerweise keine Exploits in Rücksendungen einfügen oder sich ungestraft als jemand anderes ausgeben oder eine "Ihre Sitzung abgelaufen" -Nachricht in die Rücksendung einfügen können, damit diese die für Yahoo! und ihre Bank.Der Hauptgrund, der über die Systemlast hinausgeht, ist, dass das namenbasierte virtuelle Hosting unterbrochen wird. Bei SSL handelt es sich um eine Site - eine IP-Adresse. Dies ist ziemlich teuer und schwieriger zu verwalten.
quelle
Für Verbindungen mit hoher Latenz erfordert der anfängliche TLS-Handshake zusätzliche Roundtrips, um die Zertifikatkette zu validieren (einschließlich des Sendens von Zwischenzertifikaten), sich auf Cipher Suites zu einigen und eine Sitzung einzurichten. Sobald eine Sitzung eingerichtet ist, können nachfolgende Anforderungen das Zwischenspeichern von Sitzungen verwenden, um die Anzahl der Roundtrips zu verringern. Selbst in diesem besten Fall gibt es jedoch immer noch mehr Roundtrips, als eine normale HTTP-Verbindung erfordert. Selbst wenn Verschlüsselungsvorgänge kostenlos waren, sind Roundtrips nicht möglich und können über langsamere Netzwerkverbindungen deutlich wahrgenommen werden, insbesondere wenn die Site kein http-Pipelining nutzt. Für Breitbandbenutzer in einem gut vernetzten Segment des Netzwerks ist dies kein Problem. Wenn Sie international geschäftlich tätig sind und https benötigen, kann dies leicht zu spürbaren Verzögerungen führen.
Es gibt zusätzliche Überlegungen wie die Serverwartung des Sitzungsstatus, die möglicherweise erheblich mehr Speicher erfordert, und natürlich Datenverschlüsselungsvorgänge. Kleine Websites müssen sich praktisch keine Gedanken über die Serverfähigkeit oder die Kosten der heutigen Hardware machen. Jeder große Standort kann sich problemlos CPU / w-AES-Offload- oder Add-On-Karten leisten, um ähnliche Funktionen bereitzustellen.
All diese Probleme werden im Laufe der Zeit immer weniger zum Thema, und die Fähigkeiten von Hardware und Netzwerk verbessern sich. In den meisten Fällen bezweifle ich, dass es heute einen spürbaren Unterschied gibt.
Möglicherweise gibt es betriebliche Überlegungen wie administrative Einschränkungen für den https-Verkehr (z. B. Filter für Zwischeninhalte usw.), möglicherweise einige Unternehmens- oder behördliche Vorschriften. In einigen Unternehmensumgebungen ist eine Datenentschlüsselung am Umfang erforderlich, um Informationslecks zu vermeiden. Interferenzen mit Hotspots und ähnlichen webbasierten Zugriffssystemen, die keine Nachrichten in https-Transaktionen einfügen können. Letztendlich sind aus meiner Sicht die Gründe dafür, dass https nicht standardmäßig verwendet werden, wahrscheinlich recht gering.
quelle
https ist ressourcenhungriger als das normale http.
Es fordert mehr von den Servern und den Clients.
quelle
Wenn die gesamte Sitzung verschlüsselt ist, können Sie das Caching nicht für statische Ressourcen wie Bilder und JS auf Proxy-Ebene verwenden, z. B. ISP.
quelle
Sie sollten HTTPS überall verwenden, aber Sie verlieren Folgendes:
Aufgrund von BREACH- und CRIME-Angriffen sollten Sie auf keinen Fall SSL-Komprimierung oder HTTP-Komprimierung über SSL verwenden. Also keine Komprimierung, wenn Ihre Antwort Sitzungs- oder CSRF-Kennungen enthält. Sie können dies abmildern, indem Sie Ihre statischen Ressourcen (Bilder, JS, CSS) in eine Domain ohne Cookies stellen und dort die Komprimierung verwenden. Sie können auch die HTML-Minimierung verwenden.
Ein SSL-Zertifikat, eine IP-Adresse, sofern nicht SNI verwendet wird, das nicht in allen Browsern (altes Android, Blackberry 6 usw.) funktioniert.
Sie sollten keine externen Inhalte auf Ihren Seiten hosten, die nicht über SSL übertragen werden.
Sie verlieren den ausgehenden HTTP-Referer-Header, wenn der Browser eine HTTP-Seite aufruft, was für Sie möglicherweise ein Problem darstellt oder nicht.
quelle
Der offensichtliche Grund ist die Leistung: Alle Daten müssen vor der Übertragung vom Server verschlüsselt und nach Erhalt vom Client entschlüsselt werden. Dies ist Zeitverschwendung, wenn keine sensiblen Daten vorhanden sind. Dies kann sich auch darauf auswirken, wie viel von Ihrer Site zwischengespeichert wird.
Für Endbenutzer ist es möglicherweise auch verwirrend, wenn alle Adressen verwendet werden
https://
und nicht die vertrautenhttp://
. Siehe auch diese Antwort:Warum nicht immer https verwenden, wenn Sie eine js-Datei einfügen?
quelle
https erfordert, dass der Server Clientanforderungen und -antworten verschlüsselt und entschlüsselt. Die Auswirkungen auf die Leistung summieren sich, wenn der Server viele Clients bedient. Aus diesem Grund beschränken sich die meisten aktuellen Implementierungen von https nur auf die Kennwortauthentifizierung. Mit zunehmender Rechenleistung kann sich dies jedoch ändern, da Google Mail SSL für die gesamte Site verwendet.
quelle
Zusätzlich zur Antwort von WhirlWind sollten Sie die Kosten und die Anwendbarkeit von SSL-Zertifikaten, Zugriffsprobleme (es ist möglich, aber unwahrscheinlich, dass ein Client möglicherweise nicht über den SSL-Port kommunizieren kann) usw. berücksichtigen.
Die Verwendung von SSL ist keine garantierte Sicherheitsmaßnahme. Diese Art von Schutz muss in die Architektur der Anwendung integriert werden, anstatt sich auf ein Wundermittel zu verlassen.
quelle
Mir wurde gesagt, dass bei einem Projekt in unserem Unternehmen festgestellt wurde, dass die von SSL-Nachrichten belegte Bandbreite erheblich höher war als bei einfachen Nachrichten. Ich glaube, jemand hat mir gesagt, dass es erstaunliche 12-mal so viele Daten sind. Ich habe dies selbst nicht überprüft und es klingt sehr hoch, aber wenn jeder Seite eine Art Kopfzeile hinzugefügt wird und die meisten Seiten eine geringe Menge an Inhalten enthalten, ist dies möglicherweise nicht so weit entfernt.
Trotzdem scheint mir der Aufwand, zwischen http und https hin und her zu gehen und zu verfolgen, welche Seiten vorhanden sind, zu aufwendig. Ich habe nur einmal versucht, eine Site zu erstellen, die sie vermischt, und wir haben den Plan schließlich aufgegeben, als wir von komplexen Dingen wie Popup-Fenstern, die von Javascript erstellt wurden und auf die das falsche Protokoll angehängt wurde, und dergleichen gestolpert sind. Am Ende haben wir nur die gesamte Website https als weniger problematisch eingestuft. Ich denke, in einfachen Fällen, in denen Sie nur einen Anmeldebildschirm und einen Zahlungsbildschirm haben, die geschützt werden müssen, und es sich um einfache Seiten handelt, wäre es keine große Sache, sie zu kombinieren.
Ich würde mir keine großen Sorgen über die Belastung des Clients beim Entschlüsseln machen. Normalerweise verbringt der Client viel mehr Zeit damit, darauf zu warten, dass Daten über das Kabel übertragen werden, als für die Verarbeitung erforderlich ist. Bis Benutzer routinemäßig über Gigabit / Sek. Internetverbindungen verfügen, ist die Verarbeitungsleistung des Clients wahrscheinlich ziemlich irrelevant. Die CPU-Leistung, die der Server zum Verschlüsseln von Seiten benötigt, ist ein anderes Problem. Es kann durchaus Probleme geben, dass es nicht möglich ist, mit Hunderten oder Tausenden von Benutzern Schritt zu halten.
quelle
Ein weiterer kleiner Punkt (möglicherweise kann jemand dies überprüfen): Wenn ein Benutzer Daten in ein Formularelement wie ein Textfeld eingibt und dann aus irgendeinem Grund die Seite aktualisiert oder der Server für eine Sekunde ausfällt, gehen die vom Benutzer eingegebenen Daten verloren HTTPS wird jedoch über HTTP beibehalten.
Hinweis: Ich bin nicht sicher, ob dies browserspezifisch ist, aber es passiert sicherlich mit meinem Firefox-Browser.
quelle
Windows Server 2012 mit IIS 8.0 bietet jetzt SNI (Server Name Indication), mit der mehrere SSL-Webanwendungen in IIS auf einer IP-Adresse gehostet werden können.
quelle