Frage:
Warum sind selbstsignierte Zertifikate nicht vertrauenswürdig und gibt es eine Möglichkeit, sie vertrauenswürdig zu machen?
Praz
2016-02-04 18:46:16 UTC
view on stackexchange narkive permalink

Ich habe lokal ein Stammzertifizierungsstellenzertifikat erstellt. Ich habe das CA-Zertifikat zum Signieren des IA-Zertifikats und das IA-Zertifikat zum Signieren des Serverzertifikats verwendet. Wenn ich versuche, auf den lokalen Server zuzugreifen, der das Serverzertifikat verwendet, wird eine Sicherheitsrisikowarnung angezeigt. Gibt es eine Möglichkeit, die Warnung nicht zu geben?

Grundsätzlich möchte ich nur wissen, ob es möglich ist, ein selbstsigniertes Zertifikat als vertrauenswürdig zu kennzeichnen.

Ein selbstsigniertes Zertifikat ist so, als würde man in Ihrem Haus ein goldfarbenes Abzeichen herstellen und es dann den Leuten zeigen, die sagen, Sie seien ein Polizist. Vielleicht können Sie diesen Trick mit Mitgliedern Ihrer Familie machen, die akzeptieren, dass Sie verantwortlich sind, aber wenn Sie ein echter, öffentlicher Strafverfolgungsbeamter sein wollen, müssen Sie von einer zentralen Behörde ** jedem vertraut werden ** sonst Trusts, wie die Regierung Ihrer Stadt oder Ihres Staates. Andernfalls geben Sie sich nur als Polizist aus, und die Leute sollten Ihnen misstrauen.
-1
'Selbstsigniert' ist orthogonal zu 'vertrauenswürdig'. Alle Zertifikate in meinem Trust Store sind selbstsigniert. Was ist mit Ihren? Die Frage lautet also einfach: "Wie kann ich meinem Browser sagen, dass er einem zuvor nicht vertrauenswürdigen Zertifikat vertrauen soll?".
Aus diesem Grund akzeptieren wir keine selbstsignierten Zertifikate:> Bitte entschuldigen Sie Juans Abwesenheit von der Schule gestern. >> -Epsteins Mutter. (Wenn Sie mit dem TV-Programm * Welcome Back, Kotter * nicht vertraut sind, erhalten Sie möglicherweise keine Referenz.)
@ToddWilcox sehr nette, auf den Punkt gebrachte Erklärung. Ich könnte am Ende diesen verwenden. \ * yoink \ *
@kubanczyk - Er könnte sein Serverzertifikat vom Browser als vertrauenswürdig erachten lassen, indem er es direkt in den Vertrauensspeicher legt, das IA-Zertifikat einfügt oder das CA-Zertifikat einfügt. Normalerweise möchte er die CA einfügen, aber das Der Trust Store muss nicht nur aus selbstsignierten Zertifikaten bestehen. Beim Cross-Signing können Zertifikate sowohl selbstsignierte Roots als auch von einem anderen Zertifikat signiert sein.
@ToddWilcox Das ist das Gleiche, was die "zentrale Behörde" tut, außer dass wir alle den Autoren vertrauen, anstatt nur einer engen Familie. Anstelle eines Aufkleberabzeichens stellen Sie sich das folgendermaßen vor: Es entspricht dem coolsten Kind auf einer Party, das Sie einlädt und allen sagt, dass er cool ist, weil Sie ihn dafür bezahlt haben. Es gibt keine wirkliche Autorität, kein Vertrauen usw. außer dem Namen des coolsten Kindes, das zusammen mit wenigen anderen coolen Kindern auf dem monolithischen Granitfelsen gemeißelt wurde, der die SSL-Authentifizierung darstellt. Comodo? Komm schon ... erinnerst du dich, wie sie in den 90ern waren? Sie sind immer noch: nervige unerbittliche SSL-Telemarketer-Spammer. Kein vertrauenswürdiger;)
@ToddWilcox Eine grobe Analogie, die impliziert, dass selbstsignierte Zertifikate von Natur aus rechtswidrig oder unehrlich sind. Das gibt es nicht. Ein selbstsigniertes Zertifikat ist nichts anderes als das, was es ist. Ein Zertifikat, das von jemandem signiert wurde, der nicht das Vertrauen des Betriebssystemherstellers, des Browserherstellers oder des App-Herstellers gewonnen hat.
Randnotiz: Wenn Sie versuchen, ein gültiges Zertifikat für eine Public Domain zu erhalten, können Sie letsencrypt verwenden. Sie befinden sich endlich in der öffentlichen Beta. Ich habe diese letzte Nacht bei der Arbeit am Server eines Clients entdeckt und in wenigen Minuten 4-5 Domains mit Zertifikaten eingerichtet. Es ist kostenlos und Open Source - https://letsencrypt.org/
@ToddWilcox Das wäre eine großartige Antwort.
Sie können auch den CA-Teil überspringen, ein selbstsigniertes Serverzertifikat erstellen und es an alle Browser verteilen, die ihm vertrauen sollten.Dies beseitigt tatsächlich viele Komplikationen und implizites Vertrauen (es lässt sich einfach nicht sehr gut skalieren).
Acht antworten:
BadSkillz
2016-02-04 18:51:58 UTC
view on stackexchange narkive permalink

Sie müssen das Stammzertifikat in den Trust Store für den Browser importieren. Sobald der Browser weiß, dass Sie diesem Stammzertifikat vertrauen, werden alle von diesem signierten Zertifikate als vertrauenswürdig angezeigt.

Beachten Sie, dass dadurch die Verbindung nur für Sie vertrauenswürdig wird, für alle anderen, die nicht über das Stammzertifikat verfügen installiert wird weiterhin ein Fehler angezeigt.

Beachten Sie, dass Ihr selbstsigniertes Zertifikat je nach Konfiguration und Hinzufügen des Zertifikats möglicherweise Zertifikate für jede Domäne signieren kann. (Dies ist * nicht * etwas, was Sie wollen.)
@duskwuff: Eigentlich kann es genau das sein, was Sie wollen - wenn Sie Ihre eigene Zertifizierungsstelle einrichten möchten, tun dies viele Unternehmen für ihr internes Netzwerk. Wahrscheinlich ist dies hier jedoch nicht der Fall.
@duskwuff, Genau so funktioniert ein https-Proxy wie BlueCoat. Die Organisation kauft den Proxy und installiert dann das selbstsignierte Zertifikat des Proxys im vertrauenswürdigen Stammspeicher jedes Computers der Organisation. Der Proxy MITM dann alle Verbindungen, einschließlich verschlüsselter Verbindungen, um sicherzustellen, dass "schlechte Dinge" nicht durch den Proxy gelangen dürfen.
sethmlarson
2016-02-04 18:52:10 UTC
view on stackexchange narkive permalink

Selbstsignierte Zertifikate werden von Ihrem Browser von Natur aus nicht als vertrauenswürdig eingestuft, da ein Zertifikat selbst keine Vertrauensstellung bildet. Die Vertrauensstellung wird von einer Zertifizierungsstelle signiert, der JEDER vertraut. Ihr Browser vertraut Ihrem selbstsignierten Zertifikat einfach nicht so, als wäre es ein Stammzertifikat. Damit Ihr Browser Ihr Zertifikat akzeptiert, rufen Sie die Konfigurationen Ihres Browsers auf und fügen Sie das Zertifikat als Stammzertifikat hinzu.

Der beste Weg, um ein selbstsigniertes Zertifikat als vertrauenswürdig zu betrachten, besteht darin, eine Schlüsselzeremonie durchzuführen Dies ist im Grunde eine große öffentliche Veranstaltung, bei der sich alle Kryptographen und Sicherheitsexperten versammeln, um zu sehen, wie eine Stammzertifizierungsstelle ihr Schlüsselpaar generiert und sich selbst als Stammzertifizierungsstelle deklariert. Alles wird aufgezeichnet: Video, wer jeder ist und was jeder von Anwälten tut. Der private Schlüssel wird in viele verschiedene Teile aufgeteilt und in der Regel nach dem Signieren eines einzelnen Zertifikats, das als Vermittler zum Signieren anderer Zertifikate verwendet wird, separat in Safes gespeichert. Sie können über das typische Verfahren lesen, wenn Sie möchten. Natürlich benötigen Sie sowohl technologische als auch physische Sicherheit auf dem neuesten Stand der Technik, damit jeder Ihre Root-Zertifizierungsstelle verwenden oder ihr vertrauen kann. Danach können Ihre Zertifikate in Browser-Distributionen enthalten sein und dann von der Öffentlichkeit verwendet werden, um Vertrauensketten von Zertifikaten zu erstellen.

Der Teil "Jeder vertraut" der obigen Aussage ist der Hauptfehler des gesamten Systems. Meiner Meinung nach basiert die gesamte TLS-Infrastruktur auf einem Kartenhaus, und niemand möchte es zugeben.
@JonTrauntvein Ich stimme dem zu (und andere sind bereit, es zuzugeben), dass es einige Teile von TLS gibt, die nicht gut sind. Das erste ist das Zertifikatssperrsystem, das im Grunde nichts tut, da die meisten Browser ignorieren, ob ein Zertifikat widerrufen wird oder nicht, und das zweite, dass einige CAs des Nationalstaates die oben genannten Sicherheitsrichtlinien ** nicht ** befolgen, aber immer noch mit allen wichtigen Sicherheitsrichtlinien verpackt sind Browser aus geschäftspolitischen Gründen.
Ich würde sagen, dass "die Vertrauensstellung von einer Zertifizierungsstelle stammt, der Ihr Browserhersteller vertraut und der Sie Ihrem Browserhersteller vertrauen".Wenn es einige Unterschiede zwischen Ihnen und Ihrem Browserhersteller gibt, können Sie Stammzertifizierungsstellen zu Ihrem Browser hinzufügen / daraus entfernen.
BlueRaja - Danny Pflughoeft
2016-02-04 23:41:22 UTC
view on stackexchange narkive permalink

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


Unter der weit verbreiteten Zertifizierungsstelle (Zertifizierungsstelle) ) Modell, das jeder derzeit verwendet. Der Zweck des von einer vertrauenswürdigen Zertifizierungsstelle signierten Zertifikats besteht darin, eine Authentifizierung bereitzustellen.

Wenn wir ein Zertifikat erhalten, sehen wir nur 1 und 0 kommt von der Buchse in der Wand; Wir haben keine Ahnung, woher diese Einsen und Nullen kamen. Da das Zertifikat jedoch von einer Zertifizierungsstelle signiert ist - etwas, das niemand auf der Welt außer dieser Zertifizierungsstelle tun kann - und weil wir der Zertifizierungsstelle vertrauen, dass sie die Identität des Eigentümers des Zertifikats überprüft, vertrauen wir dem Das Zertifikat stammt von dem, auf den es Anspruch erhebt.

Wenn die Zertifizierungsstelle kompromittiert ist oder den Eigentümer nicht korrekt verifiziert, gelten natürlich alle Wetten aus.


Es gibt jedoch ein anderes Modell, bei dem selbstsignierte Zertifikate Authentizität bieten. Es wird als Notarmodell bezeichnet.

Anstatt einer einzelnen Zertifizierungsstelle zu vertrauen, verteilen wir das Vertrauen im Wesentlichen an eine beliebige Anzahl von Notaren . Diese Notare durchsuchen das Internet nach Zertifikaten und speichern alle Zertifikate, die sie gesehen haben. Wenn Sie zum ersten Mal eine Website besuchen und das Zertifikat erhalten, fragen Sie eine Reihe von weltweit verteilten Notaren, welches Zertifikat sie zuletzt gesehen haben. Wenn sie nicht mit dem übereinstimmen, was Sie sehen, können Sie Teil eines Man-in-the-Middle-Angriffs sein.

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


Das Notarmodell steckt noch in den Kinderschuhen und es ist zweifelhaft, ob es jemals das CA-Modell übernehmen wird (Eigentlich muss es nicht - sie können zusammen verwendet werden) . Das bisher vielversprechendste Projekt ist Convergence.io mit einem Plugin für Firefox.

+1, um ein besseres Modell zu erklären, anstatt nur das Authentifizierungsschema (bekannt als "Gewinnmodell") zu wiederholen, mit dem wir uns derzeit beschäftigen. Gott bewahre, dass die CAs dafür verlieren ... so ziemlich nichts. (GlobalSign -> 250 USD / Jahr DV -> ... ROFL)
Dies ist im Wesentlichen ein verteilter Authentifizierungsalgorithmus für Lehrbücher, bei dem das Netzwerk ihm vertraut, solange ein bestimmter Schwellenwert von Knoten einem Zertifikat vertraut. In diesem Bereich wird noch viel geforscht, und es ist interessant, wenn Sie sich für solche Dinge interessieren.
Giacomo1968
2016-02-05 11:25:34 UTC
view on stackexchange narkive permalink

Kürzere Antwort.

Viele Antworten hier, aber keine scheint direkt auf den Punkt zu kommen: Ohne einen neutralen und anerkannten Dritten - wie eine Zertifizierungsstelle -, der den Zertifikatsbesitz überprüft, ist ein Zertifikat bedeutungslos.

Längere Antwort.

Zum besseren Verständnis haben Sie beim Erstellen einer HTTPS-Verbindung die folgende Kette:

  • Ein Client-Web Browser, der die Anforderung an den Server sendet.
  • Der Remote-Webserver sendet Daten an den Client zurück.
  • Und ein HTTPS-Zertifikat, das von einem neutralen Drittanbieter autorisiert wurde und bestätigt, dass der Server wer ist Dies ist der Fall, und die Verschlüsselung ist aus diesem Grund gültig.

