Frage Ist ein selbstsigniertes SSL-Zertifikat ein falsches Sicherheitsgefühl?


Ist ein selbstsigniertes SSL-Zertifikat ein falsches Sicherheitsgefühl?

Wenn Sie belauscht werden, akzeptiert der Benutzer das Zertifikat einfach so, wie er es immer tut.


30
2018-06-13 06:07


Ursprung




Antworten:


Interessante Frage, es kommt auf die Verwendung meiner Meinung nach an. Sie sind immer noch hinsichtlich der verschlüsselten Sitzung geschützt, aber Sie haben keine Möglichkeit zu sagen, ob Ihnen das richtige SSL-Zertifikat präsentiert wird, es sei denn, Sie verteilen Ihr CA-Root-Zertifikat an Benutzer / Clients. Für interne Tests / Dev-Projekte würde das großartig funktionieren, Sie erzeugen ein Root-CA-Zertifikat, das Sie an Ihre Benutzer verteilen (kann über Gruppenrichtlinien in Windows und über die openssl-Kommandozeile in Linux / BSD erfolgen) und verwenden dann dieses Root-Zertifikat für Unterzeichnung Ihrer CSRs. Benutzern wird keine Warnung angezeigt oder Sie wissen, dass das Zertifikat von Ihrer internen Zertifizierungsstelle signiert wurde.

Für externe Websites, bei denen dies nicht gewährleistet werden kann, würde ich dennoch sagen, dass ein selbstsigniertes Zertifikat besser ist als gar kein SSL, wenn Sie Kennwörter oder andere vertrauliche Informationen über die Verbindung senden.

Auf der positiven Seite gibt es jedoch viele sehr billige "kommerzielle" Zertifikatemittenten, Los Papa einer von ihnen sein. Sie können ein Zertifikat für etwa 40 Euro pro Jahr erhalten. GoDaddy bietet sogar kostenlose Zertifikate für OpenSource-Projektwebsites an.


25
2018-06-13 07:05



Genau das machen wir. Sei vorsichtig, aber mit den billigen Zertifikaten. Einige von ihnen haben ziemlich seltsame Stammzertifizierungsstellen und nicht alle davon sind in der Sammlung von Stammzertifizierungsstellenzertifikaten enthalten, die mit allen Browsern geliefert werden. - wolfgangsz
+1 außer "selbstsigniertes Zertifikat ist besser als gar kein SSL" - wenn Sie verifizieren, dass es sich um Ihr Zertifikat handelt und nicht um eines, das von einem MITM bereitgestellt wird. Ehrlich, wann war das letzte Mal, dass ein normaler Benutzer das gemacht hat? (Ich vermute, dass die Antwort Blaumond und fliegende Schweine beinhalten würde.) Mit anderen Worten: Wenn Sie ein selbstsigniertes SSL-Zertifikat verwenden, ohne Ihre CA-Zertifikate an Benutzer verteilt zu haben, werden Sie die unheimliche Warnung der Benutzer desensibilisieren - sie werden es lernen Klicken Sie sich durch, als "nun, sie sagten mir, ich sollte die Warnung auf mysite.example.com ignorieren, so dass ich es überall ignorieren kann; schau, ein Schloss-Symbol!" Voila, falsches Sicherheitsgefühl! - Piskvor
@Piskvor, das ist eigentlich die Schuld der Browser. Erstens bieten Browser im Allgemeinen keine Möglichkeit, bisher unbekannte selbstsignierte Zertifikate "dauerhaft zu akzeptieren", so dass sich der Benutzer bei jeder Anmeldung nicht selbst gefährdet. Zweitens entmutigen die Browser nicht die Verwendung von einfachem HTTP, was ebenfalls ein falsches Sicherheitsgefühl erzeugt. Also, HTTP ist immer schlechter als HTTPS, sowohl in der Sicherheit als auch im Benutzerbewusstsein (zumindest bekommen sie die Warnung!). - Rotsor
@RotSor: Zuerst hat Opera diese Eigenschaft, die Sie beschreiben, eingebaut, FF hat Zertifikat-Patrouille (die mindestens warnt von Cert-Änderung). Beachten Sie auch, dass nicht alles bei SSL ein Browser ist (IMAPS etc.). Zweitens, wie ist die bestehende Fülle von HTTP-Seiten die Browser Fehler? (Und nein, HTTPS-only-Browser haben sich nie durchgesetzt, gerade weil es ein drastisch kleineres Netz gab, um mit ihnen zu browsen). Drittens, "sie bekommen die Warnung" wäre nützlich, wenn nur die Benutzer es lesen würden - und nicht blind auf "accept" klicken, um es zu entfernen. "Klicken heißt akzeptieren, verstehen" ist die gemeinsame Illusion der Entwickler. - Piskvor
@ Piskvor, gut zu wissen, einige Browser bieten diese Funktion. Was HTTP betrifft, kann ich nicht sagen, was zu tun ist (HTTP ist offensichtlich nicht möglich), aber es gibt definitiv mehr Sicherheitswarnungen mit selbstsigniertem SSL als ohne SSL. Fehler! - Rotsor


