Ich musste in der jüngeren Vergangenheit immer wieder feststellen, dass Zertifikate selbst von IT-Pros sehr schlecht verstanden sind. Leider begleiten sie uns fast täglich bei der Arbeit, so dass der korrekte Umgang mit Zertifikaten unerlässlich ist.
Der Begriff „Zertifikat“ (certificate) wird dabei sehr unscharf verwendet und bezeichnet daher – je nach Kontext – zwei unterschiedliche Dinge. Zum einen meinen wir damit das öffentliche Zertifikat an sich aber auch das Zertifikat mit privatem Schlüssel.
Es ist allerdings wichtig, sich darüber im Klaren zu sein, dass das Zertifikat ein öffentlicher Anteil ist, der durch den privaten Schlüssel ergänzt wird. Ohne den privaten Schlüssel gibt es kein Zertifikat. Aber das Zertifikat ist hilfreich, ohne den privaten Schlüssel zu besitzen.
Betrachten wir die Nomenklatur an einem Beispiel: Ein Webserver-Zertifikat dient der Authentifizierung eines Servers gegenüber dem Browser. Der Server kann sich aber nur dann ausweisen, wenn er auch den privaten Schlüssel besitzt. Der Browser hingegen benötigt das Zertifikat, um die Authentizität der vom Server erhaltenen Daten zu überprüfen. Folglich benötigt man ein Zertifikat mit privatem Schlüssel, um einen sicheren Kommunikationskanal anzubieten.
Die folgenden Situationen verwenden ein Zertifikat:
- Serverzertifikate für SSL/TLS (wie im Beispiel beschrieben)
- Clientzertifikate zur Authentifizierung des Endgeräts oder Benutzers
- EFS-Zertifikate zur Verschlüsselung von persönlichen Daten
Hintergrundinformationen
Nach der kurzen Einleitung in Zertifikate, beschreibt dieser Abschnitt die Funktionsweise und macht dadurch deutlich, wodurch die Notwendigkeit für den privaten Schlüssel und das Zertifikat entsteht. Es gibt zwei Arten von Verschlüsselungsverfahren:
- Symmetrische Verschlüsselung erfordert, dass jeder Kommunikationspartner im Besitz eines gemeinsamen Schlüssels (Pre-Shared Key) ist. Nur dann ist er in der Lage, verschlüsselte Daten zu lesen, zu senden und zu verändern. Aufgrund der Funktionsweise der symmetrischen Verschlüsselung ist es von größter Wichtigkeit, dass der Schlüssel nicht in die falschen Hände gerät. Mit steigender Anzahl von Teilnehmern erhöht sich auch die Gefahr, dass der Schlüssel kompromittiert wird. Da jeder Teilnehmer denselben Schlüssel verwendet, muss dieser an jeden übermittelt werden, was einen großen Sicherheitsnachteil darstellt. Die bekanntesten Algorithmen zur symmetrischen Verschlüsselung sind der Advanced Encryption Standard (AES) und dessen Vorgänger namens Data Encryption Standard (DES).
- Die asymmetrische Verschlüsselung verwendet einen öffentlichen und einen privaten Anteil, die mathematisch in Verbindung stehen. Der geheimer oder privater Schlüssel (Private Key) gehört nur einer einzigen Person und darf nicht öffentlich gemacht oder weitergegeben werden. Der öffentliche Schlüssel (Public Key) darf und muss sogar an Kommunikationspartner verteilt werden. Die asymmetrische Verschlüsselung bildet so die Grundlage für Zertifikate.
Im Folgenden betrachten wir die asymmetrische Verschlüsselung genauer. Sie wird übrigens auch Public Key Cryptography genannt.
Verschlüsselung und Signaturen
Alles beginnt mit dem privaten Schlüssel. Aus ihm wird der öffentliche Schlüssel erzeugt und kann jeder Zeit wiederhergestellt werden. Daten, die mit einem der beiden verschlüsselt wurden, können nur mit dem anderen wieder entschlüsselt werden.
Die Übermittlung von verschlüsselten Daten beruht darauf, dass die Daten mithilfe des öffentlichen Schlüssels des Empfängers verschlüsselt werden, so dass nur noch der Empfänger in der Lage ist, den Klartext zu ermitteln. Denn nur er befindet sich im Besitz des passenden privaten Schlüssels.
Die zweite Anwendung von asymmetrischer Verschlüsselung ist das Erstellen von Signaturen, um die Authentizität von Daten zu gewährleisten. Dabei macht man sich zu Nutze, dass die Verschlüsselung von Daten mithilfe des privaten Schlüssels durch den öffentlichen Schlüssel rückgängig gemacht werden kann. Dadurch ist jeder (mit dem öffentlichen Schlüssel des Absenders) in der Lage, die Signatur zu entschlüsseln. Allerdings konnte nur der Absender die Signatur erzeugen, da nur er sich im Besitz des privaten Schlüssels befindet.
Für eine Signatur muss aber nicht die gesamte Nachricht wiederholt werden. Stattdessen wird ein so genannter Hash-Wert aus der Klartext-Nachricht erzeugt, der dann mit dem privaten Schlüssel des Absenders verschlüsselt wird. Die Überprüfung der Signatur verläuft sehr ähnlich zur Erzeugung: Der Empfänger erstellt ebenfalls den Hash-Wert der Klartext-Nachricht und vergleicht diesen mit dem entschlüsselten Hash-Wert des Absenders. Sind diese identisch, handelt es sich um eine gültige Signatur und die Nachricht kann als authentische eingestuft werden.
Ein Hash-Wert wird durch eine Funktion erstellt, die aus einem Text beliebiger Länge eine eindeutige Zeichenkette fester Länge erzeugt. Die Funktion ist nicht umkehrbar, so dass es unmöglich (oder wenigstens sehr schwer) ist, den Klartext zu einem Hash-Wert zu ermitteln.
Authentizität, Integrität und Vertraulichkeit
Durch die Verwendung von Public Key Cryptography kann die Authentizität und Integrität mithilfe von Signaturen sichergestellt werden. Die Vertraulichkeit beruht auf der Verschlüsselung der Nachricht.
Identität
Damit Public Key Cryptography funktioniert, muss man offensichtlich seinen öffentlichen Schlüssel mit potentiellen Kommunikationspartnern teilen.
Da ein öffentlicher Schlüssel aber nur durch eine unpersönliche Zeichenkette repräsentiert wird, wäre es notwendig, ein „Adressbuch“ zu pflegen. Darin müsste zu jedem öffentlichen Schlüssel die Identität des Absenders vermerkt sein. Dieses Adressbuch würde aber ein Angriffsziel darstellen. Sollte ein Angreifer den öffentlichen Schlüssel eines bekannten Empfängers austauschen, wäre die Kommunikation kompromittiert.
Daher wurde das Zertifikat erfunden. Es verschmilzt einen öffentlichen Schlüssel mit Identitätsinformationen mithilfe einer Signatur. Es existieren zwei bekannte zur Umsetzung dieses Konzepts:
- Pretty Good Privacy (PGP) und der freie Abkömmling GNU Privacy Guard (GPG) basieren auf einem so genannten Web of Trust, einem Netz aus Vertrauensstellungen. Jeder Teilnehmer kann die Zuordnung eines öffentlichen Schlüssels und den Identitätsinformationen mithilfe einer Signatur bestätigen. Dadurch benötigt jeder Teilnehmer nur wenige enge Freunde. Das Netz spannt sich durch die Signaturen untereinander auf. Erhält ein Teilnehmer eine Nachricht von einem (noch) unbekannten, lässt sich die Authentizität durch eine Kette aus vertrauenswürdigen Unterzeichnern überprüfen. Es handelt sich um einen Community-basierten Ansatz und erfordert eine kritische Masse von Teilnehmern, damit Kommunikationspartner verbunden sind.
- Es hat sich mittlerweile aber der zentralisierte Ansatz durchgesetzt, der darauf beruht, dass vergleichsweise wenige Zertifizierungsstellen (Certificate Authorities) Zertifikate ausstellen.
Der nächste Teil wird sich ausführlich den Zertifizierungsstellen widmen. Auf das Web of Trust wird nicht näher eingegangen, da es fast ausschließlich für die E-Mail-Verschlüsselung (S/MIME) Relevanz hat.
Key Take-Aways
- Zertifikate bestehen aus einem öffentlichen Schlüssel und Identitätsinformationen, die durch einen Dritten mithilfe einer Signatur unterschrieben wurden
- Jeder öffentliche Schlüssel hat einen privaten Schlüssel
- Zertifikate dürfen und müssen mit einer breiten Öffentlichkeit geteilt werden, wohingegen der private Schlüssel sicher verwahrt werden muss
- Dem Aussteller eines Zertifikats muss Vertrauen entgegen gebracht werden
- Webserver können nur dann einen sicheren Kommunikationskanal bereitstellen, wenn sie ein Zertifikat und den privaten Schlüssel besitzen
(Zum englischsprachigen Originalartikel)
http://faq-o-matic.net/?p=3781