Warum muss ich ein SSL-Zertifikat erwerben, wenn ich eines lokal generieren kann?

57

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

SK '
quelle
17
Im Sinne der CIA-Triade für Informationssicherheit bieten selbstsignierte Zertifikate Vertraulichkeit und Integrität (dh, sie ermöglichen verschlüsselte Nachrichten zwischen zwei Parteien), aber nur von einer vertrauenswürdigen Quelle signierte Zertifikate bieten Authentizität (dh, die andere Partei in Ihrer verschlüsselten Konversation) ist eigentlich wer du denkst es ist).
Apsillers
10
Wenn DNSSEC ins Spiel kommt, können die Benutzer hoffentlich ihr eigenes Zertifikat erstellen und es in einem DNS-Eintrag speichern. Die DNSSEC-Vertrauenskette würde dann ausreichen, um zu beweisen, dass das Zertifikat dem Eigentümer der Domain gehört. (Ich denke nicht, dass dies eine formalisierte Spezifikation ist (noch), aber es wäre schön)
Jackweirdy
2
Für den internen Gebrauch können Sie das Zertifikat mithilfe von Gruppenrichtlinien (unter Windows) als vertrauenswürdig bereitstellen.
Ben
4
Ich frage mich oft, warum die Leute mein eigenes gedrucktes Geld nicht akzeptieren;)
tgkprog
1
Hinweis: Es gibt kostenlose Anbieter von Basiszertifikaten. 90% der Bedürfnisse der Menschen können damit erfüllt werden. Und einige CAs haben sehr kostengünstige Zertifikate, kein Grund, die Bank zu brechen, egal was Sie brauchen. (ohne eine Delegation natürlich)
Chris S

Antworten:

72

Ein Wort - Vertrauen. Das SSL-Zertifikat eines Anbieters, dem Ihr Browser vertraut, bedeutet, dass dieser zumindest eine grundlegende Überprüfung durchgeführt hat, um zu bestätigen, dass Sie der sind, für den Sie sich ausgeben.

Ansonsten könnte ich meine eigenen Zertifikate für google.com oder yourbank.com erstellen und so tun, als ob ich es wäre.

Bezahlte Zertifikate bieten (normalerweise) keine zusätzliche Verschlüsselungsstufe für selbstsignierte Zertifikate. Ein selbstsigniertes Zertifikat führt jedoch dazu, dass der Browser einen Fehler ausgibt.

Ja, Teile von SSL sind ein Betrug (ein Verisign-Zertifikat im Vergleich zu einem Geotrust, bei dem Verisign bis zu 100-mal teurer ist), aber nicht alle.

Wenn dies alles interne Dinge sind, ist kein kostenpflichtiges Zertifikat erforderlich, da Sie Ihre eigenen Vertrauensmethoden anwenden können (z. B. Nichts tun oder nur Fingerabdruckprüfung).

Mark Henderson
quelle
8
Wenn es sich nur um interne Inhalte handelt, können Sie Ihr Zertifikat mithilfe von Gruppenrichtlinien als vertrauenswürdig bereitstellen.
Ben
2
Auf der anderen Seite ist das Signieren des Fahrers ein Betrug. Für was es ist, ist es eine riesige Abzocke, aber wir haben keine Wahl. successfulsoftware.net/2008/02/27/…
Matt
2
@Matt - Ich habe diesen Artikel schon einmal gelesen. als wir bei der Arbeit Code Signing machen wollten. Wir haben uns dazu entschlossen, uns selbst zu signieren und den Leuten zu raten, die Signaturen zu überprüfen. Zum Glück haben wir (meistens) sehr High-Tech-Benutzer.
Mark Henderson
Selbstsignierte Zertifikate erzeugen in allen Browsern Warnungen. Zertifikate von Anbietern können von allen gängigen Browsern überprüft werden, da sie die öffentlichen Schlüssel dieser Anbieter enthalten und Ihre Zertifikate überprüfen und bestätigen können, dass sie tatsächlich vom Anbieter signiert wurden.
Matt
23

Der Sinn eines SSL-Zertifikats besteht darin, dass der Browser dem öffentlichen Schlüssel des Servers für HTTPS-Transaktionen in angemessenem Maße vertraut.

Lassen Sie uns zunächst 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 initiieren (das erste, was er tun würde, wäre, seinen eigenen öffentlichen Schlüssel zu verschlüsseln und ihn sicher zu senden). Was ist, wenn ich und der Angreifer mich in die Mitte zwängen? Ich könnte Ihren öffentlichen Schlüssel im laufenden Betrieb durch meinen ersetzen, eine verschlüsselte Verbindung mit dem Browser herstellen, alles entschlüsseln, was ich erhalte, mit Ihrem öffentlichen Schlüssel verschlüsseln und übermitteln (und umgekehrt für Datenverkehr vom Typ Antwort). Keiner würde den Unterschied bemerken, da niemand die öffentlichen Schlüssel vorher kannte.

