Frage Warum muss ich ein SSL-Zertifikat kaufen, wenn ich eines lokal erstellen kann?


Ich habe Probleme zu verstehen, warum wir SSL-Zertifikate kaufen müssen, wenn wir sie mit openSSL lokal generieren können. Was ist der Unterschied zwischen dem Zertifikat, das ich erwerbe, und einem Testzertifikat, das ich lokal erstelle? Ist es nur ein großer Betrug?


53
2018-04-29 11:48


Ursprung


In Bezug auf die CIA-Triade Für Informationssicherheit sorgen selbstsignierte Zertifikate Vertraulichkeit und Integrität (d. h. sie erlauben verschlüsselte Nachrichten zwischen zwei Parteien), aber sie werden nur von einer vertrauenswürdigen Quelle signiert Authentizität (d. h. die andere Partei in Ihrer verschlüsselten Konversation ist tatsächlich, wer Sie denken, dass es ist). - apsillers
Wenn DNSSEC ins Spiel kommt, können die Benutzer hoffentlich ihr eigenes Zertifikat erstellen und es in einem DNS-Datensatz speichern. Die DNSSEC-Vertrauenskette würde dann ausreichen, um zu beweisen, dass das Zertifikat dem Besitzer der Domäne gehört. (Ich glaube nicht, dass dies eine (noch) formalisierte Spezifikation ist, aber es wäre schön) - jackweirdy
Zur internen Verwendung können Sie das Zertifikat mithilfe von Gruppenrichtlinien (in Windows) als vertrauenswürdig bereitstellen. - Ben
Ich frage mich oft, warum Leute mein eigenes gedrucktes Geld auch nicht akzeptieren;) - tgkprog
Hinweis: Es gibt kostenlos Basiszertifikatanbieter. 90% der Bedürfnisse der Menschen können damit erfüllt werden. Und einige CAs haben sehr niedrige Kosten Zertifikate, kein Grund, die Bank zu brechen, egal was Sie brauchen. (kurz einer Delegation natürlich) - Chris S


Antworten:


Ein Wort - Vertrauen. Das SSL-Zertifikat eines Anbieters, dem Ihr Browser vertraut, bedeutet, dass er mindestens eine grundlegende Überprüfung durchgeführt hat, um zu sagen, dass Sie der sind, von dem Sie sagen, dass Sie es sind.

Sonst könnte ich eigene Zertifikate für google.com oder yourbank.com erstellen und so tun, als ob sie sie wären.

Bezahlte Zertifikate bieten keine zusätzliche Verschlüsselungsebene (normalerweise). Ein selbstsigniertes Zertifikat führt jedoch dazu, dass der Browser einen Fehler auslöst.

Ja Teile von SSL sind ein Betrug (ein Verisign-Zertifikat gegenüber einem Geotrust, wo Verisign bis zu 100x teurer sind), aber nicht alles.

Wenn dies alles interne Dinge sind, dann gibt es keine Notwendigkeit für ein bezahltes Zertifikat, da Sie Ihre eigenen Vertrauensmethoden verwenden können (z. B. nichts tun, oder vielleicht nur Fingerabdruck überprüfen).


67
2018-04-29 12:05



Wenn es sich um interne Daten handelt, können Sie Ihr Zertifikat mithilfe der Gruppenrichtlinie als vertrauenswürdig bereitstellen. - Ben
Auf der anderen Seite ist das Signieren von Treibern ein bisschen Betrug. Für was es ist, ja, es ist eine riesige Abzocke, aber wir haben keine Wahl. erfolgreicheSoftware.net/2008/02/27/... - Matt
@Matt - Ich habe diesen Artikel schon einmal gelesen; als wir uns mit Code-Signing bei der Arbeit beschäftigten. Wir haben uns dazu entschlossen, einfach selbst zu signieren und den Leuten zu empfehlen, die Unterschriften zu überprüfen. Zum Glück haben wir (meistens) sehr High-Tech-Nutzer. - Mark Henderson♦
Und selbstsignierte Zertifikate generieren Warnungen in allen Browsern. Zertifikate von Providern können von allen gängigen Browsern verifiziert werden, da sie die öffentlichen Schlüssel dieser Anbieter besitzen und Ihre Zertifikate verifizieren und bestätigen können, dass sie tatsächlich vom Provider signiert wurden. - Matt


Der springende Punkt eines SSL-Zertifikats besteht darin, dass der Browser dem öffentlichen Schlüssel des Servers für HTTPS-Transaktionen ein angemessenes Maß an Vertrauen entgegenbringt.

Lassen Sie uns zuerst untersuchen, was passieren würde, wenn wir keine Zertifikate verwenden würden. Stattdessen würde der Server den öffentlichen Schlüssel im Klartext senden, und der Browser würde eine verschlüsselte Kommunikation mit ihm starten (das erste, was er tun würde, wäre, seinen eigenen öffentlichen Schlüssel zu verschlüsseln und sicher zu senden). Was, wenn ich und der Angreifer mich in der Mitte verkeilen? Ich könnte Ihren öffentlichen Schlüssel im laufenden Betrieb durch meinen austauschen, eine verschlüsselte Verbindung mit dem Browser haben, alle empfangenen Daten entschlüsseln, sie mit Ihrem öffentlichen Schlüssel verschlüsseln und sie senden (und umgekehrt für antwortartigen Datenverkehr). Keine Partei würde den Unterschied bemerken, da niemand vorher die öffentlichen Schlüssel kannte.

OK, also haben wir festgestellt, dass wir einen Weg brauchen, dass der Browser meinem öffentlichen Schlüssel vertraut. Eine Möglichkeit wäre, alle registrierten öffentlichen Schlüssel im Browser zu speichern. Natürlich würde dies jedes Mal, wenn jemand einen öffentlichen Schlüssel registriert, eine Aktualisierung erfordern, und dies würde zu einem Aufblähen führen. Man könnte auch öffentliche Schlüssel in den Händen von DNS-Servern halten1, aber DNS-Server können auch gefälscht werden und DNS ist kein sicheres Protokoll.

Die einzige verbleibende Option besteht darin, das Vertrauen durch einen Signiermechanismus zu "ketten". Der Browser speichert die Details einiger CAs, und Ihr Zertifikat wird zusammen mit einer Kette anderer Zertifikate gesendet, die jeweils die nächste Signatur signieren und bis zur root / trusted / in builded CA gehen. Es ist Aufgabe der Zertifizierungsstelle, sicherzustellen, dass die Domäne Ihnen gehört, bevor Sie ein Zertifikat für Sie signieren.

Da eine CA ein Unternehmen ist, berechnen sie dafür. Einige mehr als andere.


Wenn Sie Ihr eigenes Zertifikat erstellen, erhalten Sie eine Fehlermeldung ähnlich der folgenden:

enter link description here

Ein unsigniertes Zertifikat enthält keinen Wert. Es ist, als würde man einen Bleistift und eine Broschüre nehmen, eine Zeichnung, einen Reisepass, der behauptet, dass man Barack Obama sei. Niemand wird ihm vertrauen.

1. Schließlich wird Ihr DNS-Eintrag erstellt, wenn Sie eine Domain registrieren. Die Verwendung eines robusteren Protokolls, mit dem Sie gleichzeitig öffentliche Schlüssel registrieren können, wäre ein interessantes Konzept.


23
2018-04-29 22:12



Sie können auch DNSSEC-Heften für Ihr SSL-Zertifikat verwenden, sodass das Zertifikat (letztendlich) von ICANN als CA und nicht von einer anderen Zertifizierungsstelle stammt. Keiner der aktuellen Browser unterstützt dies, obwohl Chrome das gewohnt ist. - Richard Gadsden


Die Antwort auf Ihre Frage hängt von Ihrer Zielgruppe ab: Da das gesamte System von Zertifikaten auf "Vertrauen" basiert, müssen Ihre Benutzer die Möglichkeit haben, Ihre Zertifikate selbst zu prüfen oder einer dritten Partei, die diese Überprüfung durchgeführt hat, zu vertrauen und den Erfolg durch Unterzeichnung Ihres Zertifikats zu zeigen. Der Ausdruck "Ihre Zertifikate zu prüfen", den ich verwendet habe, ist ein bisschen ungenau: Die lange Version sollte sein: "um zu beweisen, dass Sie der Besitzer des Zertifikats sind und es benutzen dürfen".

