Frage:
Was ist der Unterschied zwischen http und https mit einem selbstsignierten SSL-Zertifikat?
thomasb
2015-08-28 19:31:08 UTC
view on stackexchange narkive permalink

Ein Kollege von mir hat mir gesagt, er verstehe nicht, warum beim Besuch einer HTTPS-Website mit einem selbstsignierten Zertifikat eine Warnung angezeigt wird, dass die Sicherheit möglicherweise gefährdet ist, beim Besuch eines "normalen" Unternehmens jedoch keine Warnung. HTTP-Website, obwohl die Sicherheit auch gefährdet sein könnte.

Ich habe mir kein Argument dagegen ausgedacht (ich verstehe den Unterschied zwischen selbstsignierten und von der CA ausgestellten Zertifikaten).

Welches Sicherheitsrisiko besteht also beim Besuch einer HTTPS-Website mit einem selbstsignierten oder abgelaufenen Zertifikat, das Sie beim Besuch einer HTTP-Website nicht haben?

Ich möchte hinzufügen, was die Gründe für die Browser-Warnmeldung für selbstsignierte Zertifikate sind, aber es gibt keine für HTTP , aber ich kann mir bereits mehrere vorstellen, "die die Benutzer von 90% nicht stören des Web "eins sein.

Hinweis

Mir ist eine sehr ähnliche Frage bekannt, aber das ist nicht der Fall Beantworte meine spezielle Frage.

Update

Google hat dieses Paradox erkannt und wird bald alle HTTP-nicht-S-Verbindungen als nicht sicher markieren: https://security.googleblog.com/2016/09/moving-towards-more-secure-web.html

Beachten Sie, dass das Chrome-Sicherheitsteam anscheinend zustimmt, dass dies etwas albern ist, und daran arbeitet, die Benutzeroberfläche von Chrome im Laufe der Zeit schrittweise zu ändern, um deutlicher darauf hinzuweisen, dass HTTP unsicher ist: https://www.chromium.org/Home/chromium-security/ Markieren von http als nicht sicher
Möglicherweise wiederholen Sie Ihre Annahme, dass keine Warnung für unverschlüsseltes HTTP vorliegt. https://www.google.com/search?q=submit+form+unencrypted&source=lnms&tbm=isch Wahrscheinlich haben Sie gerade das Kontrollkästchen "Beim nächsten Mal benachrichtigen" deaktiviert und vergessen, dass Sie dies getan haben.
Ajedi32: Tolle Neuigkeiten! @BenVoigt: Ja und Nein. Ein Meldungsfeld, das Sie für immer verwerfen können, unterscheidet sich ** sehr ** von einer * Warnseite *, die Sie nur schwer umgehen können, manchmal sogar als "fortgeschrittener" Benutzer.
Siehe auch http://security.stackexchange.com/q/97247/971.
Fünf antworten:
schroeder
2015-08-28 19:40:24 UTC
view on stackexchange narkive permalink

Der Zweck der Warnung besteht darin, dass bei Verwendung von HTTPS eine angemessene Sicherheit erwartet wird, ein selbstsigniertes oder abgelaufenes Zertifikat jedoch Sicherheitslücken aufweist, die der Benutzer beachten muss.

Das " Risiko "ist, dass man denkt, dass sie richtig gesichert sind, aber sie sind nicht vollständig gesichert, im Gegensatz zu HTTP, wo man weiß, dass es überhaupt keine Verschlüsselung gibt.

Es würde keine Warnung für HTTP geben, weil Es gibt keine Sicherheit (dh Verschlüsselung), die gefährdet werden könnte.

Beachten Sie, dass ein selbstsigniertes Zertifikat * so sicher * sein kann wie ein extern signiertes Zertifikat. Es gibt einfach keine Vertrauenskette, die sich auf eine gemeinsame vertrauenswürdige Wurzel erstreckt (wie Verisign). Wenn Sie dem Aussteller dieses Zertifikats implizit vertrauen, müssen Sie den zusätzlichen Schritt der Installation des Zertifikats in Ihrem CA-Speicher ausführen und Ihren Computer anweisen, ihm zu vertrauen, bis Sie etwas anderes sagen. Auf diese Weise werden ständig PKIs für Unternehmensnetzwerke eingerichtet, in denen ein selbstsignierter "goldener Schlüssel" als vertrauenswürdiger Stamm zum Signieren zusätzlicher Schlüssel für IT-Ressourcen des Unternehmens verwendet wird.
"Wo man weiß, dass es überhaupt keine Verschlüsselung gibt": Ich bin anderer Meinung, was die breite Öffentlichkeit betrifft. Außerdem scheint "es ist möglicherweise nicht sicher" als weniger sicher behandelt zu werden als "es ist niemals sicher".
@KeithS: Was sich meines Wissens nicht von einer allgemein anerkannten Zertifizierungsstelle unterscheidet. Diese sind nur mit Ihrem Betriebssystem vorinstalliert.
@cosmo0: Unverschlüsseltes HTTP ist zu 100% absolut sicher, wenn Sie davon ausgehen, dass es keine Lauscher gibt.
@cosmo0: Jedes System kann als 100% sicher angesehen werden, solange Sie davon ausgehen, dass niemand sie angreifen oder missbrauchen wird ...
@WhiteWinterWolf Matti widerlegt "HTTP ist niemals sicher". Wenn Sie HTTP als "niemals sicher" betrachten, müssen Sie sich auch selbstsigniertes HTTPS als "niemals sicher" vorstellen, es sei denn, Sie haben den Zertifikat-Fingerabdruck über einen Out-of-Band-Kanal erhalten (was realistisch gesehen nur wenige Menschen tun) machen).
@immibis: Ja, das ist mein Punkt. Selbstsigniertes HTTPS scheint "so sicher wie" einfaches HTTP zu sein. Die Frage ist also "Warum der Hass auf selbstsigniertes HTTPS?".
WhiteWinterWolf
2015-08-28 20:03:54 UTC
view on stackexchange narkive permalink

Sicherheitsunterschied

Lassen Sie uns zunächst über SSL (übrigens jetzt TLS genannt) sprechen, das das 'S' am Ende von HTTP S hinzufügt und verantwortlich ist von " Sichern der Kommunikation ". Der Schlüssel zur Beantwortung dieser Frage besteht in der Tat darin, vollständig zu verstehen, was wir unter "Sichern der Kommunikation" verstehen.

SSL, unabhängig davon, ob es sich um ein selbstsigniertes Zertifikat handelt, das verwendet wird, oder um ein von einem Vertrauenswürdigen signiertes Zertifikat CA stellt sicher, dass die Kommunikation zwischen Ihnen und dem Remote-Host vertraulich bleibt und dass niemand die ausgetauschten Daten manipulieren kann.

Die Warnung bezieht sich daher nicht darauf.

Allerdings Wie können Sie sicher sein, dass dieser Remote-Host, der auf Ihre Anfragen antwortet, wirklich der ist, den Sie erwarten? Bei öffentlichen Websites, für die Sie keine direkte Möglichkeit haben, das Zertifikat allein zu authentifizieren, ist dies einfach unmöglich. Hier kommt eine externe vertrauenswürdige Zertifizierungsstelle: Wenn Sie einer Zertifizierungsstelle vertrauen, gehen Sie davon aus, dass alle von ihr signierten Zertifikate nur zu legitimen Zwecken verwendet werden, um den Datenverkehr mit den im Zertifikat explizit genannten Servern zu sichern.

Dies ist alles Bei dieser Warnung geht es um: Ihr Browser warnt Sie, dass die Kommunikation selbst zwar gesichert ist, das Zertifikat jedoch nicht automatisch authentifiziert werden kann. Daher müssen Sie es akzeptieren oder ablehnen.

Wenn das selbstsignierte Zertifikat einem Ihrer Server zugeordnet ist, sollten Sie mit dieser manuellen Authentifizierung fortfahren können: Sie sollten in der Lage sein, den Zertifikatfingerabdruck zu überprüfen, oder zumindest sollten Sie wissen, ob das Zertifikat vorhanden ist wurde kürzlich geändert oder nicht.

Sobald diese manuelle Authentifizierung durchgeführt wurde, bietet Ihnen Ihr Browser die Möglichkeit, sich an dieses Zertifikat zu erinnern. Dies bedeutet, dass der Browser dieses selbstsignierte Zertifikat dem URL-Host zuordnet und keine Warnung in der Zukunft geben, da jetzt die br Der Owner verfügt über eine automatisierte Methode zur Authentifizierung des Zertifikats.

Sobald jedoch das selbstsignierte Zertifikat auf dem Server geändert wird, zeigt der Browser die Warnung erneut an, und es ist wieder Sache des Endbenutzers, zu bestimmen, ob diese Zertifikatänderung normal ist und ob das Das vom Server vorgelegte neue Zertifikat ist in der Tat ein echtes.

UX-Unterschied

Meine Antwort deckte den Aspekt der Benutzeroberfläche des Browsers Ihrer Frage bis jetzt nicht ab.

