Frage Sind selbstsignierte SSL-Zertifikate sicher?


Ich möchte eine sichere Verbindung haben, wenn ich mich bei meinem Webmail anmelde, phpMyAdmin, usw.

Deshalb habe ich meine eigenen SSL-Zertifikate mit OpenSSL signiert und Apache angewiesen, auf Port 443 zu hören.

Ist das in der Tat sicher? Werden alle meine Passwörter wirklich durch eine sichere Schicht gesendet? Welchen Unterschied macht es, wenn ich ein SSL-Zertifikat von kaufe 100 sch sch sch sch sch sch sch sch 100 sch 100 sch 100 sch 100 sch 100 100 100 sch 100 100 dieser oder unterschreibe ich meinen eigenen? Am Ende des Tages werden alle Daten auf meinem Server gespeichert. Was ist der große Unterschied?


32
2018-02-25 14:44


Ursprung




Antworten:


Hier geht es um Vertrauen. Wenn Sie ein signiertes Zertifikat von verisign erhalten, beweisen Sie zufälligen Clients, dass Ihr Zertifikat vertrauenswürdig ist. Wenn Sie das Zertifikat selbst signieren, können Personen, die Ihr Zertifikat nicht auf ihrem Computer installiert haben, nicht sicher sein, dass sie nicht von einem anderen Computer angegriffen werden Man-in-the-Middle-Angriff.

Wenn Ihr Webserver nur von Ihnen verwendet wird, benötigen Sie keine echte Zertifizierungsstelle (z. B. Verisign), um Ihr Zertifikat zu signieren. Installieren Sie das Zertifikat auf den Computern, die Sie verwenden möchten, und Sie können loslegen.

Bearbeiten: Also, um Ihre Frage zu beantworten: Ja, alles ist verschlüsselt und Sie können sicher sein, dass niemand Ihre sensiblen Daten lesen kann, wenn Sie wissen, dass das dem Webbrowser präsentierte Zertifikat tatsächlich das ist, mit dem Sie den Webserver eingerichtet haben.


39
2018-02-25 14:50



Der Zweck der CA ist es, zu beweisen Andere dass ein Zertifikat zu dem gehört, zu dem es gehört. Da Sie bereits wissen, wem das Zertifikat gehört, in Bezug darauf, dass Sie auf Ihren eigenen Server zugreifen und Ihr eigenes Zertifikat präsentieren, ist eine Zertifizierungsstelle sinnlos. Andere können jedoch nicht sicher auf Ihre Server zugreifen, da sie nicht wissen können, welches Zertifikat vertrauenswürdig ist. (Sie wissen - vertrauen Sie dem, den Sie ausgegeben haben.) - David Schwartz
Dies wäre auch ein vernünftiger Ansatz, wenn auf den Server von einer begrenzten Anzahl von Benutzern zugegriffen würde, die Sie direkt kontaktieren könnten, um das Zertifikat zu überprüfen - Mitglieder Ihrer Familie oder die Mitarbeiter einer kleinen Firma als Beispiele. - bgvaughan
Kann ein Mann in der Mitte, der mit einer Zertifizierungsstelle koordiniert wurde, das selbstsignierte Zertifikat überschreiben? Z.B. Bob verbindet sich mit Alices selbstsignierter Website, Scar sendet Bob ein anderes Zertifikat, das von der CA Scar signiert ist, mit der koordiniert wird, Bobs Browser zeigt niemals eine SSL-Warnung. Ist das möglich? - Hello World


Hier geht es um Vertrauen.

Angenommen, Sie besuchen eine beliebte Website mit einem Zertifikat. Dies ist die Website, die sagt: "Das ist wer ich bin, du kannst mir vertrauen, weil ich diesen Einführungsbrief von jemandem unterschrieben habe Sie Vertrauen."

In diesem Fall ist der "Jemand, dem Sie vertrauen" eine der Zertifikatsautoritäten, die (hoffentlich) die Leg-Arbeit geleistet haben, um die Identität des Präsentators des Zertifikats in Ihrem Namen festzustellen.

Worauf Sie wirklich vertrauen, ist das Vertrauen des Browserautors in das Vertrauen der Zertifizierungsstelle in die Identität der Person, die das Zertifikat vorlegt. Es gibt auch oft mehr als eine Autorität zwischen Ihnen und dem Moderator, daher der Begriff "Vertrauenskette". [1]

Wenn Sie Ihr eigenes Zertifikat signieren, gibt es keine Vertrauenskette. Ihre Website stellt Ihnen Ihr eigenes Zertifikat zur Verfügung. Wenn Sie in Ihrem Browser ein eigenes Zertifikat als solches installieren Sie Vertrauen, dann wird das wie eine Autorität behandelt, genauso wie diejenigen, die vorinstalliert sind. Sie haben dann eine Vertrauenskette mit nur einem Link.

Wenn Sie dann Ihre eigenen Websites besuchen und Ihr Browser Sie warnt, dass ein nicht vertrauenswürdiges Zertifikat vorhanden ist, sollten Sie Grund zur Sorge haben, da Sie, wie bei jeder anderen Website, die ein nicht vertrauenswürdiges Zertifikat bereitstellt, nicht sicher sein können dass du mit der realen Seite kommunizierst.

Beachten Sie, dass ich noch keine Verschlüsselung erwähnt habe. Zertifikate sind ungefähr Authentifizieren der Identität der Partei, mit der Sie kommunizieren. Durch vertrauenswürdige Zertifikate können Sie sicher sein, dass Ihr Geschäft oder Ihre Bank das richtige ist. Sobald Sie ihre Identität festgestellt haben, ist der nächste Schritt die Sicherung der Kommunikation zwischen Ihnen. Es kommt vor, dass die Zertifikate auch die erforderlichen Schlüssel enthalten, um diese Sicherheit zu ermöglichen. Angenommen, Sie haben Ihre SSL richtig eingerichtet, dann ist diese Kommunikation genauso sicher wie die, die Sie mit Ihrem Geschäft oder Ihrer Bank haben würden, und Ihre Passwörter sind gleichermaßen geschützt. [2]

