Public Key-Infrastruktur
Public-Key-Kryptografie (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, der mathematisch miteinander verknüpft ist. Eine Person, die sicher mit anderen kommunizieren will, kann den öffentlichen Schlüssel verteilen, muss aber den privaten Schlüssel geheim halten. Inhalte, die mit einem der Schlüssel verschlüsselt werden, können mithilfe der anderen entschlüsselt werden. Angenommen, Bob möchte eine sichere E-Mail-Nachricht an Alice senden. Dies kann auf folgende Weise erfolgen:
- Sowohl Bob als auch Alice haben eigene Schlüsselpaare. Sie haben ihre privaten Schlüssel sicher an sich selbst gehalten 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 über den öffentlichen Schlüssel haben muss, den er zum Verschlüsseln der Nachricht verwendet hat. Das heißt, er kann mit Sicherheit nicht wissen, dass der Schlüssel, den er für verschlüsselung verwendet hat, tatsächlich zu Alice gehört. 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 hat sich weiterentwickelt, um dieses Problem und andere zu beheben. Eine Public Key-Infrastruktur (PKI) besteht aus Software- und Hardwareelementen, mit denen ein vertrauenswürdiger Drittanbieter die Integrität und den Besitz eines öffentlichen Schlüssels herstellen kann. Die vertrauenswürdige Partei, die als Zertifizierungsstelle (CA) bezeichnet wird, führt dies in der Regel durch Ausstellen signierter (verschlüsselter) Binärzertifikate aus, die die Identität des Zertifikatsbetreffs bestätigen und diese Identität an den öffentlichen Schlüssel binden, der im Zertifikat enthalten ist. Die Zertifizierungsstelle signiert das Zertifikat mithilfe seines privaten Schlüssels. Er gibt den entsprechenden öffentlichen Schlüssel an alle Interessierten in einem selbstsignierten Zertifizierungsstellenzertifikat 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 seinen öffentlichen Schlüssel enthält. Die Zertifizierungsstelle signiert dieses Zertifikat selbst mit dem privaten Schlüssel, der dem öffentlichen Schlüssel im Zertifikat entspricht.
- Alice und Bob stimmen zu, die Zertifizierungsstelle zu verwenden, um ihre Identitäten zu überprüfen.
- Alice fordert ein Öffentliches Schlüsselzertifikat von der Zertifizierungsstelle 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, indem er den Zertifikatinhalt und den signierten Hash verkettet und das neue Zertifikat öffentlich verfügbar macht.
- 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 zu Alice gehört.
- Bob verwendet Alices bestätigter öffentlicher Schlüssel, um eine Nachricht für sie zu verschlüsseln.
- Alice verwendet ihren privaten Schlüssel, um die Nachricht von Bob zu entschlüsseln.
Zusammenfassend ermöglicht der Zertifikatsignierungsprozess Bob zu überprüfen, ob der öffentliche Schlüssel während der Übertragung nicht manipuliert oder beschädigt wurde. Vor dem Ausgeben eines Zertifikats hasht die Zertifizierungsstelle den Inhalt, signiert (verschlüsselt) den Hash mithilfe eines 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 vernünftigerweise 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 Stamm der Vertrauensstellung in einer Public Key-Infrastruktur und stellt Dienste bereit, die die Identität von Einzelpersonen, Computern und anderen Entitäten in einem Netzwerk authentifizieren. |
Registrierungsstelle |
Wird von einer Stammzertifizierungsstelle zertifiziert, um Zertifikate für bestimmte Verwendungen auszustellen, die vom Stamm zugelassen sind. In einer Microsoft PKI wird eine Registrierungsstelle (RA) in der Regel als untergeordnete Zertifizierungsstelle bezeichnet. |
Zertifikatdatenbank |
Speichert Zertifikatanforderungen und 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 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 Microsoft Public Key-Infrastruktur ausführlicher behandelt: