X.509 Zertifikate

Darstellung der Funktionen

Im Folgenden beschreibe ich den Einsatz von Zertifikaten auf Basis von X.509 für die beiden am häufigsten verwendeten Einsatzzwecke: zur Verschlüsselung und zur digitalen Signatur. Ich habe mich bemüht eine allgemein verständliche Darstellung der Funktionen zu geben.
Der Standard X.509 beschreibt das Design von digitalen Zertifikaten aus einer PKI-Infrastruktur. X.509 ist der am weitesten verbreite Standard einer Public Key Infrastructure und zeichnet sich durch einen hierarchischen Aufbau aus. Dies unterscheidet ihn beispielsweise von PGP, einer weiteren PKI-Technologie, die durch einen dezentralen Ansatz gekennzeichnet ist.
Bei X.509 stellen sogenannte Zertifizierungsstellen (CAs) Zertifikate aus. Diese Zertifikate können vom sogenannten Zertifikatsnehmer (beispielsweise ein Computern oder ein Benutzer) in unserem Beispiel zur Verschlüsselung oder digitalen Signatur verwendet werden. Ein Zertifikat ist immer an den Zertifikatsnehmer gebunden und sichert dessen Kommunikation mit anderen Benutzern oder Computern ab.

Nutzen von Zertifikaten

Auf Basis dieser Zertifikate kann die Kommunikation entweder digital signiert oder verschlüsselt werden. Bei der digitalen Signatur wird verhindert, dass der Inhalt der Kommunikation verändert werden kann, bei der Verschlüsselung wird das Lesen der Kommunikation durch unberechtigte Dritte verhindert.
Eine PKI basiert immer auf der Nutzung von 2 unterschiedlichen Schlüsseln, hier ist auf der einen Seite der namensgebende öffentliche Schlüssel (public key) und als weitere Komponente der private Schlüssel zu nennen. Die für Signatur und Verschlüsselung genutzten mathematischen Funktionen sind so gewählt, dass man aus dem öffentlichen Schlüssel keine Rückschlüsse auf den privaten Schlüssel ziehen kann und der öffentliche Schlüssel daher als Teil des Zertifikates ohne Sicherheitseinschränkungen bereitgestellt werden kann.
Bei der Signatur erzeugt der Absender bzw. das von ihm verwendete Programm mittels mathematischer Funktionen mit dem privaten Schlüssel eine Prüfsumme (Hash-Wert) über die signierte Nachricht. Der Empfänger kann mit dem Zertifikat sowohl die Prüfsumme prüfen als auch den Ursprung der Nachricht nachvollziehen.
Bei der Verschlüsselung wird ebenfalls auf Basis von mathematischen Funktionen mit dem öffentlichen Schlüssel eine Nachricht für eine weitere Person oder einen weiteren Computer verschlüsselt, die bzw. der die Nachricht mit dem privaten Schlüssel entschlüsseln und im Klartext auf die Informationen zugreifen kann.

Vertrauensstellung

Die Sicherheit dieser Kommunikation hängt einerseits von den mathematischen Funktionen und andererseits von der Infrastruktur ab. Ein Computer oder eine Person kann dem Ursprung einer Nachricht nur dann vertrauen, wenn er der absendenden Stelle vertrauen kann. An dieser Stelle zeigt sich der Nutzen des hierarchischen Aufbaus von X.509. Die CA erstellt Zertifikat, über die der Kommunikationspartner prüfen kann, ob der andere Kommunikationspartner vertrauenswürdig ist. Die CA fügt im Zuge der Generierung eines Zertifikates in dieses u.a. folgende Informationen ein:

Aussteller (Ausstellende CA)
URLs für den Zugriff auf Informationen über die CA
Seriennummer des Zertifikates
Gültigkeitszeitraum eines Zertifikates
Informationen über den Antragsteller, z.B. Email-Adresse oder DNS-Name des Computers (FQDN)
Verwendungszweck (Verschlüsselung, Signatur usw.)
URL zum Abruf von Sperrinformationen (wird im Folgenden beschrieben)

