Public Key Infrastructure (PKI)
Eine Public Key Infrastructure ist in der Kryptografie eine Struktur, in der Zertifikate ausgestellt, bereitgestellt, genutzt und verwaltet werden. Anhand eines Zertifikates, bzw. des darin enthaltenen öffentlichen Schlüssels, lassen sich Personen oder Maschinen identifizieren. (siehe auch Identitymanagement)
Die Anforderungen an eine PKI sind von der IETF genau spezifiziert.
Signatur
Die zugrundeliegende, asymmetrische Verschlüsselung ermöglicht es, Informationen mit dem öffentlichen Schlüssel zu verschlüsseln oder mit dem privaten Schlüssel zu signieren. Mit dem öffentlichen Schlüssel kann eine Signatur verifiziert werden. Um wiederum die Authentizität des öffentlichen Schlüssels innerhalb des Zertifikates sicherzustellen, ist das Zertifikat von einer übergeordneten Vertrauensinstanz signiert. Diese Vertrauensinstanz ist eine Zertifizierungsstelle (Certifiation Authority). Dabei können mehrere Vertauensinstanzen kaskadierend aufgebaut sein.
Das Ergebnis ist dies, dass alle Zertifikate, die von einer Vertrauensinstanz ausgestellt, d.h. signiert, wurden, wiederum vertrauenswürdig sind. D.h. ein Benutzer oder ein Computersystem muss nicht jeden Inhaber jedes Zertifikates kennen, sondern lediglich die ausstellende Vertrauensinstanz.
Verschlüsselung
Ebenso kann ein Mitglied innerhalb der PKI Informationen für einen Empfänger mit dessen öffentlichen Schlüssel aus dem Zertifikat verschlüsseln. Das asymmetrische Kryptoverfahren gewährt, dass nur der Inhaber des privaten Schlüssels diese Daten wieder entschlüsseln kann.
Gültigkeit
Jedes Zertifikat hat an sich einen Gültigkeitszeitraum. Ist dieser überschritten, so kann das Zertifikat nicht mehr verwendet werden, und es muss ein neues ausgestellt werden.
Auch kann ein Zertifikat schon vor Ablauf seines Gültigkeitszeitraums für ungültig erklärt werden. Dies kann notwendig sein, wenn bspw. der private Schlüssel, der zu diesem Zertifikat gehört, kompromitiert wurde. Ein solches Zertifikat wird auf eine Zertifikatssperrliste gesetzt. (CRL = Certificate Revocation List). Diese Sperrliste muss innerhalb der PKI verteilt werden bzw. öffentlich abrufbar sein.
Infrastruktur
Eine PKI muss außerdem die notwendige Infrastruktur bieten, um bspw. alle Zertifikate in einem zugänglichen Verzeichnis bereitzustellen. Benutzer können sich mit Hilfe Ihres Zertifikates und ihres privaten Schlüssels gegenüber Diensten und Applikationen innerhalb der PKI authentifizieren.
Solche Applikationen müssen außerdem beim überprüfen des Zertifikates diese gegen eine aktuelle Zertifikatessperrliste überprüfen.
PKI Lösungen
Eine PKI ist eine komplexe Struktur, bei der, wie oben beschrieben, mehrere Komponenten hineinspielen. Hierfür notwendig sind wenigstens immer:
-
die Vertrauensinstanz (CA)
-
ein Verzeichnis, in dem die Zertifikate und evtl. auch die CRL abgelegt sind
-
und die Applikationen, die mit den Zertifikaten arbeiten können. Man spricht hier von einer Public Key enabled Application (PKA).
Zertifikatsbasierte Anmeldung an einer Windowsdomäne
Dies ist wohl die einfachste Form einer abgeschlossenen, überschaubaren PKI. Als CA kann hier die bei Microsoft Windows Server 2003 mitgelieferte Microsoft CA dienen.
Die von ihr ausgestellten Zertifikate werden im Active Directory veröffentlicht, wo sie jeder Benutzer und jede Applikation abrufen kann.
In diesem Szenario ist die Microsoft GINA die PKA, die das Zertifikat des Benutzers, der sich anmelden möchte, auf eine gültige Signatur und gegen die CRL überprüft.
Der Anmeldeprozess läuft in dem Fall so, dass die GINA dem Benutzer eine Zufallszahl schickt, diese wird mit dem privaten Schlüssel des Benutzers signiert und die GINA kann wiederum diese Signatur mit dem öffentlich Schlüssel aus dem Zertifikat des Benutzers überprüfen. Stimmt die Signatur, so kann die GINA sicher sein, dass sich wirklich der entsprechende Benutzer anmelden möchte, weil nur diese den privaten Schlüssel kennt.
Zertifikatsbasierte Anmeldung an Linux, signierter/verschlüsselter Emailversand
Im Linux-Umfeld lassen sich ähnliche Szenarien abbilden. So kann hier openssl oder OpenCA genutzt werden, um die Zertifikate auszustellen.
Die Zertifikate müssen in einem Verzeichnis veröffentlicht werden. Dies kann bspw. in einem openLDAP-Server oder auch in einer heterogenen Struktur im Active Directory geschehen.
Das entsprechende PAM-Modul, stellt die PKA dar, die genau wie die Mircosoft GINA den Benutzer anhand seines Zertifikates identifiziert.
Weiterhin kann der Benutzer sein Zertifikat verwenden, um bspw. seine Emails zu signieren. Der Empfänger kann dann die von ihm geschriebenen Emails auf Echtheit hin überprüfen.
eGovernment
Eines der komplexesten Szenarien für eine PKI ist wohl die Nutzung innerhalb des eGovernments.
Die ausstellende Instanz ist hier besonders schützenswert. Die Identität der Personen muss gegenüber den Passstellen geprüft werden. Für die komplexe CA-Struktur läßt sich bspw. die sehr modulare OpenCA einsetzen.
Da in diesem Szenario die Benutzer über den ganzen Staat verteilt sind, muss es evtl. ein öffentliches, über das Internet zugängliches Verzeichnis geben.
Mit seinem auf eine Smartcard gespeicherten Zertifikat kann sich dann ein Benutzer gegenüber einer Webseite authentifizieren. Die PKA ist in diesem Fall der Webserver, der das Zertifikat des Benutzers überprüfen muss.
Auf diese Art und Weise kann der Bürger dann bspw. seine Steuererklärung abgeben oder seinen Umzug dem Einwohnermeldeamt mitteilen.