OK, wir haben festgestellt, dass der Browser meinem öffentlichen Schlüssel vertrauen muss. Eine Möglichkeit, dies zu tun, besteht darin, alle registrierten öffentlichen Schlüssel im Browser zu speichern. Dies würde natürlich jedes Mal ein Update erfordern, wenn jemand einen öffentlichen Schlüssel registriert, und dies würde zum Aufblähen führen. Man könnte öffentliche Schlüssel auch in den Händen von DNS-Servern 1 halten , 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 Signaturmechanismus zu "verketten". Der Browser speichert die Details einiger Zertifizierungsstellen, und Ihr Zertifikat wird zusammen mit einer Reihe anderer Zertifikate gesendet, wobei jedes Zertifikat das nächste signiert und zur Stammzertifizierungsstelle / vertrauenswürdigen Zertifizierungsstelle / eingebauten Zertifizierungsstelle wechselt. Es ist die Aufgabe der Zertifizierungsstelle, sicherzustellen, dass die Domäne Ihnen gehört, bevor Sie ein Zertifikat für Sie signieren.

Da es sich bei einer Zertifizierungsstelle um ein Unternehmen handelt, wird hierfür eine Gebühr erhoben. Einige mehr als andere.


Wenn Sie ein eigenes Zertifikat erstellt haben, erhalten Sie eine Fehlermeldung ähnlich der folgenden:

Geben Sie hier die Beschreibung des Links ein

Es gibt keinen Wert für ein nicht signiertes Zertifikat. Es ist, als würde man einen Bleistift und ein Heft nehmen, einen Pass zeichnen, der behauptet, Barack Obama zu sein. Niemand wird es vertrauen.

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

Manishearth
quelle
Sie können auch DNSSEC-Stapeln für Ihr SSL-Zertifikat verwenden, sodass das Zertifikat (letztendlich) von ICANN als Zertifizierungsstelle und nicht von einer anderen Zertifizierungsstelle stammt. Keiner der aktuellen Browser unterstützt dies, obwohl Chrome dies früher getan hat.
Richard Gadsden
Und heutzutage haben Sie DANE und seine DNS TLSA-Einträge, mit denen Sie bestimmte Dienste auf bestimmte Schlüssel oder bestimmte Zertifizierungsstellen beschränken können.
Patrick Mevzek
5

Die Antwort auf Ihre Frage hängt von Ihrer Zielgruppe ab: Da das gesamte Zertifikatsystem auf "Vertrauen" basiert, müssen Ihre Benutzer die Möglichkeit haben, Ihre Zertifikate selbst zu prüfen oder einem Dritten zu vertrauen, der diese Prüfung durchgeführt hat und den Erfolg durch Signieren anzeigt Ihr Zertifikat. Der Ausdruck "um Ihre Zertifikate zu prüfen", den ich verwendet habe, ist etwas ungenau: Die lange Version sollte lauten: "um zu beweisen, dass Sie der Eigentümer des Zertifikats sind und es verwenden 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 eines von einem dieser Anbieter.

In den meisten Fällen haben die Benutzer jedoch keine Möglichkeit, diesen Vorgang selbst durchzuführen. Hier kommen diese SSL-Anbieter auf den Markt. Sie bieten den Service an, diese Überprüfungen durchzuführen und das Ergebnis der Überprüfungen durch Signieren des Zertifikats auszudrücken. Ein wichtiger Aspekt ist jedoch: Durch das Signieren eines Zertifikats drückt ein SSL-Anbieter aus, dass er die Identität des Zertifikatsausstellers 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.

mschenk74
quelle
4

Der wichtigste Punkt ist, dass die normalen Benutzer keine Möglichkeit haben, die Richtigkeit des Zertifikats zu überprüfen, wenn das Zertifikat selbst erstellt wurde. Bei einem gekauften Zertifikat wird davon ausgegangen, dass mindestens überprüft wurde, ob der Ausdruck im Zertifikat korrekt ist. Idee: Wenn Sie Ihr Telefon und Ihre Adresse in das Zertifikat eintragen, nimmt die Zertifizierungsstelle an, dies zu überprüfen, dies tun sie jedoch selten.

Außerdem ist das Kaufzertifikat nachvollziehbar, dh der Benutzer kann immer nachvollziehen, woher das Zertifikat stammt, während ein selbstsigniertes Zertifikat nur eine zufällige Identität ist.

Für viele Systeme war in der Vergangenheit eine "Codesignierung" von einer autorisierten Zertifizierungsstelle erforderlich, die richtliniengesteuert ist. Da jedoch selbstsignierte Zertifikate so zahlreich sind, sind sie jetzt nicht mehr zu 100% gültig.


quelle
4