Ich werde dem widersprechen, einmal aus engen technischen Gründen und einmal aus allgemeinen Gründen.

Der enge technische Hintergrund besteht darin, dass das OP nach selbstsignierten Zertifikaten gefragt hat und einige andere Antworten auf von privaten Zertifizierungsstellen signierte Zertifikate verweisen, was ein etwas anderes Problem darstellt. Aber nicht sehr anders, das ist eigentlich nur eine Anmerkung im Vorbeigehen.

Der wichtigste Einwand ist, dass ich denke, solange kommerziell unterzeichnete Zertifikate von mehr als trivialen Kosten sind - und 40 $ pro Jahr sind nicht ein trivialer Aufwand für viele Menschen auf diesem Planeten - selbstsignierte Zertifikate spielen eine wichtige Rolle bei der Internetsicherheit, vorausgesetzt, ihre Grenzen sind anerkannt.

Ein selbstsigniertes Zertifikat ist wie ein SSH-Schlüssel von meinem known_hosts Datei. Ohne unabhängige Überprüfung kann es mir nicht versichern, dass ich mit dem System rede, von dem ich glaube, dass ich es bin; aber es können versichere mir, dass das System, mit dem ich jetzt spreche, das gleiche System ist, mit dem ich das letzte Mal gesprochen habe, als ich dachte, ich würde mich damit unterhalten. Wir cachen SSH-Schlüssel die ganze Zeit, und ich habe noch nie einen Systemadministrator getroffen, der unabhängig mehr als einen Bruchteil der öffentlichen Schlüssel in seinem / ihrem verifiziert hat known_hosts Datei.

Selbstsignierte Zertifikate (und Zertifikate, die von nicht allgemein gültigen CAs signiert wurden) sind viel besser als gar kein SSL, solange die Leute erkennen, dass sie nur die Kommunikation mit sich selbst, dem Server, sichern, wenn sie diese nicht verifizieren am anderen Ende des DNS-Datensatzes, und alle Männer in der Mitte sind derzeit auf der Leitung. Wenn sie das Zertifikat unabhängig voneinander überprüfen, sind die Authentifizierung und die Verschlüsselung mindestens so stark wie die von einem Zertifikat, das von einer anerkannten Zertifizierungsstelle signiert wurde.

Wer darüber hinaus die Verwendung von Zertifikaten, die von einer anerkannten Zertifizierungsstelle als einziges Internetsicherheits-Allheilmittel signiert wurden, präsentieren möchte, muss möglicherweise über Themen wie z die Aufnahme der unterzeichnenden Zertifizierungsstelle der chinesischen Regierung in das Standard-Mozilla-Paket, und die betrügerischen SSL-Zertifikate, die von Comodo signiert wurden.


12
2018-06-13 13:31



Leider ist das "Trusted CA" -Modell in der Tat gebrochen (und seit Jahren); Leider geht es nicht weg (und es gibt eigentlich nichts Besseres, es zu ersetzen). Wie immer sind SSL und vertrauenswürdige CAs kein magischer Sicherheitszauber; der Benutzer muss die Sicherheit aktiv aufrechterhalten - was in den meisten Fällen eine ziemlich verrückte Annahme ist. - Piskvor
Können Ihre Benutzer ihr Konfidenzniveau in der Integrität ihres Pfades zum aktuellen DNS-Server (einschließlich der Möglichkeit einer Cache-Poisoning) und des Geräts, das sie treffen, gut auswerten? Meine wissen nicht, was DNS ist, geschweige denn in der Lage, fundierte Sicherheitsentscheidungen über ihre Verbindung zu einem Server in einem anderen Zustand zu treffen, der über MPLS mit einer anderen Site verbunden ist, die über ein Client-VPN mit dem Benutzer verbunden ist über unverschlüsseltes Café wifi. Vermeiden Sie es, ihnen diese Verantwortung zu übertragen. - Shane Madden♦
@ Shane Madden: Ein Bereich, in dem dies möglich ist, ist die Administration von Web-Frontends - z.B. phpMyAdmin (oder, in geringerem Maße, SVN über HTTPS). Es gibt normalerweise eine begrenzte Anzahl von Benutzern, und sie enthalten einen bedeutenden Teil eines Hinweises. Ich würde nicht erwarten, dass mein Urgroßvater Kopf oder Zahl von einer SSL-Zertifikat-Warnung macht, aber ich erwarte dies definitiv von einem anderen Systemadministrator, besonders wenn es ein Server unter seiner Kontrolle ist. Ein Gartennutzer hat keine Ahnung davon known_hosts @ MadHatter referenziert entweder. - Piskvor


