a free, automated, open source certificate authority

2014 von der Electronic Frontier Foundation, University of Michigan und Mozilla aus der Taufe gehoben, hat das Projekt Let‘s Encrypt vor kurzem sein 100 millionstes automatisiert und kostenlos ausgestelltes Zertifikat ausgegeben und trägt seinem Slogan „Encrypt the Entire Web“ damit gebührend Rechnung.

Vor dem Hintergrund der Snowden-Enthüllungen von 2013 hat Let‘s Encrypt sich zum Ziel gesetzt, SSL/TLS-Zertifikate im Internet für jeden Menschen zugänglich zu machen und kostenlose Verschlüsselung im Web voranzutreiben. Seither hat das Projekt diverse namhafte Unternehmen überzeugt und als Sponsoren gewonnen, darunter Akamai, Cisco oder seit neuestem auch Netflix.
Ziel des Projektes ist es, den Administrationsaufwand für die Anwender möglichst gering zu halten. Ein HTTPS-Server soll mit minimaler Konfiguration dazu im Stande sein, autonom Zertifikate anzufragen.
Diese Maxime liegt auch der neuen Let‘s Encrypt App für UCS zugrunde, auf die in diesem Artikel ebenfalls Bezug genommen wird.

Funktionsweise von Let‘s Encrypt – Automatisiert und Transparent

Ein entscheidender Aspekt für das Design der Infrastruktur von Let‘s Encrypt ist ein vollkommen automatisierter Prozess zur Erstellung und Validierung eines angefragten Zertifikats sowie völlige Transparenz über diese s.g. Transaktionen. Es kann jederzeit eingesehen werden, wer wann für welche Domain ein Zertifikat angefragt hat, um Missbrauch zu vermeiden.

Die Technik dahinter – ACME basierende Schlüssel und Challenges für die Clients

Technisch liegt Let‘s Encrypt das s.g. ACME-Protokoll zugrunde. ACME steht für Automated Certificate Management Environment und wurde von der Internet Security Research Group (ISRG) für Let‘s Encrypt designed. Es basiert auf JSON und HTTPS und ist bereits in Clients vielerlei Form implementiert worden.

Bildquelle: www.letsencrypt.org

Der ACME-Client erstellt in Zusammenarbeit mit den Servern des Let‘s Encrypt Projekts ein s.g. autorisiertes Schlüsselpaar für die jeweilige Domäne. Dieses Schlüsselpaar ist dann dazu berechtigt, ein Zertifikat für die Domäne anzufragen oder zurückzuziehen. Ist das Schlüsselpaar bei Let‘s Encrypt registriert, erstellt der Client eine Certificate Signing Request (CSR), signiert diese mit seinem Schlüssel und sendet sie an Let‘s Encrypt. Die Let‘s Encrypt-Server wählen dann eine Challenge aus, welche der Client bestehen muss. Diese kann z. B. lauten: lege Datei „x“ mit Inhalt „y“ auf deinem Webserver ab. Sobald der Client meldet, dass er die Challenge ausgeführt hat, überprüft Let‘s Encrypt, ob er damit erfolgreich war (in diesem Fall, ob Datei „x“ mit Inhalt „y“ auf der angefragten Domäne auffindbar ist).

Diverse Validierungsmöglichkeiten für mehr Flexibilität

Ist die Validierung erfolgreich, erhält der Client sein Zertifikat und kann es beispielsweise im Webserver Apache oder IMAP-Server Dovecot einbinden.
Wenngleich die Validierung über eine bestimmte Datei auf dem Webserver des anfragenden Hosts mit Abstand die meist genutzte und implementierte ist, gibt es u. a. auch die Möglichkeit eine Validierung über DNS durchzuführen. Dies ist jedoch nicht mit allen Clients möglich und erfordert das manuelle Anlegen eines TXT-Records im DNS der Domäne für die ein Zertifikat angefragt wird. Ein Client, der diese Validierung unterstützt ist z. B. der offizielle „certbot“ von Let‘s Encrypt.

Intern wird bei Let‘s Encrypt mit einem Stammzertifikat gearbeitet, welches zwei Zwischenzertifikate signiert. Eines dieser beiden Zwischenzertifikate signiert dann alle automatisch ausgestellten Zertifikate.
Sobald initial ein Zertifikat ausgestellt wurde, arbeiten die meisten Clients mit Mechanismen wie Cron, um zeitgesteuert automatisch ein neues Zertifikat zu holen. Dies hat den Hintergrund, dass von Let‘s Encrypt ausgestellte Zertifikate standardmäßig nur 90 Tage gültig sind, um (langfristigen) Missbrauch von Schlüsseln und Zertifikaten zu erschweren und zur Automatisierung des Prozesses bei Anwendern anzuregen.

Integration eines Let‘s Encrypt-Clients in UCS zur Erstellung sicherer Zertifikate

Im Rahmen der Cool Solutions gibt es von Univention eine weitgehend automatisierte Integration eines Let‘s Encrypt-Clients, die seit kurzem im App Center verfügbar ist. Nach der Installation der App „Let‘s Encrypt“ auf UCS 4.2 können über die App-Einstellungen im App Center die gewünschten Domains eingetragen und die Verwendung des Zertifikats in Apache, Dovecot und Postfix konfiguriert werden. Durch einen Klick auf „Änderungen speichern“ wird ein Skript gestartet, welches das Zertifikat holt und in den jeweiligen Diensten konfiguriert. Damit ist die Einrichtung bereits abgeschlossen! Ein während der Installation angelegter Cronjob sorgt dafür, dass alle 30 Tage ein neues Zertifikat geholt wird, um stets ein valides Zertifikat im System zu haben. Die App nutzt die Client-Implementierung „acme-tiny“ und validiert die Domäne mithilfe der klassischen Methode einer speziellen Datei, welche den Let‘s Encrypt Servern über den Apache Webservice bereit gestellt wird.

Ausblick: Jeden Tag ein bisschen mehr Sicherheit für das Web

Wenngleich Let‘s Encrypt mit 100 Millionen Zertifikaten bereits einen beachtlichen Beitrag zum „vollverschlüsselten Web“ geleistet hat, steht das Projekt keineswegs still. Erst kürzlich wurde beispielsweise Support für Wildcard-Zertifikate angekündigt, welcher ab Januar 2018 verfügbar sein soll. Durch diese und weitere Entwicklungen wie z.B. den Mitte 2016 hinzugefügten IPv6-Support werden kostenlose Zertifikate für mehr und mehr Menschen verfügbar und das Web wird von Tag zu Tag ein wenig mehr abgesichert. Im Februar diesen Jahres wurde von der EFF vermeldet, dass die Hälfe des WWW-Traffics nun verschlüsselt sei. Angesichts der kontinuierlich steigenden Zahl von mit Let‘s Encrypt verschlüsselnden Domains ist ein gesunder Optimismus ob dieser Entwicklung durchaus angebracht. Gerade im Zuge der anhaltenden Expansion der Internetüberwachung durch international agierende Geheimdienste und Monopolisierung von massenhaft genutzten Diensten durch Konzerne wie Facebook sind auf Open Source basierende, demokratisierende Projekte wie Let‘s Encrypt wichtig für den Fortbestand eines freien und gleichen Internets.

Let‘s Encrypt im Univention App Center

 


Lust auf mehr? Dieser Blogartikel könnte Sie auch interessieren:

Valentin Heidelberger

Valentin ist Auszubildender zum Fachinformatiker für Systemintegration und arbeitet im Professional Services Team bei Univention.

Was ist Ihre Meinung? Hinterlassen Sie einen Kommentar!

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.