Public Key-Infrastruktur
Die Kryptografie mit öffentlichem Schlüssel (auch als Kryptografie mit asymmetrischem Schlüssel bezeichnet) verwendet ein Schlüsselpaar zum Verschlüsseln und Entschlüsseln von Inhalten. Das Schlüsselpaar besteht aus einem öffentlichen und einem privaten Schlüssel, die mathematisch miteinander verknüpft sind. Eine Person, die sicher mit anderen kommunizieren möchte, kann den öffentlichen Schlüssel verteilen, muss jedoch den privaten Schlüssel geheim halten. Mit einem der Schlüssel verschlüsselte Inhalte können mit dem anderen entschlüsselt werden. Angenommen, Bob möchte eine sichere E-Mail-Nachricht an Alice senden. Dies kann wie folgt erreicht werden:
- Sowohl Bob als auch Alice haben ihre eigenen Schlüsselpaare. Sie haben ihre privaten Schlüssel sicher für sich behalten und ihre öffentlichen Schlüssel direkt aneinander gesendet.
- Bob verwendet Alices öffentlichen Schlüssel, um die Nachricht zu verschlüsseln und an sie zu senden.
- Alice verwendet ihren privaten Schlüssel, um die Nachricht zu entschlüsseln.
In diesem vereinfachten Beispiel wird mindestens eine offensichtliche Sorge hervorgehoben, die Bob bezüglich des öffentlichen Schlüssels haben muss, den er zum Verschlüsseln der Nachricht verwendet hat. Das heißt, er kann nicht mit Sicherheit wissen, dass der Schlüssel, den er für die Verschlüsselung verwendet hat, tatsächlich Alice gehörte. Es ist möglich, dass eine andere Partei, die den Kommunikationskanal zwischen Bob und Alice überwacht, einen anderen Schlüssel ersetzt hat.
Das Konzept der Public Key-Infrastruktur wurde weiterentwickelt, um dieses und andere Probleme zu lösen. Eine Public Key-Infrastruktur (Public Key Infrastructure, PKI) besteht aus Software- und Hardwareelementen, die ein vertrauenswürdiger Dritter verwenden kann, um die Integrität und den Besitz eines öffentlichen Schlüssels zu ermitteln. Die vertrauenswürdige Partei, die als Zertifizierungsstelle bezeichnet wird, erreicht dies in der Regel, indem sie signierte (verschlüsselte) Binärzertifikate ausstellt, die die Identität des Zertifikatsubjekts bestätigen und diese Identität an den öffentlichen Schlüssel im Zertifikat binden. Die ZS signiert das Zertifikat mithilfe des privaten Schlüssels. Sie stellt allen Interessierten in einem selbstsignierten Zertifizierungsstellenzertifikat den entsprechenden öffentlichen Schlüssel aus. Wenn eine Zertifizierungsstelle verwendet wird, kann das vorherige Beispiel wie folgt geändert werden:
- Angenommen, die Zertifizierungsstelle hat ein signiertes digitales Zertifikat ausgestellt, das ihren öffentlichen Schlüssel enthält. Die Zertifizierungsstelle signiert dieses Zertifikat selbst, indem sie den privaten Schlüssel verwendet, der dem öffentlichen Schlüssel im Zertifikat entspricht.
- Alice und Bob stimmen zu, die Zertifizierungsstelle zur Überprüfung ihrer Identität zu verwenden.
- Alice fordert von der Zertifizierungsstelle ein Zertifikat für den öffentlichen Schlüssel an.
- Die Zertifizierungsstelle überprüft ihre Identität, berechnet einen Hash des Inhalts, aus dem ihr Zertifikat besteht, signiert den Hash mithilfe des privaten Schlüssels, der dem öffentlichen Schlüssel im veröffentlichten Zertifizierungsstellenzertifikat entspricht, erstellt ein neues Zertifikat durch Verkettung des Zertifikatinhalts und des signierten Hashs und macht das neue Zertifikat öffentlich verfügbar.
- Bob ruft das Zertifikat ab, entschlüsselt den signierten Hash mithilfe des öffentlichen Schlüssels der Zertifizierungsstelle, berechnet einen neuen Hash des Zertifikatinhalts und vergleicht die beiden Hashes. Wenn die Hashes übereinstimmen, wird die Signatur überprüft, und Bob kann davon ausgehen, dass der öffentliche Schlüssel im Zertifikat tatsächlich Alice gehört.
- Bob verwendet Alices überprüften öffentlichen Schlüssel, um eine Nachricht an sie zu verschlüsseln.
- Alice verwendet ihren privaten Schlüssel, um die Nachricht von Bob zu entschlüsseln.
Zusammenfassend lässt sich sagen, dass bob beim Signieren des Zertifikats überprüfen kann, ob der öffentliche Schlüssel während der Übertragung nicht manipuliert oder beschädigt wurde. Vor dem Ausstellen eines Zertifikats hashet die Zertifizierungsstelle den Inhalt, signiert (verschlüsselt) den Hash mithilfe ihres eigenen privaten Schlüssels und schließt den verschlüsselten Hash in das ausgestellte Zertifikat ein. Bob überprüft den Zertifikatinhalt, indem er den Hash mit dem öffentlichen Schlüssel der Zertifizierungsstelle entschlüsselt, einen separaten Hash des Zertifikatinhalts ausführt und die beiden Hashes vergleicht. Wenn sie übereinstimmen, kann Bob ziemlich sicher sein, dass das Zertifikat und der darin enthaltene öffentliche Schlüssel nicht geändert wurden.
Eine typische PKI besteht aus den folgenden Elementen.
Element | Beschreibung |
---|---|
Zertifizierungsstelle |
Fungiert als Vertrauensbasis in einer Infrastruktur mit öffentlichen Schlüsseln und stellt Dienste bereit, die die Identität von Personen, Computern und anderen Entitäten in einem Netzwerk authentifizieren. |
Registrierungsstelle |
Wird von einer Stammzertifizierungsstelle zum Ausstellen von Zertifikaten für bestimmte vom Stamm zulässige Verwendungen zertifiziert. In einer Microsoft PKI wird eine Registrierungsstelle (RA) in der Regel als untergeordnete Zertifizierungsstelle bezeichnet. |
Zertifikatdatenbank |
Speichert Zertifikatanforderungen sowie ausgestellte und widerrufene Zertifikate und Zertifikatanforderungen auf der Zertifizierungsstelle oder RA. |
Zertifikatspeicher |
Speichert ausgestellte Zertifikate und ausstehende oder abgelehnte Zertifikatanforderungen auf dem lokalen Computer. |
Schlüsselarchivierungsserver |
Speichert verschlüsselte private Schlüssel in der Zertifikatdatenbank für die Wiederherstellung nach dem Verlust. |
Mit der Zertifikatregistrierungs-API können Sie Zertifikat- und Schlüsselarchivanforderungen an Zertifizierungs- und Registrierungsstellen übermitteln und das ausgestellte Zertifikat auf einem lokalen Computer installieren. Sie können die Zertifikatdatenbank oder den Zertifikatspeicher nicht direkt bearbeiten.
In den folgenden Themen wird die Infrastruktur für öffentliche Schlüssel von Microsoft ausführlicher erläutert: