it-swarm.com.de

Hinzufügen eines selbstsignierten Zertifikats zum vertrauenswürdigen Speicher

Ich habe über Zertifikate gelesen und oft wird gesagt, dass selbstsignierte Zertifikate nicht zum vertrauenswürdigen Berechtigungsspeicher hinzugefügt werden sollten, und selbst wenn Sie dies getan haben, entfernen Sie es sofort nach der Verwendung.

MSDN Gewusst wie: Erstellen temporärer Zertifikate zur Verwendung während der Entwicklung

Stellen Sie sicher, dass Sie alle temporären Stammberechtigungszertifikate aus den Ordnern Vertrauenswürdige Stammzertifizierungsstellen und Persönlich löschen, indem Sie mit der rechten Maustaste auf das Zertifikat klicken und dann auf Löschen klicken.

Warum wird das Hinzufügen eines selbstsignierten Zertifikats zum vertrauenswürdigen Speicher als Sicherheitsrisiko angesehen? Wie kann dies von einem Hacker ausgenutzt werden?

Kann mir bitte jemand mit Beispiel erklären?

12
Chandan

Stellen Sie sich vor, Sie möchten https://www.google.com besuchen.

Wie können Sie sicher sein, dass Sie tatsächlich https://www.google.com besuchen? Sie können überprüfen, ob die vom SSL-Zertifikat bereitgestellten Informationen authentisch sind.

enter image description here

Wenn ein Angreifer einen MITM-Angriff gegen Sie ausführt, zeigt der Browser eine Warnung in Form eines roten Vorhängeschlosses anstelle eines grünen an.

enter image description here

Wenn ein Angreifer in der Lage ist, Ihrem vertrauenswürdigen Speicher ein selbstsigniertes Zertifikat hinzuzufügen, überprüft der Browser, ob die gefälschte Website, mit der der Angreifer Sie angreift, tatsächlich authentisch ist. Dies hat offensichtliche Auswirkungen auf die Sicherheit, da Sie die Authentizität einer Website nicht über das SSL-Zertifikat überprüfen können.