Anschließend signiert die CA das Zertifikat und verhindert so, dass Informationen verändert werden können. Die digitale Signatur hat zudem noch eine weitere Funktion, sie erlaubt den Kommunikationspartnern die Echtheit des Zertifikates und somit die Vertrauenswürdigkeit des Kommunikationspartners zu prüfen.
Die CA ist bei dieser Funktion mit einem Notar vergleichbar, der die Echtheit einer Person bestätigt. Während aber bei einem Notar gesetzliche Regelungen existieren, die die Einhaltung von Regeln garantieren, kann eine CA theoretisch von beliebigen Personen aufgebaut werden. Die Sicherheit hängt entsprechend davon ab, dass nur mit Zertifikaten aus wirklich notwendigen Zertifizierungsstellen kommuniziert wird und nicht beliebige Zertifizierungsstellen akzeptiert werden. Um dies sicher zustellen muss eine CA als gültiger Nachweis für die Identität von Computern oder Personen anerkannt werden. Die CA muss als vertrauenswürdig eingestuft werden, erst im Anschluss werden Zertifikate aus dieser Hierarchie verwendet. Computer enthalten in der Regel eine Liste von vertrauenswürdigen CAs, es ist aber möglich diese zu erweitern. Auf diese Weise kann eine sichere Kommunikation garantiert werden.

Sicherer Einsatz von Zertifikaten

Zertifikate werden entweder als Dateien oder auf sicheren Trägern wie Smartcards gespeichert. Die geeignete Speicherung hängt von den Anforderungen ab, bei der Speicherung als Datei sollte immer darauf geachtet werden, dass die Datei nicht im Klartext auslesbar ist und Schutzmechanismen ein Kopieren durch Dritte verhindern. Neben dem Risiko des Kopierens von Dateien existieren noch weitere Aspekte, die bei der Nutzung von Zertifikaten betrachtet werden müssen. Dateien können wie schon beschrieben kopiert oder versehentlich gelöscht werden, Smartcard unterliegen dagegen dem Risiko von Verlust oder Beschädigung. Da in diesem Fall das Zertifikat nicht mehr verwendet werden kann und verhindert werden soll, da es durch den Finder der Smartcard oder des kopierenden Dritten verwendet werden könnte, muss es zurückgerufen und als ungültig eingestuft werden. Dieser Prozess wird als Sperrung bezeichnet und führt dazu, dass Kommunikationspartner bei Verwendung des Zertifikates erkennen können, dass es nicht mehr verwendet werden soll. Wird ein Zertifikat gesperrt wird es auf eine Sperrliste gesetzt, die die Kommunikationspartner bei Nutzung von Zertifikaten prüfen. Neben Sperrlisten gibt es noch eine Möglichkeit der Bereitstellung des Sperrstatus z.B. über OCSP. Zertifikate werden nur als gültig akzeptiert, wenn im Rahmen der Prüfung eine negative Meldung kommt. Bei einer positiven Meldung (Zertifikat ist gesperrt) oder es ist kein Zugriff auf die Sperrstatusinformationen möglich, wird das Zertifikat als ungültig bewertet und je nach Konfiguration eine Warnung angezeigt oder die Kommunikation abgebrochen.
Die Nutzung von Zertifikaten ist in den meisten Betriebssystemen oder auch Kommunikationssoftware (E-Mail-Clients) integriert und kann ohne größere Aufwände genutzt werden. Der Funktionsumfang kann aber von der jeweiligen Software abhängen.

Test-Möglichkeiten

Für Interessierte findet sich auf der Webseite des PKI Komponenten Anbieters „Cryptoshop“ eine Anleitung zur Einrichtung einer Testumgebung zur Demonstration zertifikatsbasierter Anwendungen. Die Anleitung beschreibt den Testaufbau einer CA auf einem Microsoft Windows Server. Dieser beinhaltet als Rolle die Zertifizierungsdienste, mit denen eine CA für beliebig große Umgebungen aufgebaut werden kann. Es handelt sich um eine weit entwickelte, sehr stabile Lösung, die nicht nur für Microsoft-Umgebungen geeignet ist. Durch ihre Schnittstellen zum Active Directory ist sie gerade im Microsoft-Umfeld in vielen Fällen die beste Wahl.
Bitte beachten Sie, dass es sich hier nur um eine Anleitung für Testsysteme handelt. Das Design einer PKI Infrastruktur beinhaltet viele Aspekte, die hier verständlicher Weise nicht behandelt werden. Ich empfehle vor dem Aufbau einer PKI Infrastruktur eine detailliert Planung auf Basis der Anforderungen. Designfehler können sich langwierig auswirken und sind teilweise nachträglich nicht mehr zu korrigieren.
Eine einfache Möglichkeit zum Testen von Zertifikaten bietet auch verschiedene Trustcenter, hierbei handelt es sich kommerzielle Betreiber von Zertifizierungsstellen.
Umfangreiche Möglichkeiten für die Erstellung von Testzertifikaten bieten zudem OpenSSL und LibreSSL.