Ein selbstsigniertes Zertifikat ist von Natur aus nicht vertrauenswürdig, da jeder ein selbstsigniertes Zertifikat generieren kann. Jeder, einschließlich einer Entität, die absichtlich vorgibt, etwas / jemand zu sein, das sie nicht sind. Mit einem selbstsignierten Zertifikat gibt es einfach keinen vertrauenswürdigen Dritten, für den die grundlegenden menschlichen Verfahren so festgelegt sind, dass einfach angegeben wird: „Okay, diese Domain verfügt über ein Zertifikat, das wir ausgestellt haben, und daher können Sie ihnen vertrauen. Wir sagen, dass sie tatsächlich die Domäne sind, für die der Anspruch erhoben wird, und kein Betrüger. “

Und da jeder auf der Welt selbst ein selbstsigniertes Zertifikat erstellen kann, weist seine Verwendung inhärente Vertrauensprobleme auf. Was ein Zertifikat gültig macht, hat sehr wenig mit Deep-Technology- oder Verschlüsselungstechniken zu tun, aber was es gültig macht, ist ein Prozess, der sich um einen neutralen - und anerkannten - Dritten dreht, der a validiert Verwendungsverfahren und Browserhersteller, die diese Verfahren einhalten.

Letztendlich ist ein Verschlüsselungsschlüsselpaar ein völlig bedeutungsloser Stapel von Bits und Bytes, ohne dass die sie umgebenden Prozesse und Verfahren erzwungen werden müssen .

Benoit Esnard
2016-02-05 19:54:05 UTC
view on stackexchange narkive permalink

Selbstsignierte Zertifikate können nicht als vertrauenswürdig eingestuft werden, da jeder in der Lage ist, eines zu erstellen.

Ein Angreifer, der einen MITM-Angriff ausführt, kann jedes Zertifikat leicht durch ein selbstsigniertes Zertifikat ersetzen Sie können sich als eine Website ausgeben, die Sie gerade durchsuchen, auch wenn Sie HTTPS verwenden.

Aus diesem Grund verwenden wir vertrauenswürdige Zertifizierungsstellen, um sicherzustellen, dass Zertifikate nicht gefälscht werden können.

jwilleke
2016-02-05 21:12:50 UTC
view on stackexchange narkive permalink

Wir alle brauchen einen kleinen Kontext.

Es gibt einen Unterschied zwischen "nicht vertrauenswürdig" und sicher.

Und "vertrauenswürdig" bedeutet nicht unbedingt sicher (oder authentisch)

Ein selbstsigniertes Zertifikat in einem isolierten Netzwerk mit nur einem Server und einem Client ist wahrscheinlich sicherer als jedes "vertrauenswürdige" Zertifikat.

Und "vertrauenswürdig" impliziert NUR, dass ein Zertifikat der Zertifizierungsstelle vorliegt wurde dem "Trusted Certificate Store" für den Client hinzugefügt. Wenn das Certificate Authority-Zertifikat während einer "Phishing" -Sitzung hinzugefügt wurde, ist das Zertifikat nicht sicher.

Ich bin kein Fan davon Es gibt oft Hunderte von "vertrauenswürdigen" Zertifizierungsstellen, die von "anderen" im Client platziert wurden, aber ich kenne auch keinen besseren Ansatz.

Sicherlich müssen die Zertifizierungsstellen einen besseren "Überprüfungsprozess" durchführen ( im Allgemeinen) als jetzt, bevor sie ein Zertifikat ausstellen.

Gryzorz
2016-02-04 20:22:51 UTC
view on stackexchange narkive permalink

Jeder Anwendung muss die Liste der "vertrauenswürdigen Stammzertifikate" zugewiesen werden.

Bei einem Browser gibt es eine definierte Liste, die standardmäßig mit jedem Browser geliefert wird, diese Liste jedoch nicht Enthalten Sie Ihr Zertifikat.

Stellen Sie sich vor, Sie müssen nicht die Liste der Zertifikate angeben, denen Sie vertrauen. Dann kann jeder eine https-Website einrichten, die ein Browser auf der Welt ohne Vorwarnung akzeptieren würde Sicherheitsrisiko.

Auf der anderen Seite würde es sofort funktionieren, wenn Ihr CA-Zertifikat selbst von einem der standardmäßigen vertrauenswürdigen Zertifikate signiert ist ... aber Sie müssen bezahlen.

Es gibt genügend Antworten zum Hinzufügen eines CA-Zertifikats zur vertrauenswürdigen Liste, sodass ich diesen Teil überspringe.

Dio Phung
2017-06-28 12:24:37 UTC
view on stackexchange narkive permalink

Wenn Sie dies für Browser tun möchten, gehen Sie wie folgt vor:

Für Chrome 58+: - Einstellungen -> Erweiterte Einstellungen anzeigen -> Zertifikate verwalten -> Importieren -> Durchsuchen -> Vertrauenswürdig auswählen Stammzertifizierungsstellen -> Klicken Sie im Popup auf Ja.



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...