[1] Dies ist keineswegs ein fehlerfreies System. Ein freier Markt und ein margenschwaches, volumenstarkes Geschäft führt unweigerlich zu Kostensenkungen: http://www.theregister.co.uk/2011/04/11/status_of_ssl_analysis/

[2] Zumindest geschützt genug dass es viel billiger ist, wenn jemand in dein Haus einbricht, um deine Geheimnisse zu brechen, anstatt sie zu knacken: http://xkcd.com/538/


14
2018-02-25 15:20





Eigentlich selbstsignierte Zertifikate können sicher sein, nur nicht unter dem Modell, das wir jetzt verwenden.


Unter dem weit verbreiteten CA (Certificate Authority) -Modell jeder verwendet derzeit das Ziel, dass das Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle signiert wird, um eine Authentifizierung bereitzustellen.

Wenn wir ein Zertifikat bekommen, sehen wir wirklich nur 1 und 0, die von dem Wagenheber in der Wand kommen; Wir haben keine Ahnung, woher diese 1 und 0 kommen. Allerdings, weil das Zertifikat ist unterzeichnet durch eine CA - etwas, das niemand auf der Welt außer dieser CA tun kann - und weil wir der CA vertrauen, die Identität des Zertifikatsinhabers zu verifizieren, vertrauen wir darauf, dass das Zertifikat von wem es behauptet, stammt.

Natürlich, wenn die CA ist kompromittiert oder überprüft den Besitzer nicht korrektAlle Wetten sind aus.


Es gibt jedoch ein anderes Modell, unter dem selbstsignierte Zertifikate stehen tun Authentizität bieten. Es heißt die Notar-Modell.

Anstatt einer einzelnen Zertifizierungsstelle zu vertrauen, verteilen wir die Vertrauensstellung im Wesentlichen an eine beliebige Anzahl von Notare. Diese Notare durchforsten das Internet auf der Suche nach Zertifikaten und behalten einen Cache aller Zertifikate, die sie gesehen haben. Wenn Sie eine Site zum ersten Mal besuchen und das Zertifikat erhalten, fragen Sie eine Reihe von global verteilten Notaren nach dem letzten Zertifikat, das sie gesehen haben. Wenn sie mit dem, was du siehst, nicht übereinstimmen, könntest du Teil eines Man-in-the-Middle-Angriffs sein.

Bei diesem Modell sind selbstsignierte Zertifikate vollkommen sicher, solange wir davon ausgehen, dass der Server nicht sofort kompromittiert wird, bevor ein Notar sein Zertifikat einsehen kann.


Das Notar-Modell steckt noch in den Kinderschuhen, und es ist zweifelhaft, ob es jemals das CA-Modell übernehmen wird (Eigentlich muss es nicht - sie können im Tandem verwendet werden). Das vielversprechendste Projekt ist bisher Konvergenz.io, die ein Plugin für Firefox hat.


11
2018-02-25 19:51





Es geht nicht nur um Vertrauen ....

SSL-Zertifikate können zwei Zwecken dienen: 1) ist der Webserver, mit dem Sie sich mit dem verbinden, mit dem Sie eine Verbindung herstellen möchten; und 2) um die Kommunikationen zu verschlüsseln.

Sie können # 2 ohne # 1 haben, was Sie erreicht haben. Was bleibt, ist die Bestätigung, dass die Box, mit der Sie sich verbinden, die gewünschte ist.

Wenn es mein Server ist, habe ich kein Problem damit, ein selbstsigniertes Zertifikat von mir selbst zu verwenden - obwohl es ein gewisses Risiko gibt, dass jemand Sachen spoofieren könnte, um mich dazu zu bringen, sich mit ihrem Server zu verbinden, anstatt mit mir. Da sich niemand um mich und meinen Server kümmert und ich hier wenig Wert habe, sehe ich darin kein allzu großes Risiko.

Auf der anderen Seite, wenn es sich bei meinem Server um einen Server handeln würde, wäre ich besorgt.


2
2018-02-25 16:09



Würdest du sagen: "Wenn es dein Server ist, wäre ich nicht besorgt"? - cherrun
nein, er sagte "wenn es mein Server ist, habe ich kein Problem ... wenn es dein Server ist, dann habe ich Probleme". - Francesco
Du bist falsch. Niemand könnte Dinge vortäuschen, die dazu führen, dass Sie sich mit Ihrem Server verbinden anstatt mit Ihrem. Sie haben keinen Schlüssel, der dem von Ihnen ausgestellten selbstsignierten Zertifikat entspricht, und können Ihnen kein anderes Zertifikat präsentieren, da Sie dies nicht akzeptieren würden. - David Schwartz
@ Cherun Mein Punkt war ich vertraue mir - nicht du (oder jemand anderes). Sie können / sollten sich selbst vertrauen. - uSlackr
-1. Die Verschlüsselung erfolgt über symmetrische Schlüssel, die während des Handshakes ausgehandelt werden. Natürlich verwenden Sie das Zertifikat, um die Identität der Gegenstelle zu überprüfen, da sonst die Kommunikation nicht sonderlich verschlüsselt wäre (es könnte ein MITM sein). Wenn es Ihr Server und ein selbstsigniertes Zertifikat ist, importieren Sie Ihr Zertifikat explizit in Ihren Client. - Bruno