Wenn alle Ihre Benutzer Sie persönlich kennen und technisch nachweisen können, dass Ihr Zertifikat von Ihnen selbst ausgestellt wurde, besteht keine technische Notwendigkeit, ein Zertifikat eines "zertifizierten" Anbieters zu verwenden. In diesem Fall ist das selbstsignierte Zertifikat möglicherweise sogar besser als eins von einem der Anbieter.

In den meisten Fällen besteht jedoch keine Möglichkeit für die Benutzer, diesen Prozess selbst durchzuführen. Hier kommen diese SSL-Anbieter auf den Markt. Sie bieten den Service für diese Überprüfungen an und drücken das Ergebnis der Überprüfungen aus, indem sie das Zertifikat unterzeichnen. Es ist jedoch eine wichtige Tatsache zu beachten: Durch das Signieren eines Zertifikats drückt ein SSL-Anbieter aus, dass er die Identität des Zertifikatausstellers gemäß seiner eigenen Signaturrichtlinie überprüft hat. Der Benutzer muss also entscheiden, ob diese Richtlinie präzise genug ist und ob er dem Anbieter vertrauen kann.


5
2018-04-29 17:55





Der Hauptpunkt ist, wenn das Zertifikat selbst erstellt wird, haben die gewöhnlichen Benutzer keine Möglichkeit, ihre Wahrhaftigkeit zu überprüfen. Für ein gekauftes Zertifikat wird vorausgesetzt, dass zumindest überprüft wird, was im Zertifikat korrekt gedruckt wird. Idee: Wenn Sie Ihr Telefon und Ihre Adresse in das Zertifikat legen, wird die CA es vermutlich bestätigen, aber das tun sie selten.

Darüber hinaus ist das Kaufzertifikat rückverfolgbar, dh der Benutzer kann immer verfolgen, woher das Zertifikat stammt, während ein selbstsigniertes Zertifikat nur eine zufällige Identität ist.

Zu vielen Systemen wurde von einer autorisierten Zertifizierungsstelle in der Vergangenheit "Code-Signing" verlangt, was richtliniengesteuert ist, aber da selbstsigniertes Zertifikat so zahlreich ist, ist es jetzt nicht mehr 100% durchsetzbar.


4
2018-04-29 12:05





Es gibt keinen technischen Unterschied (Ihre eigenen sind nicht weniger sicher), nur eine organisatorische: Ihr CA-Zertifikat ist nicht Teil der Standardinstallation des Browsers. Dies macht es für die meisten Menschen unangenehm, sich mit Ihrem Zertifikat zu verbinden. Aber es wäre nicht sinnvoll, ein Zertifikat für ein internes Netzwerk zu kaufen.


3
2018-04-29 12:05





Es kommt auf das Vertrauen an. Ein "zertifizierter" SSL-Anbieter ist angeblich seriös (obwohl dies manipuliert werden kann) gegenüber einem selbstsignierten Zertifikat vom Server selbst.

Wenn Ihre Organisation über eine eigene Zertifikatssignatur verfügt, ist dies vollkommen akzeptabel und sollte keine Warnung für Benutzer auslösen (vorausgesetzt, sie verwenden Ihren Zertifikats-Schlüsselbund als vertrauenswürdige Quelle), erstellt jedoch weiterhin eine Warnung, wenn Sie versuchen, sie extern zu verwenden.

Fazit: Für den internen Gebrauch ist es in Ordnung, wenn Sie es extern einem zahlenden Kunden zur Verfügung stellen, ist es keine Sorge, keine Warnungen zu haben. Würden Sie sich sicherer fühlen, wenn Ihre Finanztransaktionen über eine akkreditierte Quelle laufen oder ein Typ auf der Straße steht, den Sie nicht wirklich kennen?


3
2018-04-29 12:12





Vor kurzem, LetsEncrypt hat die Verfügbarkeit ihrer Kommandozeilen-Tools angekündigt, um gültige Zertifikate zu generieren.