Ich fand die Standardmethode, mit der Browser den Benutzer über die aktuelle Sicherheit informieren, größtenteils ineffektiv. Benutzer kümmern sich nur nicht um das Vorhängeschloss und bemerken nicht, wenn die SSL-Sicherheit fehlt. Selbst Benutzer, die sich darum kümmern, haben keinen Zugriff auf die richtigen Informationen (nichts hindert eine Website daran, ein erweitertes Validierungszertifikat anzuzeigen, um ihre Website für die Verwendung schlechter und schwacher Kryptografiesysteme zu konfigurieren oder sich auf weniger gesicherte Inhalte von Drittanbietern zu verlassen : Die Benutzeroberfläche des Standardbrowsers wird sich weiterhin darüber freuen und die grüne Leiste "Erstklassige Sicherheit" anzeigen.

Abhängig vom verwendeten Browser gibt es hoffentlich einige Plugins, die versuchen, diese Situation zu beheben. In Firefox haben Sie SSLeuth, wodurch standardmäßig links oder in der URL-Leiste (neben dem Vorhängeschloss, falls vorhanden) ein neuer Benachrichtigungsbereich hinzugefügt wird.

Dieser neue Benachrichtigungsbereich hat die folgenden Eigenschaften:

  • Die Hintergrundfarbe reicht von Rot (keine Sicherheit: HTTP) über Orange (schlechte Sicherheitseinstellungen) bis zu Blau und Grün (gute und beste Sicherheit gemäß den aktuellen Best Practices) ).
  • Mit einer Option können Sie diese Farbe auf die gesamte URL-Leiste erweitern, sodass auf HTTP-Websites jetzt eine vollständig rote URL-Leiste angezeigt wird.
  • Zuletzt wird eine Punktzahl (zwischen 0 und 10) angezeigt, um eine Schätzung der aktuellen SSL / TLS-Sicherheitsstufe anzuzeigen. Dabei werden verschiedene Kriterien berücksichtigt, darunter die Art des Zertifikats (selbstsigniert, CA-signiert, erweitertes Validierungszertifikat), die verwendete kryptografische Konfiguration, die Inhaltssicherheit von Drittanbietern usw. Durch Klicken auf den Benachrichtigungsbereich werden hauptsächlich alle Bewertungsdetails angezeigt nützlich, wenn das Ergebnis nicht das erwartete ist (auch bekannt als " Warum wird meiner Bankwebsite eine orangefarbene URL-Leiste zugewiesen? ").
Wenn Sie die Gegenstelle nicht authentifizieren können, * wissen * Sie nicht, dass die Kommunikation vertraulich oder manipulationssicher ist, da Sie nicht nachweisen können, dass kein Mann in der Mitte lauscht oder manipuliert .
@hobbs: Genau das ist das Problem. SSL / TLS stellt sicher, dass Ihre Kommunikation zwischen Ihnen und dem Remote-Host vertraulich und manipulationssicher ist. Wenn Sie jedoch nicht wissen, wer dieser Remote-Host ist, kann es sich tatsächlich um ein schädliches System anstelle des erwarteten Servers handeln, und es steht Ihnen frei, mit den übertragenen Daten alles zu tun, was Sie möchten.
Kann der Browser nicht einfach sicherstellen, dass er nur mit dem Server auf dem Zertifikat kommuniziert? Ich meine, in diesem Fall ist die Authentifizierung des Remote-Hosts eher so, als würde man sagen, dass das unter dieser Domain im Namen von Facebook ausgestellte Zertifikat tatsächlich ein Zertifikat von Facebook ist und nicht jemand anderes, um sicherzustellen, dass Sie offiziell eine Verbindung zu Facebook herstellen. Sie sind weiterhin direkt mit dem Server verbunden, der das Zertifikat ohne Snooper ausgestellt hat (eigentlich nicht wahr, NSA hat es umgangen), können jedoch nicht angeben, dass das Zertifikat gültig ist, da es nicht von einem Dritten autorisiert wurde
@Sammaye: Der Browser sendet seine Anfrage an das überfüllte Internet, und unter den Milliarden von Servern antwortet einer von ihnen "Hallo, ich bin der Facebook-Server". Wie können Sie sicher sein, dass dieser Server, der aus dem Nichts kommt, wirklich der Facebook-Server ist und nicht einer, der sich böswillig so verhält? Hier kommt die Authentifizierung von Drittanbietern ins Spiel: Die einzige Möglichkeit besteht darin, jemanden zu haben, der sowohl Ihrem Browser als auch dem echten Facebook-Server bereits bekannt und vertrauenswürdig ist. Dies bestätigt dem Browser, dass der Server, der gerade darauf antwortet, der echte Facebook-Server ist.
Iszi
2015-08-28 19:57:14 UTC
view on stackexchange narkive permalink