Für externe Sites, auf denen die Benutzer Ihr CA-Zertifikat nicht installiert haben (was am häufigsten der Fall ist), Ja, ein selbstsigniertes Zertifikat gibt ein falsches Gefühl der Sicherheitund somit ist es schlimmer als nutzlos:

  • Wie kann der Benutzer ohne ein vorinstalliertes CA-Zertifikat feststellen, dass das Zertifikat tatsächlich von Ihnen und nicht von einem Angreifer stammt? Natürlich durch Abgleich der Zertifikatsfelder (CN, Fingerprints, etc.) - aber gegen was? Jetzt brauchen Sie einen Seitenkanal, um das Zertifikat zu verifizieren - und in den wenigen Fällen, die ich gesehen habe, haben die Support-Linien-Betreiber (die als Seitenkanal für die Verifizierung dienen sollten) keine Ahnung, was Das soll bedeuten; Außerdem ist der Betrieb eines solchen Seitenkanals um ein Vielfaches teurer als das Erhalten eines vertrauenswürdigen CA-signierten Zertifikats, so dass der Benutzer Ihnen blind vertrauen muss.

  • Zweitens ist der unheimliche Alarm, den der Benutzer bekommt, aus einem guten Grund beängstigend: da der Benutzer das präsentierte Zertifikat nicht überprüfen kann / wird, könnten sie es sein sicher Übertragung von Daten an die Elbonian Haxx0r D00dz.

  • Drittens, und das Schlimmste von allem, Sie desensibilisieren die Benutzer: "Nun, sie sagten mir, dass ich diese Warnung ignorieren sollte https://mysite.example.com/ und ein Amboss nicht Tropfen auf meinen Kopf, und mein Goldfisch ist auch nicht gestorben; Sooooo, das bedeutet, dass es nur eine weitere Alarmbox ohne wirkliche Bedeutung ist, also kann ich diese Box ignorieren, wann immer ich darauf stoße - ich bekomme trotzdem dieses schöne Schloss-Icon-Ding, und das ist wichtig. "

Mit anderen Worten, das Schutzniveau ist vergleichbar mit reinem HTTP (außer Sniffing auf dem Draht: obwohl die Daten während der Übertragung verschlüsselt sind, ist dies eine eher anämische Funktion ohne Endpunktverifizierung), aber die Gefühl der Schutz ist unangemessen hoch. Bad Auto Analogie: "Ich habe ABS, so kann ich jetzt unter schlechten Bedingungen sicherer fahren" - außer das ABS gibt es nur im Verkaufsbroschüre des Autos, ohne tatsächlich im Auto anwesend zu sein.

Vorgeschlagene Literatur: OWASP SSL Best Practices

TL; DR: Indem Sie selbstsignierte Zertifikate auf öffentlich zugänglichen Websites verwenden, machen Sie das Netz zu einem schlechteren Ort, zu einem bestimmten Zeitpunkt ahnungslos.


8
2018-06-13 11:44



@ downvoter: Ich würde mich freuen, wenn Sie darauf hinweisen würden woher Meine Antwort ist sachlich falsch ("falsch" im Gegensatz zu "unbequem, unbequem, und eine Mühe zu implementieren"). Sicherheit ist hart, und "la la la kann ich dich nicht hören" tut nichts, um es zu beheben. - Piskvor
Obwohl ich Ihre Antwort nicht abgelehnt habe, zeigt der QuickInfo-Text auf dem Abwärtspfeil an, dass Sie mit dem Abstimmen nicht begründet sind, es sei denn, eine Antwort ist nicht hilfreich. Ich denke, dass das falsche Gefühl des Sicherheitspendels auch in die andere Richtung schwingen kann. Die jüngsten Verstöße gegen comodo RA beweisen, dass es für einen "Bösewicht" gar nicht so schwierig ist, ein vollkommen legitimes Zertifikat zu bekommen. - mahnsc
@mahnsc: Danke für die Erinnerung; Ich bin mir dessen bewusst :-) "Ist ein selbstsigniertes SSL-Zertifikat ein falsches Sicherheitsgefühl?" "Ja, aus folgenden Gründen ..." klingt sinnvoll, nein? Also war ich neugierig, warum das nicht der Fall sein würde: Ich könnte etwas aus einer entgegengesetzten Sichtweise lernen; von einem Downvote, nicht so sehr. - Piskvor
@Mahnsc: Guter Punkt über kompromittierte CAs. Ich sage nicht, dass die Root-CA-Liste in Stein gemeißelt und unzerstörbar ist - perfekte Sicherheit gibt es nicht; aber es braucht viel mehr Anstrengung, um zu brechen Das als einen Capturing-SSL-Proxy auf einem Netzwerk-Gateway einzurichten. - Piskvor
@ mahnsc: Ich meine, dass es einfacher ist, einen SSL-Proxy einzurichten, und hoffe, dass der Benutzer durch die Warnungen klickt, als einen SSL-Proxy einzurichten und hoffen, dass eine gefälschte Zertifikatsanforderung den CA-Verifizierungsprozess durchläuft. Beides ist möglich, wie wir gesehen haben, aber das erstere ist viel einfacher zu machen (und schwerer nachträglich zu erkennen, da Browser-Benutzer normalerweise keine Audit-Trails behalten). - Piskvor