Es gibt keinen technischen Unterschied (Ihre eigenen sind nicht weniger sicher), sondern nur einen organisatorischen: Das Zertifikat Ihrer Zertifizierungsstelle ist nicht Teil der Standardinstallation des Browsers. Dies macht es für die meisten Menschen unangenehm, eine Verbindung zu Ihrem Zertifikat herzustellen. Es wäre jedoch nicht sinnvoll, ein Zertifikat für ein internes Netzwerk zu erwerben.

Hauke ​​Laging
quelle
3

Es kommt darauf an zu vertrauen. Ein "zertifizierter" SSL-Anbieter ist angeblich seriös (obwohl dies manipuliert werden kann) im Vergleich zu einem selbstsignierten Zertifikat vom Server selbst.

Wenn Ihre Organisation über eine eigene Zertifikatsignatur verfügt, ist dies durchaus akzeptabel und sollte keine Warnung für Benutzer auslösen (vorausgesetzt, sie verwenden Ihren Zertifikatsschlüsselbund als vertrauenswürdige Quelle), es wird jedoch weiterhin eine Warnung angezeigt, wenn Sie versuchen, ihn extern zu verwenden.

Fazit: Für den internen Gebrauch ist es in Ordnung, wenn Sie es einem zahlenden Kunden extern zur Verfügung stellen, und Sie können beruhigt sein, wenn Sie keine Warnungen haben. Würden Sie sich sicherer fühlen, wenn Ihre Finanztransaktionen über eine akkreditierte Quelle abgewickelt werden, oder wenn jemand auf der Straße steht, den Sie nicht wirklich kennen?

szukalski
quelle
3

Vor kurzem hat LetsEncrypt die Verfügbarkeit seiner Befehlszeilentools zum Generieren gültiger Zertifikate angekündigt.

Keine Validierungs-E-Mails, keine komplizierte Konfigurationsbearbeitung, keine abgelaufenen Zertifikate, die Ihre Website beschädigen. Und da Let's Encrypt Zertifikate kostenlos zur Verfügung stellt, müssen Sie natürlich keine Zahlung veranlassen.

Wenn Sie sich fragen, ob diese Zertifikate in gängigen Browsern gültig sind, lautet die Antwort Ja:

Am 19. Oktober 2015 wurden die Zwischenzertifikate von IdenTrust gegenseitig signiert, wodurch alle von Let's Encrypt ausgestellten Zertifikate von allen wichtigen Browsern als vertrauenswürdig eingestuft wurden. [20]

..... Am 8. März 2016 hat Let's Encrypt nach sieben Monaten Existenz das millionste Zertifikat ausgestellt. [39]

Am 12. April 2016 hat Let's Encrypt die Beta-Version verlassen.

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

Im Zeitalter der Blockchain-Technologie und der Beseitigung von Vertrauenssystemen Dritter war es an der Zeit, die Ausstellung teurer Zertifikate durch einige ausgewählte Behörden in Frage zu stellen.

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

Surfbuds
quelle
2

Ein selbstsigniertes SSL-Zertifikat hat einfach keine Bedeutung. Es hat keinen Wert für die Außenwelt. Es ist, als würde man sagen "Ich besitze Spanien". Sie mögen ehrlich denken, dass Sie es tun, aber niemand wird Ihre Behauptung anerkennen.

Eine ähnliche Analogie wäre, etwas zu erfinden und dann zu behaupten, Sie besäßen die Rechte an der Erfindung, aber wenn Sie kein Patent beim Amt angemeldet haben, wird es schwierig sein, Ihr Wort dafür zu nehmen, oder?


Der springende Punkt eines Zertifikats ist, dass es von einer Behörde unterzeichnet ist, der Menschen vertrauen. Wenn eine Website ein gültiges SSL-Zertifikat hat, bedeutet dies, dass der Eigentümer 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, sodass es sich wahrscheinlich nicht um eine billige Phishing-Website handelt. Wenn Sie jedoch selbstsignierten Zertifikaten vertrauen, kann diese Phishing-Website einfach ein eigenes gefälschtes Zertifikat (das Sie gerne akzeptieren) und voila generieren.

Wenn es sich um ein internes Netzwerk in einem privaten Intranet handelt, vertrauen Sie sich wahrscheinlich bereits. In diesem Fall fügt ein autorisierendes Zertifikat also nicht wirklich etwas hinzu, sodass Sie die leuchtend roten Lichter ignorieren können, die Ihr Browser auf Sie wirft . Das Gleiche gilt für kleine Websites, auf denen weiterhin Client-Server-Datenverkehr verschlüsselt werden soll, Ihr Bedrohungsmodell jedoch keine starke Authentifizierung gewährleistet. In diesem Fall können Sie mit einem selbstsignierten Zertifikat auskommen und das (für Ihr Bedrohungsmodell vernachlässigbare) Zertifikat akzeptieren. Risiko eines MITM.

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


