Zuvor eine Warnung und gleichzeitig eine Ermutigung:
Das Thema Zertifikate ist kein Alltagsthema und vom Inhalt her etwas kompliziert bzw. nicht sofort einzusehen. Deshalb sollte man sich bei der Lektüre Zeit lassen. Wir sind allerdings sicher, dass Sie danach vom Mehrwert der digitalen Zertifikate überzeugt sind.
Im diesem Beitrag wird auf die digitalen Zertifikate vom Typ X509 eingegangen, die im Rahmen der Public Key Infrastructure des Deutschen Forschungsnetzes(DFN) von der Zertifizierungsstelle der Universität Freiburg (Uni FR CA) herausgegeben werden. Der Artikel soll Hintergrundinformationen zum Thema „Zertifikate“ liefern, die im Wiki-Beitrag WWW - Sichere Seiten stichwortartig angesprochen werden.
Ausführliche allgemeinere Informationen zu diesem Thema finden Sie auch im Wikipedia-Artikel
http://de.wikipedia.org/wiki/Digitales_Zertifikat bzw. den Artikeln zu damit zusammen hängenden Themen wie z.B. „Digitale Signatur“ oder „Asymmetrisches Kryptosystem“.
Man kann sich ein Zertifikat als Personalausweis in digitaler Form vorstellen: Beim Personalausweis garantiert die vertrauenswürdige Stelle „Meldeamt“, dass die Unterschrift, die sich auf dem Ausweis befindet, auch tatsächlich zu der Person gehört, deren Stammdaten und Passbild sich auf dem Ausweis befinden. Beim Zertifikat wird von diversen Zertifizierungsstellen, darunter auch der Uni FR CA eine entsprechende Sicherheit gegeben. Man unterscheidet mehrere Qualitätsstufen (einfach, fortgeschritten, qualifiziert), je nach Aufwand bei der Ausstellung des Zertifikates bzw. der Signatur.
Ein Zertifikat enthält den Namen des Inhabers bzw. die Internetadresse eines Servers, seinen öffentlichen Schlüssel, eine Seriennummer, eine Gültigkeitsdauer und den Namen der Zertifizierungsstelle. Diese Daten sind in der Regel mit dem privaten Schlüssel der Zertifizierungsstelle verschlüsselt und können somit mit dem öffentlichen Schlüssel der Zertifizierungsstelle überprüft werden.
Mit Hilfe eines persönlichen Zertifikates, das in der Regel auch mit einer persönlichen Mailadresse verknüpft ist, kann die Inhaberin / der Inhaber Daten (Nachrichten, Formulare usw.) mit einer „digitalen Unterschrift“ versehen, die gewährleistet, dass diese Daten in der Originalversion vorliegen und genau der Person zugeordnet werden können, die Inhaberin des Zertifikates ist. Voraussetzung ist natürlich, dass der private Schlüssel nicht in die falschen Hände geraten ist.
Beim Public Key - Verfahren (z.B. RSA) wird zunächst mit Hilfe einer passenden Rechenvorschrift ein Schlüsselpaar berechnet, das aus einem geheimen (privaten) und einem öffentlichen Schlüssel besteht. Daten, die mit dem privaten Schlüssel verschlüsselt werden, können nur mit dem öffentlichen Schlüssel wieder entschlüsselt werden - und umgekehrt. Deshalb nennt man eine solche Methode auch „asymmetrische Verschlüsselung“.
Der besondere Vorteil dieses Verfahrens ist, dass die beiden Parteien keinen gemeinsamen geheimen Schlüssel kennen müssen. Bei der symmetrischen Verschlüsselung hat man dagegen immer das aufwändige Problem, den geheimen Schlüssel, der zum Ver- und Entschlüsseln verwendet wird, sicher zu allen Kommunikationspartnern zu übertragen.
Ein Nachteil ist allerdings, dass diese Art der Verschlüsselung sehr rechen- und damit zeitaufwändig ist und somit die verschlüsselte Kommunikation „ausbremst“. Deshalb wird in der Regel zwischen zwei Kommunikationspartnern mit Hilfe des Public Key - Verfahrens ein geheimer gemeinsamer Schlüssel (session key) für die schnellere symmetrische Verschlüsselung (z.B. nach DES) ausgehandelt, der dann für die Datenübertragung maximal für die Dauer der aktuellen Sitzung verwendet wird.
Für die digitale Signatur wird zunächst mit Hilfe einer speziellen Rechenvorschrift (z.B. MD5 oder SHA) aus der zu übermittelnden Nachricht eine Zahl (bzw. eine Zeichenkette) berechnet. Diese Zahl wird als Hash bezeichnet. Dabei soll das Rechenverfahren gewährleisten, dass zwei verschiedene Datensätze nie zu demselben Hashwert führen.
Der Hashwert ist somit eine Art eindeutiger Fingerabdruck oder „Quersumme“ aus einem Datensatz und kann in Kenntnis des Rechenverfahrens von jedem Empfänger des Datensatzes wiederholt werden. Auf diese Weise wird die Integrität des Originaldatensatzes nachgewiesen.
Voraussetzung dazu ist allerdings, dass der Hashwert vom Absender sicher zum Empfänger gelangt, damit dieser darauf vertrauen kann, dass er seinen selbst berechneten Hashwert auch tatsächlich mit dem vom Sender gelieferten Original vergleicht.
Hier kommt nun das Public Key - Verfahren zum tragen: Der Sender einer Nachricht erzeugt einen Hashwert seiner zu sendenden Daten, verschlüsselt ihn mit seinem privaten Schlüssel und fügt die so erzeugte Signatur der Nachricht bei. Der Empfänger, der im Besitz des öffentlichen Schlüssels des Absenders ist, entschlüsselt die Signatur im Anhang und vergleicht das Ergebnis (= Original-Hash) mit seiner eigenen Hash-Berechnung (natürlich ohne die angehängte Signatur!). Bei Gleichheit der Hashwerte kann der Empfänger sicher sein, dass die Nachricht unterwegs nicht verfälscht wurde - vorausgesetzt, der geheime Schlüssel des Senders ist nicht in falsche Hände geraten.
Beim digitalen Zertifikat handelt es sich um einen Satz von Daten, die den Eigentümer dieser Daten und üblicherweise weitere Eigenschaften eines öffentlichen Schlüssels beglaubigen.
Bestandteile eines Zertifikates sind unter anderem
Zum speichern von Zertifikaten werden verschiedene Formate benutzt. Hier einige Beispiele:
Muster eines PEM-Formates:
-----BEGIN CERTIFICATE----- MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEc MBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2Vj ... 6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4Gdyd1Lx+4ivn+ xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU Cm26OWMohpLzGITY+9HPBVZkVw== -----END CERTIFICATE-----
Die Darstellung im Klartext mit dem bei der Java-Entwicklungsumgebung mitgelieferten Programm keytool.exe sieht dann z.B. so aus:
Eigner: CN=Deutsche Telekom Root CA 2, OU=T-TeleSec Trust Center, O=Deutsche Telekom AG, C=DE Aussteller: CN=Deutsche Telekom Root CA 2, OU=T-TeleSec Trust Center, O=Deutsche Telekom AG, C=DE Seriennummer: 26 Gültig von: Fri Jul 09 14:11:00 CEST 1999 bis: Wed Jul 10 01:59:00 CEST 2019 Digitaler Fingerabdruck des Zertifikats: MD5: 74:01:4A:91:B1:08:C4:58:CE:47:CD:F0:DD:11:53:08 SHA1: 85:A4:08:C0:9C:19:3E:5D:51:58:7D:CD:D6:13:30:FD:8C:DE:37:BF Unterschrift-Algorithmusname: SHA1withRSA Version: 3 Erweiterungen: #1: ObjectId: 2.5.29.15 Criticality=true KeyUsage [ Key_CertSign Crl_Sign ] #2: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 31 C3 79 1B BA F5 53 D7 17 E0 89 7A 2D 17 6C 0A 1.y...S....z-.l. 0010: B3 2B 9D 33 .+.3 ] ] #3: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:true PathLen:5 ]
Mit den oben schon erwähnten Werkzeugen (keytool oder openSSL) kann die gesamte Prozedur zum Herstellen eines Zertifikates durchgeführt werden.
Vor dem nächsten Schritt muss man sich entscheiden, ob ein selbst-signiertes (self-signed) Zertifikat hergestellt werden soll, oder ob man sich sein Zertifikat von einer Zertifizierungsstelle beglaubigen lassen will.
Selbst-signierte Zertifikate stellen keine Mechanismen zur automatischen Überprüfung der Vertrauenswürdigkeit zur Verfügung. Sie werden meist zu Testzwecken installiert und in der Produktionsphase von fremd-signierten Zertifikaten abgelöst. Auf jeden Fall bieten Sie einen schnellen und unbürokratischen Weg zu einer verschlüsselten Kommunikation.
Wir wollen uns aber in diesem Artikel auf die Zertifkate konzentrieren, die von der Uni FR CA ausgestellt werden.
Deshalb sieht die weitere Prozedur wie folgt aus:
Wie kann nun der Empfänger eines digitalen Zertifikates die Vertrauenswürdigkeit überprüfen?
Wie weiter oben schon erwähnt wurde, enthält das Zertifikat eine digitale Signatur des Ausstellers, in diesem Fall der Uni FR CA. Sie wird gebildet aus Zertifikatsdaten mit Hilfe des geheimen Schlüssels der Uni FR CA.
Hat man nun das Zertifikat der Uni FR CA zur Verfügung, besitzt man auch den öffentlichen Schlüssel dieser Instanz und kann die Signatur des empfangenen Zertifikates überprüfen. Man weiß damit, ob das Zertifikat tatsächlich von der Uni FR CA ausgestellt wurde. Kann man deshalb dem Zertifikat vertrauen? Die Antwort ist: Genau dann, wenn man der Uni FR CA vertraut.
Das dürfte den Mitgliedern der Uni Freiburg sicher nicht schwer fallen In der vorliegenden Public Key Infrastructure des DFN ist dies jedoch nicht nötig, denn es existiert eine „Vertrauenskette“ über den DFN-Verein bis hoch zur Deutschen Telekom:
Das Zertifikat der Uni FR CA wurde ja ausgestellt von der Global CA des DFN und enthält somit eine digitale Signatur dieser Instanz. Also lässt sich die Vertrauenswürdigkeit des Uni FR CA - Zertifikates auf die oben beschriebene Weise auf die des DFN-Zertifikates zurückführen.
Letzteres wurde aber ausgestellt von der Zertifizierungsstelle der Deutschen Telekom, die dem Zertifikat ihre digitale Signatur mitgegeben hat. Also lässt sich die Vertrauenswürdigkeit des DFN-Zertifikates auf die des Telekom-Zertifikates zurückführen.
Hier endet nun die „Vertrauenskette“ beim Wurzel-Zertifikat (root certificate) und man muss endlich seine Entscheidung treffen, ob man dieser Instanz vertraut und damit automatisch allen von deren Zertifikat abgeleiteten Zertifikaten.
Im folgenden Bild soll das veranschaulicht werden:
Zertifikate werden in unterschiedlichen Qualitätsstufen ausgegeben. Das wurde bereits in der Einleitung erwähnt.
Zur Qualität trägt z.B. bei:
Zu 2:
Web- oder Mailclients sollten den Download von CRLs ermöglichen. Im nebenstehenden Bild sehen Sie das Konfigurationsfenster von Mozilla Firefox, in dem ein täglicher Download eingestellt ist. Damit wird zumindest zugesichert, dass eine veröffentlichte Sperrliste spätestens nach einem Tag beim Browser angekommen ist. Das sagt natürlich nichts darüber aus, wie schnell der Inhaber des Zertifikates mit einer Sperrung reagiert hat.
Ein betrübliches Bild liefert beim Firefox wie auch beim Thunderbird die in den Sperrlisteneinträgen genannten Aktualisierungszeiten, denen man hoffentlich nicht glauben muss Da wird nämlich meist von monatlichen Intervallen, z.T. weit in der Vergangenheit, erzählt. Bei einer manuellen Aktualisierung widerspricht sich das Programm anschließend selbst.