Ohne Warnungen für selbstsignierte oder abgelaufene Zertifikate, unangemessene Auswahl von Chiffresuiten und andere fehlerhafte HTTPS-Konfigurationen wird die Darstellung des Sicherheitsstatus einer Website für den Benutzer binär - entweder Sie haben HTTPS auf der Site oder Sie nicht. Dies würde eine Reihe von Nuancen verbergen, die sich erheblich darauf auswirken können, wie sehr das "S" in "HTTPS" Sie wirklich schützt.

Bei einer ordnungsgemäßen HTTPS-Implementierung wird das Zertifikat der Site von einem Drittanbieter signiert dass das Client-System vertraut. Dies stellt für den Kunden die Gewissheit dar, dass der Inhalt von dem System geliefert wird, das er erwartet, und dass sich niemand dazwischen befindet.

Das Problem mit einem selbstsignierten Zertifikat besteht darin, dass jeder einen erstellen kann. Dieses Zertifikat könnte also genauso gut von einem System generiert werden, das als Man-in-the-Middle fungiert und die Daten abfängt und möglicherweise sogar manipuliert, die zwischen Ihnen und dem vertrauenswürdigen System hin und her gehen. Wenn das vertrauenswürdige System normalerweise ein selbstsigniertes Zertifikat verwendet und Sie dieses Zertifikat nicht außerhalb des Bandes oder während einer früheren vertrauenswürdigen Verbindung persönlich validiert haben, werden Sie den Unterschied nie erfahren.

Wie unterscheidet sich das von normalem HTTP? Auf den ersten Blick scheint dies nicht der Fall zu sein. In beiden Szenarien kann ein MitM die Verbindung relativ einfach anzeigen und manipulieren, und Sie werden es nicht bemerken. Die Verwendung von HTTPS mit einem selbstsignierten Zertifikat bietet Ihnen jedoch etwas, was HTTP nicht kann: Die Gewissheit, dass Ihre Daten bei der Übertragung immer noch verschlüsselt werden, auch wenn sich jemand dazwischen befindet. Abhängig von der Umgebung (z. B. dicht besiedeltes öffentliches WLAN) kann dies die Zielgruppe, die Zugriff auf Ihre Daten hat, drastisch reduzieren, selbst wenn tatsächlich ein MitM im Spiel ist.

Möglicherweise möchten Sie dies Weitere Informationen hierzu finden Sie in meiner Antwort auf eine andere verwandte Frage. Troy Hunts Artikel "Bei SSL geht es nicht um Verschlüsselung" könnte für Sie von Interesse sein, obwohl er für Ihre Seite der Debatte hier möglicherweise nicht sehr hilfreich ist.

Es beantwortet meine Frage nicht wirklich, aber es ist sehr interessant! Vielen Dank.
Bacon Brad
2015-08-29 03:23:22 UTC
view on stackexchange narkive permalink

Diese Antworten sind großartig. Aber ich muss oft eine vereinfachte Antwort ohne den ganzen Jargon geben.

HTTP - Es ist nicht verschlüsselt und die über die Leitung gesendeten Daten können leicht gelesen werden.

HTTPS - Das ist es Von einer vertrauenswürdigen Partei verschlüsselt und verifiziert. Die Daten werden von der richtigen Quelle verarbeitet.

HTTPS (selbstsigniert) - Es wird verschlüsselt, aber es gibt keine Überprüfung durch eine vertrauenswürdige Partei, dass sie von der richtigen Quelle verarbeitet werden .

Deshalb erhalten selbstsignierte Zertifikate den sehr wichtigen Hinweis. Auch wenn dies nicht bedeutet, dass das Zertifikat unsicher ist, kann der Browser nicht bestätigen, dass das Zertifikat bei der Verwendung / Übertragung Ihrer Daten sicher ist. Ohne diesen wichtigen Hinweis könnte ein Betrüger / Hacker das Zertifikat durch ein eigenes ersetzen, und Sie wären nicht klüger.

Peter Green
2016-04-18 03:31:26 UTC
view on stackexchange narkive permalink

Der Besuch einer https-URL bringt Sicherheitserwartungen mit sich. Der Besuch einer http-URL funktioniert nicht. Dies gilt nicht nur für die manuelle Eingabe von URLs, sondern möglicherweise noch wichtiger für das Folgen von Links und das Senden von Formularen.

Eine Lösung wäre, ein weiteres URL-Schema für "verschlüsselt, aber nicht authentifiziert" hinzuzufügen. Selbst wenn alle Browser dies morgen unterstützen würden, würde es lange dauern, bis es für Websites weit genug verbreitet ist, um sich darauf zu verlassen es. Es wäre möglicherweise auch schwierig, den Benutzern die Sicherheitsunterschiede zu erklären.

Eine weitere Lösung wäre die opertunistische Verschlüsselung nach dem http-URL-Schema. Auch hier wäre es ein harter Kampf, Unterstützung für Browser zu erhalten.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...