Keine Validierungs-E-Mails, keine komplizierte Konfigurationsbearbeitung, keine abgelaufenen Zertifikate, die Ihre Website zerstören. Und natürlich, weil Let's Encrypt Zertifikate kostenlos zur Verfügung stellt, müssen Sie keine Zahlungen arrangieren.

Für diejenigen, die sich fragen, ob diese Zertifikate in den gängigen Browsern gültig sind, lautet die Antwort: Ja.

Am 19. Oktober 2015 wurden die Zwischenzertifikate von IdenTrust kreuz-signiert, was dazu führte, dass alle von Let's Encrypt ausgestellten Zertifikate von allen gängigen Browsern als vertrauenswürdig eingestuft wurden. [20]

..... Am 8. März 2016 hat Let's Encrypt nach sieben Monaten seines Bestehens sein millionstes Zertifikat ausgestellt. [39]

Am 12. April 2016, Let's Encrypt linke Beta.

Link für Systemadministrator und Entwickler: https://letsencrypt.org/getting-started/

Im Zeitalter der Blockchain-Technologie und der Abschaffung von Fremd-Trust-Systemen war es an der Zeit, dass die Ausgabe teurer Zertifikate durch einige ausgewählte Behörden in Frage gestellt wurde.

Obwohl Letsencrypt mit der Blockchain-Technologie nichts zu tun hat, ist es ein Start in die richtige Richtung. Die Notwendigkeit, jedes Jahr eine hohe Gebühr an eine teure Zertifizierungsstelle zu zahlen, kommt hoffentlich zu einem logischen Ende.


3
2018-04-21 13:36





Einfach gesagt, ein selbstsigniertes SSL-Zertifikat bedeutet nichts. Es hat keinen Wert für die Außenwelt. Es ist wie "Ich besitze Spanien". Sie können ehrlich denken, dass Sie tun, aber niemand wird Ihren Anspruch erkennen.

Eine ähnliche Analogie wäre es, etwas zu erfinden und dann zu behaupten, dass Sie die Rechte an der Erfindung besitzen, aber wenn Sie kein Patent im Büro angemeldet haben, wird es schwer sein, Ihr Wort dafür zu nehmen, oder?


Der springende Punkt eines Zertifikats ist, dass es von einer Autorität signiert ist, der die Leute vertrauen. Wenn eine Website ein gültiges SSL-Zertifikat besitzt, bedeutet dies, dass der Besitzer sich die Mühe gemacht hat, seine Website zu registrieren, das SSL-Zertifikat zu bezahlen und eine offizielle Zertifizierung von einer echten Zertifizierungsstelle erhalten hat, also wahrscheinlich keine billige Phishing-Website. Auf der anderen Seite, wenn Sie selbst signierten Zertifikaten vertrauen, dann könnte besagte Phishing-Webseite einfach sein eigenes gefälschtes Zertifikat generieren (welches Sie gerne annehmen) und voila.

Natürlich, wenn dies ein internes Netzwerk in einem privaten Intranet ist, dann vertrauen Sie sich wahrscheinlich schon gegenseitig. In diesem Fall fügt ein autoritatives Zertifikat nichts hinzu, so dass Sie die hellen roten Lichter, die Ihr Browser Ihnen zuwirft, ignorieren können . Gleiches gilt für kleine Websites, auf denen der Client-Server-Datenverkehr zwar verschlüsselt werden soll, Ihr Bedrohungsmodell jedoch keine starke Authentifizierung zulässt. In diesem Fall können Sie mit einem selbstsignierten Zertifikat auskommen und (durch Ihr Bedrohungsmodell vernachlässigbar) akzeptieren. Risiko eines MITM.

Was wahrscheinlich befriedigend ist, wenn man bedenkt, wie teuer vertrauenswürdige SSL-Zertifikate sein können.


Mit anderen Worten, ein selbstsigniertes Zertifikat bedeutet: "Ich bestätige, dass ich bin, wer ich bin - Vertrau mir! ".


2
2018-04-29 14:56