Mit anderen Worten, ein selbstsigniertes Zertifikat lautet: "Ich bestätige, dass ich der bin, der ich bin - vertraue mir !".

Thomas
quelle
2
Dies ist richtig, aber es ist immer noch erwähnenswert, dass bezahlte Zertifikate nur ein Beweis dafür sind, dass sich jemand die Mühe gemacht hat, Geld an eine Zertifizierungsstelle zu zahlen. Die Vertriebsmitarbeiter auf der anderen Seite von Verisign / Namecheap / Whatever-CA werden lediglich ein Zertifikat an [email protected] senden (z. B. an eine potenzielle Phishing-Site von exqmple.org). .
89c3b1b8-b1ae-11e6-b842-48d705
1
@tristan Ganz richtig, sie könnten bessere formale Verfahren für diese Art von Dingen verwenden, aber ich denke, die logistischen Anforderungen wären unvernünftig.
Thomas
1
@tristan - es ist ein unvollkommenes System, aber Zertifizierungsstellen haben einen gewissen Anreiz, vertrauenswürdig zu sein. Wenn sie beispielsweise einer zufälligen Person ein Google-Zertifikat geben, werden sie in kurzer Zeit aus allen Browsern entfernt. Sie bieten auch "Extended Validation" -Zertifikate an, was theoretisch bedeutet, dass sie mehr Prüfungen durchführen. Jeder von ihnen könnte entscheiden, dass dies persönliche DNA-Tests erfordert, wenn er glaubt, dass dies seinen Ruf stärkt und ihm das Geschäft bringt.
Nathan Long
1
@NathanLong Es geht nicht darum, einem skrupellosen Kerl ein "Google-Zertifikat" zu geben, sondern darum, dass selbst ein EV-Zertifikat immer noch nur eine Überprüfung ist, ob jemand auf E-Mails von dieser Domain antworten kann. Wie auch immer, wir kreisen die gleichen Punkte ein: a) Benutzer müssen immer noch wissen, dass sie payqal.com kein Geld geben dürfen, b) die Kostengrenze für SSL lohnt sich für einige Betrüger nicht, c) bezahlte Zertifikate bedeuten, dass es mehr ist Es ist wahrscheinlich, dass es sich bei einer Site wahrscheinlich um die gewünschte DNS-Suche handelt, und d) es ist ein vernünftiger Ansatz, den Startwert im Szenario "Dieser Server gehört denselben / verschiedenen Personen, die Sie zuletzt überprüft haben"
anzugeben.
Tristan, das ist ein Teil der Kosten. Sehr kostengünstige Zertifikate führen eine sehr kostengünstige Validierung durch. Sehr teure Zertifikate (Unternehmensebene) können eine sehr teure Validierung durchführen. (Obwohl der Preis keineswegs ein direkter Indikator dafür ist, wie gut eine Validierungsarbeit geleistet wurde). Einige Zertifikate geben eine absolute Garantie dafür, wer Sie sind, garantieren aber am einfachsten, dass Sie eine gewisse Kontrolle über die Domain haben, für die sie ausgestellt wurden. .
1

Um es kurz und einfach zu halten ... und ein wenig zu entstellen, was gesagt wurde ...

Es ist nicht das Problem der Verschlüsselung. Mit geeigneten Tools können Sie lokal ein Zertifikat mit der gewünschten Verschlüsselungsart 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 der Gültigkeitsdauer des Zertifikats über einen Mechanismus auf ihren Servern verfügen, mit dem Sie alles validieren können, was Sie mit Ihrer Zertifizierung online signiert haben ...

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

ZEE
quelle
1

Es tut mir leid, dass ich so spät auf diese Diskussion eingegangen bin - ich fand es erwähnenswert, darauf hinzuweisen, dass es mit openssl möglich ist, eine private Zertifizierungsstelle mit einem eigenen Stammzertifikat einzurichten und dann von dieser Zertifizierungsstelle signierte Serverzertifikate zu erstellen. Vorausgesetzt, das CA-Stammzertifikat wird in den Browser importiert und der Browser wird aufgefordert, es zu akzeptieren, wird das Serverzertifikat ohne Kommentar akzeptiert. (Offensichtlich ist dies nur eine praktikable Option, wenn die Benutzergemeinschaft klein ist und die Benutzer sich alle persönlich kennen.)

pd9370
quelle
-2

Würden Sie jemandem vertrauen, der "Trust Me" sagt? Vertrauen in die Authentizität kann nur von einer "vertrauenswürdigen Behörde" gegeben werden, der jeder vertraut. Deshalb müssen wir das große Geld für die Zertifikate aufbringen.

Ravi
quelle
2
Nach dieser Logik gäbe es keine kostenlosen Zertifikatsanbieter. Aber da sind.
Chris S