( [~ # ~] edit [~ # ~] : Vielen Dank an @Adnan und @ D3C4FF für den Hinweis, dass meine Antwort ursprünglich nicht auf Ihre Situation eingeht eigene Entwicklungszertifikate hinzufügen.)

In Bezug auf das Hinzufügen von Zertifikaten, die Sie selbst für Entwicklungszwecke erstellt haben, besteht meines Erachtens kein großes Sicherheitsrisiko. Angenommen, das von Ihnen generierte Stammzertifizierungsstellenzertifikat wird lokal gespeichert und nicht irgendwo veröffentlicht (oder besser noch gelöscht, nachdem Sie damit fertig sind), kann niemand anderes Zertifikate signieren, die in Ihrem Browser als vertrauenswürdig angezeigt werden. Der Vorschlag von Microsoft ist jedoch immer noch vernünftig. Es macht keinen Sinn, Ihren Root-Store mit zufälligen Zertifikaten zu überladen, die Sie selbst erstellt haben. Dies könnte erschwert das Erkennen eines tatsächlich böswilligen Stammzertifikats, das von einem Angreifer hinzugefügt wurde, erheblich.

6
user10211

Selbstsignierte Zertifikate

Wenn Sie einen CA (privaten) Schlüssel haben, der dem für den von Ihnen signierten CSR entspricht, erstellen Sie einen Selbst-) signiertes Zertifikat . Wenn Sie stattdessen separate Schlüssel für die Entität erstellen, deren Identität Sie bestätigen möchten, und die Zertifizierungsstelle zur Bestätigung der Identität verwendet wird, handelt es sich formal nicht mehr um ein selbstsigniertes Zertifikat.

Selbstsignierte Zertifikate werden meist zu Testzwecken verwendet und sind daher vorübergehend. Dies kann durch Einschränkung der Gültigkeitsdauer erzwungen werden, wird jedoch häufig nicht zugunsten der Zweckmäßigkeit durchgeführt.

Wie die realen Zertifizierungsstellen das machen

Die Zertifizierungsstellen verfügen über eine Hierarchie von Schlüsseln/Zertifikaten (einschließlich der Zertifikatskette, von der Sie wahrscheinlich gehört haben). Wenn Sie - oder Ihr Betriebssystemhersteller - einem Stammzertifizierungsstellenzertifikat vertrauen, bedeutet dies, dass Sie den Unterzertifizierungsstellen vertrauen, deren Zertifikate mit dem Stammzertifizierungsstellenschlüssel signiert wurden.

Dies bedeutet, dass der Stammzertifizierungsstellenschlüssel die höchste Sicherheit erfordert, da er zum Erstellen einer beliebigen Anzahl von Unterzertifizierungsstellen verwendet werden kann, denen letztendlich vertraut wird, wenn jemand dem Stammzertifizierungsstellenzertifikat vertraut.

Stellen Sie sicher, dass Sie alle temporären Stammberechtigungszertifikate aus den Ordnern Vertrauenswürdige Stammzertifizierungsstellen und Persönlich löschen, indem Sie mit der rechten Maustaste auf das Zertifikat klicken und dann auf Löschen klicken.

Sinnvoll, wenn Sie bedenken, dass ein Root-CA-Zertifikat (mit Schlüssel) das größte Missbrauchspotenzial hat und für einen Angreifer den größten Gewinn bringt. wenn kompromittiert. Sie sollten diese sicher aufbewahren, es sei denn, Sie verwenden sie gerade jetzt, um eine Sub-CA-CSR zu signieren. Entfernen Sie sie daher und bewahren Sie eine Kopie für spätere CSR-Signaturzwecke auf (falls erforderlich).

Da es sich bei dem Zitat jedoch eindeutig um "temporäre Stammberechtigungszertifikate" handelt, ist der Hinweis meines Erachtens in temporär verborgen. und das definieren Sie als Systemadministrator für Ihre eigenen Zertifizierungsstellen und Unterzertifizierungsstellen (dh, ob Sie sie in Zukunft verwenden möchten oder nicht).

Grundsätzlich können Sie in Betracht ziehen, ein temporäres CA-Zertifikat/einen temporären CA-Schlüssel so zu löschen, dass er für einen Angreifer nicht verfügbar ist, ähnlich wie bei den Sicherheitsmaßnahmen der tatsächlichen CA-Stammschlüssel. Es wird davon ausgegangen, dass diese temporäre Zertifizierungsstelle nicht mehr zum Signieren von Zertifikaten (für Entwicklungszwecke) verwendet wird.

Das kleine Wort temporär impliziert also etwas mehr im Zitat, als es auf den ersten Blick scheint.

Wie das in der Praxis aussieht

Angenommen, Sie haben einen Stammzertifizierungsstellenschlüssel, der niemals abläuft (obwohl dies in den meisten Fällen nur ein relativ langer Zeitraum ist, z. B. 20 Jahre), und ein entsprechendes Stammzertifizierungsstellenzertifikat. Sie sollten den Schlüssel vor Kompromissen schützen, insbesondere wenn das Zertifikat von vielen, vielen Personen als vertrauenswürdig eingestuft wird. Dies ist der Fall bei den Stammzertifizierungsstellenzertifikaten von beispielsweise Verisign oder Comodo.

Dieser Stammzertifizierungsstellenschlüssel wird dann verwendet ausschließlich, um das Zertifikat einer Unterzertifizierungsstelle (die einen eigenen Schlüssel hat) zu signieren, wodurch die ersten beiden Links in einer Zertifikatkette erstellt werden, die Ihr Browser oder Mit Microsoft signtool sowie vielen anderen Dienstprogrammen können Sie diese überprüfen. Der Stammzertifizierungsstellenschlüssel würde niemals verwendet werden direkt, um Ihre CSR zu verarbeiten und somit Ihre Identität als Endbenutzer/Website/Unternehmen zu bestätigen.

Jede jeweilige Unterzertifizierungsstelle wird normalerweise nur für einen bestimmten Zweck verwendet (es gibt zusätzliche Felder für bestimmte Zwecke, z. B. die Codesignatur), und ihre Gültigkeitsdauer ist eine Teilmenge der Zertifikate der Stammzertifizierungsstelle.

Aber, und das ist ein Unterschied zwischen dem Schlüssel der Stammzertifizierungsstelle und dem Schlüssel der Unterzertifizierungsstelle: Der Schlüssel der Stammzertifizierungsstelle kann sicher verstaut werden (sprechen physische Sicherheit hier) die meiste Zeit , es sei denn, dies ist unbedingt erforderlich, um die CSR für eine neue Sub-CA zu signieren, während der Sub-CA-Schlüssel wahrscheinlich auf einem hochsicheren Server zum Signieren von Kunden-CSRs verwendet wird (wenn eine echte Zertifizierungsstelle in Betracht gezogen wird wie Verisign). Dies bedeutet, dass die Unterzertifizierungsstelle einem höheren Risiko ausgesetzt ist als die Stammzertifizierungsstelle und warum Sie zunächst unterschiedliche Sicherheitsstufen anwenden möchten.

Der Vorteil besteht darin, dass im Falle einer Gefährdung der Sub-CA ihr Zertifikat in eine ARL/CRL (Berechtigungs-/Zertifikatssperrliste) aufgenommen werden kann, während das Einfügen des Stammzertifizierungsstellenzertifikats in eine ARL/CRL nur aus technischen Gründen wirklich gerechtfertigt ist (zB mit dem jetzt kompromittierten MD5-Hash, einer Schlüssellänge, die nicht mehr als sicher gilt ...). Die damit verbundenen Kosten sind auf mehreren Ebenen ausschlaggebend:

  • kosten für die sichere Aufbewahrung der Schlüssel, insbesondere der Stammzertifizierungsstellenschlüssel muss am meisten gesichert werden
  • kosten beim Ändern von Stammzertifizierungsstellenzertifikaten im Vergleich zum Ändern von Subzertifizierungsstellenzertifikaten
  • kosten beim Widerruf von (Sub-) CA-Zertifikaten
7
0xC0000022L

Wenn ein Bösewicht den privaten Schlüssel einer Zertifizierungsstelle stiehlt, der Ihr Computer vertraut, kann er gefälschte Zertifikate für beliebige Servernamen ausstellen, und Ihr Computer akzeptiert sie als echte Zertifikate, ohne auch nur eine Warnung. Da geht deine letzte Verteidigungslinie gegen Fälschung www.google.com, www.Paypal.com und so weiter - willkommen Man-in-the-Middle-Angriffe , auf Wiedersehen von Ihrem Bankkonto.

Dieses Worst-Case-Szenario kann durch Glück (das oft gut funktioniert) und durch den Schutz des privaten Schlüssels Ihrer benutzerdefinierten Zertifizierungsstelle vor Diebstahl abgewendet werden, was nicht so einfach ist, wie es scheint, insbesondere gegenüber Mitarbeitern, die häufig zeitweise physischen Zugriff haben auf Ihrem Computer, zum Beispiel, wenn Sie eine Kaffeepause einlegen (mit physischem Zugriff können sie viele schlechte Dinge gegen Sie tun, aber das Stehlen einer privaten Schlüsseldatei ist wirklich besonders diskret und schwer zu erkennen).

5
Thomas Pornin

Die Antwort von Terry gibt Ihnen eine sehr gute Erklärung dafür, wie Zertifikate funktionieren. Ich würde direkt versuchen, Ihre Frage zu beantworten.

Der gesamte Zweck digitaler Zertifikate in einem Webbrowser besteht darin, das Vertrauen zwischen dem Browser und dem Webserver zu ermöglichen, mit dem Sie möglicherweise kommunizieren möchten. Ihr Browser überprüft das vom Server gesendete Zertifikat mithilfe der Überprüfung der digitalen Signatur anhand der vorinstallierten Stammzertifikate. Dieser kryptografische Mechanismus gibt Ihnen das Gefühl, dass die Partei, mit der Sie kommunizieren, wirklich die ist, für die sie sich ausgibt.

Sie können im Browser Ihre eigene dreistufige Zertifikatshierarchie für Ihren persönlichen Gebrauch hinzufügen. Dadurch werden die Warnseiten vermieden, die von Browsern angezeigt werden, wenn sie auf ein nicht vertrauenswürdiges Zertifikat stoßen. Stellen Sie sich jedoch den Fall vor, wenn Sie ein Zertifikat verlegen, dem Ihr Browser vertraut. Ein intelligenter Angreifer kann möglicherweise ein erfolgreiches MITM mit dem gestohlenen Zertifikat durchführen. Da Ihr Browser dem Zertifikat vertraut, wird beim Besuch der gefälschten Website, die legitim aussieht, keine Warnung angezeigt.

N.b. Der gesamte Zweck eines auf SSL-Zertifikaten basierenden Vertrauens besteht darin, MITM zu vermeiden

1
Shurmajee