Das ist richtig, aber es ist trotzdem erwähnenswert bezahlte Zertifikate sind nur ein Beweis dafür, dass jemand die Mühe gemacht hat, Geld an eine Zertifizierungsstelle zu zahlen. Die Verkäufer auf der anderen Seite von Verisign / Namecheap / Whatever-CA werden nicht mehr tun, als ein Zertifikat an hostmaster@example.org zu senden (zB werden sie eins zu einer potentiellen Phishing-Seite von exqmple.org schicken) . - 89c3b1b8-b1ae-11e6-b842-48d705
@tristan Ganz richtig, sie könnten bessere formelle Verfahren für diese Art von Sache verwenden, aber ich denke, die logistischen Anforderungen wären unvernünftig. - Thomas
@tristan - es ist ein unvollkommenes System, aber die Behörden haben einen Anreiz, vertrauenswürdig zu sein. Würden sie beispielsweise einer zufälligen Person ein Google-Zertifikat geben, würden sie in kurzer Zeit aus allen Browsern entfernt. Sie bieten auch "Extended Validation" -Zertifikate, die theoretisch bedeuten, dass sie mehr Prüfungen durchführen. Jeder von ihnen könnte entscheiden, dass dies persönliche DNA-Tests erfordert, wenn sie dachten, dass dies ihren Ruf stärken und ihnen Geschäft verschaffen würde. - Nathan Long
@NathanLong Es geht nicht darum, einem skrupellosen Kerl ein "Google-Zertifikat" zu geben, es ist sogar, dass sogar ein EV-Zertifikat nur ein "jemand kann auf E-Mails von dieser Domain antworten" überprüft. Wie auch immer, wir drehen die gleichen Punkte um: a) Benutzer müssen immer noch wissen, dass sie payqal.com kein Geld geben, b) die Kostenbarriere für SSL ist es für einige Betrüger nicht wert, c) bezahlte Zertifikate bedeuten, dass es das ist wahrscheinlicher dass eine Site wahrscheinlich die gewünschte DNS-Suche ist, und d) es ein sinnvoller Ansatz ist, den Seed-Wert im Szenario "Dieser Server gehört denselben / anderen Personen als bei der letzten Überprüfung" bereitzustellen. - 89c3b1b8-b1ae-11e6-b842-48d705
Tristan, das ist ein Teil der Kosten. Sehr preiswerte Zertifikate machen eine sehr kostengünstige Validierung. Sehr teure Zertifikate (auf Unternehmensebene) können sehr teuer validiert werden. (Obwohl der Preis kein direkter Indikator dafür ist, wie gut ein Validierungsauftrag geleistet wurde) Einige Zertifikate geben eine absolute Garantie dafür, wer Sie sind, aber die meisten garantieren nur, dass Sie irgendeine Kontrolle über die Domain haben, für die sie ausgestellt wurden. .


Um es kurz und einfach zu halten ... und etwas zu entkräften, was gesagt wurde ...

Es ist nicht das Problem mit der Verschlüsselung, mit geeigneten Tools können Sie ein Zertifikat lokal mit dem gewünschten Verschlüsselungstyp erstellen ... und ein gültiges Zertifikat erhalten.

Der Hauptvorteil, den Sie beim Kauf eines Zertifikats von einer Zertifizierungsstelle haben, besteht darin, dass sie während des Zeitraums, in dem das Zertifikat gültig ist, auf ihren Servern einen Mechanismus zur Validierung aller mit Ihrer Zertifizierung online unterzeichneten Zertifikate ...

Ihre PCs müssen nicht verbunden sein, damit Ihre digitalen Produkte mit Ihrem Zertifikat verifiziert und validiert werden können. Sie sollten die Validierung an die Zertifizierungsstelle weiterleiten.


1
2018-05-04 16:12





Es tut mir leid, dass ich so spät zu dieser Diskussion gekommen bin - ich dachte, es sei darauf hingewiesen, dass es mit openssl möglich ist, eine private CA mit eigenem Root-Zertifikat einzurichten und dann von dieser CA signierte Server-Zertifikate zu erstellen. Wenn das CA-Stammzertifikat in den Browser importiert wird und der Browser es akzeptiert, wird das Serverzertifikat ohne Kommentar akzeptiert. (Dies ist natürlich nur eine praktikable Option, wenn die Benutzergemeinschaft klein ist und die Benutzer sich persönlich kennen.)


1
2017-10-29 23:21