Hängt davon ab. Wenn Sie denken, dass es Sie sicherer macht, erhöht es Ihr Risiko, wenn Sie risikoreichere Dinge mit Ihrem falschen Sicherheitsgefühl tun. Wenn du es funktionell äquivalent zu HTTP behandelst, würde ich sagen, dass du etwas sicherer bist.

Ohne SSL / HTTPS kann jeder, der sich in unserem Netzwerk (oder im lokalen Netzwerk von jemandem, der sich anmeldet), mit einem streamshark anmelden und Usernamen / Passwörter abhören, die als reiner Text gesendet werden.

Mit selbstsigniertem SSL können sie nicht einfach reinhören, aber jetzt müssen Sie Ihre Site fälschen, möglicherweise ändern Sie DNS, um einen Mann zu machen, der es MITTM (Mittel) angreift. Dies ist immer noch eine Bedrohung, aber für sie wesentlich schwieriger zu erreichen.

Das andere Problem bei der Verwendung von selbstsigniertem SSL besteht darin, dass viele Browser selbstsignierte Zertifikate als eine wichtige Sicherheitsbedrohung behandeln und Sie warnen, bevor Sie mit einer riesigen roten Seite (z. B. Chrome) eintreten. http://www.sslshopper.com/article-ssl-certificates-in-google-chrome.html  Dies könnte eine große Unannehmlichkeit sein.

Das Fazit lautet: Wenn Sie etwas ausführen, das nicht besonders sicher sein muss (z. B. keine Kreditkartendaten, keine Sozialversicherungsnummern) und sich kein ordnungsgemäßes Zertifikat leisten kann, könnte ein selbstsigniertes Zertifikat Sinn machen (um zu verhindern, dass andere Netzwerkbenutzer ihre Login-Daten einfach ausspionieren).


8
2018-06-13 14:47





Es hängt davon ab, was Sie mit "Sicherheit" meinen, und welches der Umfang ist.

Zum Beispiel wird Ihr Browser standardmäßig mit einem CA-Set ausgeliefert. Das bedeutet, dass jedes von dieser Zertifizierungsstelle ausgestellte Zertifikat von Ihrem Browser akzeptiert wird (bis es mit dem DNS-Namen übereinstimmt). Stellen Sie sich nun vor, eine böse Regierung besitzt eine Zertifizierungsstelle oder kann die Zertifizierungsstelle zwingen, ein Zertifikat für die von Ihnen besuchte Website auszustellen. Dann ist es sehr einfach, ein MITM zu erstellen: Sie können Ihre Verbindung herstellen, indem Sie das Zertifikat an Ihren Browser senden, und Ihr Browser wird es akzeptieren, da es von einer "vertrauenswürdigen" Zertifizierungsstelle stammt. Bis sie DNS-transparent sind (was die Basis für MITM ist) ist das in Ordnung.

So ist die "Liste der akzeptierten CA" im Grunde ein großes Sicherheitsloch, bis einer dieser CA mit einer bösen Regierung kooperiert. Eine eigene CA zu haben ist viel besser.

Natürlich können Sie dies in Ihrem Unternehmen oder auf Ihrem Heimserver tun, da Sie Ihr eigenes CA-Zertifikat in den Client installieren können, den Sie auch steuern. Auf einem öffentlichen Server können Sie nicht mit einem Benutzer arbeiten, ihn bitten, eine Ausnahme hinzuzufügen oder Ihr Zertifikat hinzuzufügen.

Also, es hängt davon ab, was Sie für "Sicherheit" und den Umfang meinen. Wenn Sie die Clients besitzen, ist das selbstsignierte sicher, bis Sie auf dem Client selbst das Zertifikat Ihrer eigenen CA installieren.

Natürlich können Sie das nicht auf einer öffentlichen Website tun, da Sie nicht alle Kunden besitzen. Sie werden also verschiedene Verhaltensweisen gefährden, was nicht sicher ist.


0
2018-01-22 23:17