Zertifikate – warum und wozu
In diesem Artikel möchte ich Ihnen einen Einblick in das Thema „Absicherung des internetbasierten Austausches von Informationen durch Zertifikate“ geben. Dazu werfe ich einen kurzen Blick zurück auf die Anfänge des Internets und die Verwendung von Protokollen wie HTTP, SMTP, POP… und deren verschlüsselten Transport über SSL bzw. TLS. Vor allem möchte ich Ihnen aber erklären, wie Sie mit Univention Corporate Server öffentliche Zertifikate für die Absicherung Ihrer Datenübertragung nutzen können oder aber auch mit dem Tool Let‘s Encrypt selber vertrauenswürdige Zertifikate dafür erstellen können. Ganz sicher und auch noch kostenfrei.
In den Anfangstagen des Internets und dessen Vorläufern war die Anbindung eines neuen Standorts (hauptsächlich Universitäten) noch ein komplexes Unterfangen. Man vertraute auf die Ehrlichkeit und Aufrichtigkeit aller Beteiligten, denn schließlich galt es gemeinsam etwas zu erreichen.
Sicherheit in der Kommunikation zwischen den Standorten war zu dem Zeitpunkt weniger ein Thema und die verwendeten Kommunikationsprotokolle funkten einfach Klartext.
Mit der steigenden Verbreitung des Internets wurde die Notwendigkeit offenbar, dass Kommunikation auch so stattfinden können muss, dass sie nicht von Dritten eingesehen werden kann. Ein Ansatz, der sich damals durchgesetzt und bis heute gehalten hat, war, die bekannten und weitläufig im Einsatz befindlichen Protokolle wie HTTP, SMTP, POP, IMAP, FTP, etc. weiterzuverwenden, aber eine verschlüsselte Transportmöglichkeit um diese herumzubauen. Dieser verschlüsselte Transport der Netzwerkpakete wurde zunächst SSL (Secure Socket Layer) und in späteren Iterationen TLS (Transport Layer Security) getauft.
SSL/TLS-Zertifikate – fester Bestandteil von Netzwerkkommunikation
Heute ist SSL/TLS ein fester Bestandteil von Netzwerkkommunikation – egal, ob im Firmen- oder Heimnetz oder quer durchs Internet.
SSL/TLS arbeitet zur Verschlüsselung mit sog. Zertifikaten. Ein Empfänger (bspw. ein Webserver), mit dem ich kommunizieren möchte, ist im Besitz einer Zertifikatsdatei und eines geheimen, kryptografischen Schlüssels. Die Zertifikatsdatei enthält u. a. kryptografische Informationen, die es mir als Sender erlauben, meine Nachrichtenpakete zu verschlüsseln. So verschlüsselte Nachrichtenpakete können dann nur mit dem dem Zertifikat zugehörigen, geheimen (privaten) Schlüssel entschlüsselt werden. Für Dritte sind die Nachrichten nicht lesbar.
Ein solches Zertifikat enthält auch immer Informationen, von welcher Zertifizierungsstelle und für welchen Empfänger (Subject) das Zertifikat ausgestellt wurde. Das gibt mir als Sender gute Anhaltspunkte, ob ich auch wirklich mit dem richtigen Empfänger spreche. Hier ein Auszug aus dem aktuell gültigen Zertifikat für „univention.de“:
Issuer: C = US, O = DigiCert Inc, OU = www.digicert.com, CN = Thawte TLS RSA CA G1
[...]
Subject: CN = univention.de
[…]
X509v3 Subject Alternative Name:
DNS:univention.de, DNS:www.univention.de
Vertrauenswürdig oder nicht? Wie man Zertifikate voneinander unterscheiden kann
Einen kleinen Haken hat die Sache: Jeder kann mit den richtigen SSL-Tools eigene Zertifikate erzeugen und diese für „google.com“, „ihre-bank.de“ oder „univention.de“ ausstellen und im schlimmsten Fall Kommunikation abfangen und entschlüsseln. Deswegen ist es essenziell, zwischen vertrauenswürdigen und nicht vertrauenswürdigen Zertifizierungsstellen unterscheiden zu können. Bei den vertrauenswürdigen glauben wir, dass sie in bester Absicht und mit viel Aufwand und Sicherheitsmechanismen nur Zertifikate an berechtigte Empfänger ausstellen.
Die am häufigsten verwendeten Anwendungen, die diese Dinge überprüfen müssen, sind Webbrowser wie Mozilla‘s Firefox, Google‘s Chrome Browser, Apple‘s Safari oder der Edge Browser von Microsoft. Diese Browser bzw. die darunterliegenden Betriebssysteme bringen eine Liste vertrauenswürdiger Zertifizierungsstellen mit. Allen von diesen Zertifizierungsstellen ausgestellten Zertifikaten wird in der Regel automatisch vertraut – sofern das „Subject“ zur aufgerufenen Website passt und das Zertifikat nicht abgelaufen ist. (Zertifikate sind immer nur eine bestimmte Zeit gültig).
UCS CA und selbstsignierte Zertifikate
UCS macht an vielen Stellen Gebrauch von Zertifikaten, um die Netzwerkkommunikation zwischen Endgeräten und UCS-Systemen, aber auch die der UCS-Systeme untereinander, kryptografisch abzusichern und zu verschlüsseln.
Eine Hürde müssen wir dabei nehmen: Woher nehmen wir die Zertifikate? Insbesondere, wenn wir im Vorfeld nicht wissen, auf welchen Namen (Subject) die Zertifikate ausgestellt werden müssen? Schließlich können UCS-Systeme nach Belieben benannt werden.
Wie oben erwähnt, kann jeder mit den richtigen SSL-Tools Zertifikate erzeugen – und genau davon machen wir Gebrauch. Auf jedem UCS Master wird automatisch eine Zertifizierungsstelle (Certificate Authority oder kurz CA) für die UCS-Domäne eingerichtet. Diese erhält ein sog. Root-Zertifikat, das zum einen die Zertifizierungsstelle selbst identifiziert und ausweist und mit dem zum anderen weitere Zertifikate ausgestellt werden können. Für weitere UCS-Systeme in der Domäne passiert das beim Domänenbeitritt ganz automatisch. UCS bringt aber auch ein Kommandozeilen-Werkzeug mit, mit dem sich bequem weitere Zertifikate erstellen oder auch bestehende auflisten und widerrufen lassen.
Dadurch sind alle von UCS angebotenen Dienste, die SSL/TLS unterstützen (bspw. der Webserver, LDAP, Listener/Notifier, Mail-Server etc.), direkt mit einem passenden Zertifikat ausgestattet und können verschlüsselt kommunizieren.