Die Kryptographie mit öffentlichen Schlüsseln, auch asymmetrische Verschlüsselung genannt, basiert auf Berechnungen, die mit den schnellsten Computern von heute fast unmöglich zu knacken sind. Bei der Verschlüsselung mit privaten und öffentlichen Schlüsseln gibt es jedoch noch ein Problem. Es wird davon ausgegangen, dass die öffentlichen Schlüssel offen sind, was bedeutet, dass jeder Zugang zu diesen Schlüsseln hat. Nichts hindert einen böswilligen Akteur daran, einen öffentlichen Schlüssel zu beanspruchen, der ihm nicht gehört. Dadurch entsteht ein Integritätsproblem, das durch die Verwendung einer Public Key Infrastructure (PKI) gelöst werden kann.
Mit PKI können Benutzer Informationen in einem unsicheren Netz wie dem Internet sicher und vertraulich austauschen. Um dies zu erreichen, verwendet PKI zwei ähnlich klingende Technologien: digitale Signaturen und digitale Zertifikate; beide sind wesentliche Komponenten im Vertrauensmodell der Zertifizierungsstelle.
Beispiel für eine digitale Signatur
Schauen wir uns ein Beispielszenario an, um den allgemeinen Prozessablauf beim Verschlüsseln einer Nachricht mit digitalen Signaturen und digitalen Zertifikaten zu verstehen.
Erlauben Sie mir, unsere gemeinsamen Akteure namens Alice und Bob noch einmal vorzustellen.
- Die Erstellung einer digitalen Signatur beginnt, wenn Alice ihren privaten Schlüssel verwendet, um eine Nachricht zu verschlüsseln.
- Die Ausgabe, auch als Hash-Wert bekannt, wird dann an die Nachricht angehängt und an Bob gesendet.
- Wenn Bob die Nachricht erhält, entschlüsselt er sie zunächst mit dem öffentlichen Schlüssel, den Alice zur Verfügung gestellt hat, um zu beweisen, dass sie von Alice stammt.
- Dann gibt Bob die Nachricht in dieselbe Einweg-Hash-Funktion ein und vergleicht sie mit dem angehängten Hash-Wert.
- Wenn die Hash-Werte gleich sind, wurde die Nachricht nicht verändert.
- Bob muss die Echtheit seines öffentlichen Schlüssels gegenüber Alice nachweisen. Er muss ein digitales Zertifikat erhalten, indem er seinen öffentlichen Schlüssel und Informationen über sich selbst bei einer Zertifizierungsstelle anmeldet. Bob erhält ein Zertifikat, das seinen öffentlichen Schlüssel und die von ihm angegebenen Informationen enthält. Die Zertifizierungsstelle verwendet dann ihren privaten Schlüssel, um Bobs Zertifikat digital zu signieren, und fügt den öffentlichen Schlüssel der Zertifizierungsstelle an Bobs neues Zertifikat an.
- Bob zeigt Alice sein neues digitales Zertifikat. Sie kann beweisen, dass Bobs öffentlicher Schlüssel gültig ist, indem sie die Signatur mit dem öffentlichen Schlüssel der Zertifizierungsstelle entschlüsselt und validiert.
- Dann gibt Alice das Zertifikat von Bob in dieselbe Einweg-Hash-Funktion ein, die bei der Erstellung des Zertifikats verwendet wurde. Bobs öffentlicher Schlüssel ist authentisch, wenn der Hashwert mit dem im Zertifikat angegebenen Wert übereinstimmt.
- Wenn die Hash-Werte nicht übereinstimmen, wurde etwas in Bobs Zertifikat geändert, seit die Zertifizierungsstelle es zuletzt signiert hat. Daher kann Alice den Informationen auf dem Zertifikat, einschließlich Bobs öffentlichem Schlüssel, nicht vertrauen.
Bob weiß nun, ob er darauf vertrauen kann, dass Alice die Nachricht digital signiert und überprüft hat, ob sie verändert worden ist.
Beispiel für digitale Zertifikate
Mit X.509-PKI-Zertifikaten werden öffentliche Schlüssel sicher verteilt, um sicherzustellen, dass die öffentlichen Schlüssel rechtmäßigen Eigentümern gehören und nicht von böswilligen Akteuren gefälscht wurden. Die X.509-Zertifikate werden von einer vertrauenswürdigen Zertifizierungsstelle erstellt und signiert.
Alice und Bob sind wieder da, und dieses Mal möchte Alice die Echtheit von Bobs signiertem Zertifikat bestätigen.
- Bob muss die Echtheit seines öffentlichen Schlüssels gegenüber Alice nachweisen. Er muss ein digitales Zertifikat erhalten, indem er seinen öffentlichen Schlüssel und Informationen über sich selbst bei einer Zertifizierungsstelle anmeldet. Bob erhält ein Zertifikat, das seinen öffentlichen Schlüssel und die von ihm angegebenen Informationen enthält. Die Zertifizierungsstelle verwendet dann ihren privaten Schlüssel, um Bobs Zertifikat digital zu signieren, und fügt den öffentlichen Schlüssel der Zertifizierungsstelle an Bobs neues Zertifikat an.
- Bob zeigt Alice sein neues digitales Zertifikat. Sie kann beweisen, dass Bobs öffentlicher Schlüssel gültig ist, indem sie die Signatur mit dem öffentlichen Schlüssel der Zertifizierungsstelle entschlüsselt und validiert.
- Dann gibt Alice das Zertifikat von Bob in dieselbe Einweg-Hash-Funktion ein, die bei der Erstellung des Zertifikats verwendet wurde. Bobs öffentlicher Schlüssel ist authentisch, wenn der Hashwert mit dem im Zertifikat angegebenen Wert übereinstimmt.
- Wenn die Hash-Werte nicht übereinstimmen, wurde etwas in Bobs Zertifikat geändert, seit die Zertifizierungsstelle es zuletzt signiert hat. Daher kann Alice den Informationen auf dem Zertifikat, einschließlich Bobs öffentlichem Schlüssel, nicht vertrauen.
Arten von Behörden
Die Registrierungsstelle (RA) ist ein Server, der darauf wartet, dass Kunden ihre Certificate Signing Requests (CSR) senden. Normalerweise wird die Erstellung eines Zertifikats mit öffentlichem Schlüssel dadurch eingeleitet, dass das Subjekt eine Anfrage an die RA stellt. Das Subjekt generiert ein Schlüsselpaar, das dann zusammen mit einer Zertifikatsanforderung an die RA gesendet wird.
Wenn die Anträge eingegangen, validiert und signiert sind, kann die Zertifizierungsstelle ein Zertifikat aus dem übermittelten Schlüsselpaar erstellen. Die RA validiert und signiert dann den CSR, der dann an eine Zertifizierungsstelle gesendet wird.
Wenn das vom Subjekt erzeugte Schlüsselpaar ungültig ist oder die Anfrage nicht die Informationen enthält, die zur Erstellung eines gültigen Zertifikats erforderlich sind, wird die Anfrage nicht an eine Zertifizierungsstelle weitergeleitet. Auf diese Weise wird die Belastung der Zertifizierungsstellen verringert.
Zertifizierungsstellen werden von einer oder mehreren Stellen mit der Erstellung und Unterzeichnung von Public-Key-Zertifikaten betraut. Optional kann eine Zertifizierungsstelle die Schlüssel des Subjekts ausstellen oder sie vom Subjekt über eine Registrierungsstelle bereitstellen lassen.
Zertifizierungsstellen gelten als vertrauenswürdig, weil sie über ein CA-Zertifikat verfügen, das von einer anderen vertrauenswürdigen CA signiert ist; sie können auch für die Sperrung von Zertifikaten verantwortlich sein.
Die CA verwaltet diese Aufgabe, indem sie eine Datenstruktur, die so genannte Zertifikatswiderrufsliste (CRL), führt. Eine CRL enthält Kennungen für alle widerrufenen Zertifikate, die von der gleichen CA ausgestellt wurden. Die Authentizität der CRL selbst wird durch digitale Signierung nachgewiesen, ähnlich wie bei einem öffentlichen Schlüsselzertifikat.
Eine Prüfstelle kann ein Zertifikat überprüfen, indem sie die CRL von einer CA herunterlädt, die Signatur überprüft und dann prüft, ob das Zertifikat in der CRL enthalten ist. Wenn es in der CRL gefunden wird, ist das Zertifikat ungültig. Andernfalls wird es als gültiges Zertifikat betrachtet.
Eine andere Möglichkeit, den Widerruf von Zertifikaten zu handhaben, ist die Verwendung des Online Certificate Status Protocol (OSCP). Das Protokoll löst das Problem, dass eine CRL mit jedem widerrufenen Zertifikat wächst. Jedes Mal, wenn ein Zertifikat überprüft werden muss, muss der Client die gesamte CRL herunterladen. Mit OSCP kann ein Client stattdessen abfragen, ob ein Zertifikat gültig ist, anstatt eine CRL herunterzuladen. Der Bericht besagt, dass jede Antwort an einen Client signiert sein muss, damit ein Client ihre Authentizität überprüfen kann.
Arten von X.509-Zertifikaten
X.509 ist ein weithin akzeptiertes Protokoll, das das Format eines digitalen Zertifikats regelt. Es wurden drei Versionen des x509-Standards definiert:
- X.509 Version 1 wurde erstmals 1988 als Teil der ITU-Norm X.500 Directory Services veröffentlicht.
- In der Version 2 von X.509 wurden 1993 zwei neue Felder in das Format aufgenommen.
- X. 509 Version 3 definiert das Format für die Zertifikatserweiterungen, die zur Speicherung zusätzlicher Informationen über den Inhaber des Zertifikats und zur Regelung der Verwendung von Zertifikaten verwendet werden.
X.509-Zertifikate enthalten in der Regel eine digitale Signatur mit einem öffentlichen Schlüssel, eine Gültigkeitsdauer, einen Aussteller, einen Betreff und eine Reihe von Erweiterungen. Erweiterungen beschreiben zusätzliche Zertifikatsmerkmale, wie z. B. zusätzliche Zertifikatsattribute oder Einschränkungen für die Verwendung des Zertifikats.
X.509-Zertifikate müssen die folgenden drei Anforderungen erfüllen:
1. Es gibt einen Prüfpfad vom Serverzertifikat zu einem vertrauenswürdigen Stammzertifikat;
2. Die Zertifikatsattribute im Prüfpfad erfüllen bestimmte Kriterien für diese Prüfung;
3. Das Zertifikat ist nicht im Inhalt einer aktuellen CRL oder in der Antwort auf eine OCSP-Anfrage aufgeführt.
Die X.509 PKI besteht aus vier verschiedenen Komponenten:
- Ein Endteilnehmer-Server, der ein signiertes digitales Zertifikat anfordert
- Eine Stammzertifizierungsstelle, die digitale Zertifikate ausstellen und überprüfen kann
- eine Registrierungsbehörde, die als Vermittler fungiert, und
- Der Endbenutzer, der das Zertifikat des öffentlichen Schlüssels eines Servers überprüfen möchte.
Wurzelzertifikate, oft auch als vertrauenswürdige Wurzel bezeichnet, sind die Quelle von Vertrauensketten in einer auf X.509-Zertifikaten basierenden PKI. Root-CAs können vertrauenswürdige Zertifikate ausstellen und signieren und ihnen bestimmte Funktionen und Zwecke zuweisen. Da es jedoch unmöglich ist, die Integrität eines selbstsignierten Zertifikats zu bestätigen, ist eine überprüfbare Zertifikatshierarchie erforderlich.
Root-X.509-Zertifikate können in drei verschiedene Typen eingeteilt werden:
- Selbst ausgestellte Zertifikate - Bei diesen Zertifikaten handelt es sich um CA-Zertifikate, bei denen der Aussteller und der Betreff dieselben Werte haben.
- Selbstsignierte Zertifikate - Bei diesen Zertifikaten handelt es sich um eine andere Art von selbst ausgestellten CA-Zertifikaten, bei denen die Objekte "Aussteller" und "Betreff" dieselben Werte haben. Der Unterschied zwischen dem selbstsignierten und dem selbstausgestellten Zertifikat besteht darin, dass das selbstsignierte Zertifikat mit dem entsprechenden privaten Schlüssel signiert wird. Diese Art von Zertifikat kann von der Zertifizierungsstelle verwendet werden, um ihre öffentlichen Schlüssel bekannt zu machen.
- Cross-Zertifikate - Dies ist ein CA-Zertifikat mit der Eigenschaft, dass der Aussteller und das Subjekt unterschiedliche Zertifizierungsstellen sind. Sie werden verwendet, um die Existenz der betreffenden CA zu bestätigen und zu verifizieren.
Endteilnehmer-Zertifikate sind Public-Key-Zertifikate, die von einer Zertifizierungsstelle ausgestellt werden. Diese Zertifikate haben die Eigenschaft, dass der zugehörige private Schlüssel nicht zum Signieren anderer Public-Key-Zertifikate verwendet werden kann.
Public-Key-Zertifikate von Endteilnehmern werden verwendet, um zu überprüfen, ob die entsprechenden öffentlichen Schlüssel nicht gefälscht wurden. Obwohl alle von einem Zertifikat ausgestellten Zertifikate als vertrauenswürdig gelten, stellt die Stammzertifizierungsstelle (Root CA) nicht direkt Endteilnehmerzertifikate aus. Aus diesen Gründen erstellt die Stammzertifizierungsstelle eine Schutzschicht aus untergeordneten Zertifikaten.
Untergeordnete Zertifikate sind online, zwischen dem Stammzertifikat und dem Endzertifikat, und mit dem Stammzertifikat verkettet. Dies ermöglicht es öffentlichen Betrachtern, Endteilnehmerzertifikate zu validieren, auch wenn das Stammzertifikat in einem Hardware Sicherheitsmodul offline ist.
Solange sie auf eine vertrauenswürdige Stammzertifizierungsstelle verweisen, ist es möglich, die gesamte Vertrauenskette von der Stammzertifizierungsstelle bis zum Endzertifikat zu überprüfen. Es kann mehr als eine Ebene von untergeordneten CAs geben. Zertifikate, die zwischen den untergeordneten Zertifikaten und den Endteilnehmerzertifikaten liegen, werden oft als Zwischenzertifikate bezeichnet.
Zwischenzertifikate dienen als Hauptglieder von Vertrauensketten. Sie dürfen nur Aufgaben ausführen, die von der Stammzertifizierungsstelle genehmigt wurden. In öffentlichen Hierarchien ist eine Zwischenzertifizierungsstelle berechtigt, nur SSL -Zertifikate auszustellen, während eine andere nur S/MIME-Zertifikate ausstellt.
Ein weiteres gängiges Szenario ist die Bevollmächtigung verschiedener zwischengeschalteter CAs zur Ausstellung von Zertifikaten für jede Abteilung oder jeden Standort in einer Organisation. Außerdem könnten Sie eine für die Zertifizierung von ECC-Schlüsseln und eine andere für RSA-Schlüssel haben.
Die PKI benötigt auch ein Verzeichnis, um digitale X.509-Zertifikate auszustellen, zu speichern, zu widerrufen und zu verwalten.
Digitale Zertifikate verwalten
Wenn Sie mehr über die Verwaltung digitaler Zertifikate und bewährte PKI-Verfahren wissen möchten, sollten Sie sich diese zusätzlichen Ressourcen ansehen: