Let’s Encrypt

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Let’s Encrypt
Gründung 2014
Gründer EFF, Mozilla, U-M
Sitz San Francisco
Aktionsraum weltweit
Schwerpunkt X.509-Zertifizierungsstelle
Besitzer Internet Security Research Group
Motto encrypt the entire web
Website letsencrypt.org

Let’s Encrypt (englisch, „Lasst uns verschlüsseln“) ist eine Zertifizierungsstelle, die Ende 2015 in Betrieb gegangen ist und kostenlose X.509-Zertifikate für Transport Layer Security (TLS) anbietet. Dabei ersetzt ein automatisierter Prozess die bisher gängigen komplexen händischen Vorgänge bei der Erstellung, Validierung, Signierung, Einrichtung und Erneuerung von Zertifikaten für verschlüsselte Websites.[1][2]

Überblick[Bearbeiten | Quelltext bearbeiten]

Ziel des Projekts ist es, verschlüsselte Verbindungen im World Wide Web zum Normalfall zu machen. Indem unter anderem Zahlung, Webserverkonfiguration, Validierungs-E-Mails und die Sorge um abgelaufene Zertifikate überflüssig werden, sollen Aufwand für Einrichtung und Pflege von TLS-Verschlüsselung deutlich gesenkt werden.[3] Auf einem Linux-Webserver soll das Ausführen von nur zwei Befehlen genügen, um binnen 20 bis 30 Sekunden HTTPS-Verschlüsselung einzurichten, Zertifikate anzufordern und zu installieren.[4][5]

Bei aktuellen Bestrebungen von großen Webbrowser-Projekten, unverschlüsseltes HTTP als überholt zu erklären und zukünftig davor zu warnen oder die Unterstützung einzuschränken, wird unter anderem auf die Verfügbarkeit von Let's Encrypt gesetzt.[6][7] Dem Projekt wird das Potenzial zugesprochen, die standardmäßige Verschlüsselung des gesamten Web zu erreichen.[8]

Es werden sogenannte Domain-Validation-Zertifikate ausgestellt. Organization-Validation- und Extended-Validation-Zertifikate werden nicht angeboten.[9]

Um sowohl die eigene Vertrauenswürdigkeit, als auch gegen Angriffe und Manipulationsversuche zu schützen, soll auf größtmögliche Transparenz gesetzt werden. Dazu werden zum Beispiel regelmäßig Transparenzberichte veröffentlicht,[10] alle Ausstellungstransaktionen öffentlich protokolliert (u.a. mit Certificate Transparency) und möglichst viel auf offene Standards und freie Software gesetzt.[4]

Der Name der Zertifizierungsstellen-Software „Boulder“ (englisch, „[Fels-]Brocken“) ist eine Anspielung auf ein Produkt der fiktiven Firma ACME (englisch acme ‚Gipfel‘, ‚Höhepunkt‘) aus den Trickfilmen um Road Runner und Wile E. Coyote.

Beteiligte[Bearbeiten | Quelltext bearbeiten]

Let’s Encrypt ist ein von der gemeinnützigen Internet Security Research Group (ISRG) angebotener Dienst. Hauptsponsoren sind unter anderem die Electronic Frontier Foundation (EFF), die Mozilla Foundation, Akamai, Google Chrome und Cisco Systems. Weitere Beteiligte sind die Zertifizierungsstelle IdenTrust, die University of Michigan (U-M), die Stanford Law School, die Linux Foundation[11] sowie Stephen Kent von Raytheon/BBN Technologies und Alex Polvi von CoreOS.[4]

Technik[Bearbeiten | Quelltext bearbeiten]

Let’s Encrypt besitzt ein RSA-Stammzertifikat, das in einem Hardware-Sicherheitsmodul verwahrt wird und nicht direkt verwendet wird. Es soll später durch ein ECDSA-Zertifikat ersetzt werden. Damit werden zwei Zwischenzertifikate signiert, welche durch die Zertifizierungsstelle IdenTrust gegengezeichnet werden.[12] Eines davon dient dann zur Signierung der ausgestellten Zertifikate, das andere als Ersatz bei Problemen mit dem ersten. Durch die IdenTrust-Signatur können die ausgestellten Zertifikate in großen Webbrowsern über die vorinstallierten Stammzertifizierungsstellen geprüft werden. So werden Let’s-Encrypt-Zertifikate auf Client-Seite von Anfang an in der Regel ohne weiteres akzeptiert.[13] Längerfristig sollen direkt Let’s-Encrypt-Zertifikate in Anwendungen vorinstalliert werden.

Protokoll[Bearbeiten | Quelltext bearbeiten]

Zur Automatisierung der Zertifizierung nutzt Let's Encrypt das Challenge-Response-Verfahren Automatic Certificate Management Environment (ACME). Dabei werden verschiedene Anfragen entweder an Unterseiten am Webserver oder direkt DNS-Anfragen an die zu zertifizierende Domain gestellt. In beiden Fällen wird ein vorher von Let’s Encrypt erstellter Token entweder auf einer speziellen Unterseite am Web-Server oder als TXT Resource Record im DNS der betreffenden Domain öffentlich abgelegt und von Let’s Encrypt-Server in Folge abgefragt. Anhand der Antwort mit den Token wird sichergestellt, dass der Antragsteller den Web-Server oder direkt den Nameserver und die damit verknüpfte Domain kontrolliert (englisch domain validation).

Auf dem Server-System müssen diese Anfragen korrekt beantwortet werden. Dazu bietet das Protokoll verschiedene Möglichkeiten. Bei einer wird dazu von der ACME-Client-Software ein besonders konfigurierter TLS-Server eingerichtet, der mittels Server Name Indication auf besondere Anfragen der Zertifizierungsstelle antwortet (Domain-Validierung mittels Server Name Indication, DVSNI). Dieses Verfahren wird allerdings nur für eine erste Zertifikatsausstellung für eine Domain akzeptiert (sogenanntes „trust on first use“, TOFU – Vertrauen bei erster Benutzung). Danach kommt die alternative Validierung über ein bestehendes Zertifikat zum Einsatz. Bei Verlust der Kontrolle über ein bereits ausgestelltes Zertifikat muss daher ein Zertifikat von einem Drittanbieter erworben werden, um wieder ein Let’s-Encrypt-Zertifikat zu erhalten.

Die Validierungsverfahren werden mehrmals über verschiedene Netzwerkpfade durchgeführt. Zur Erschwerung von DNS-Spoofing ist die Prüfung von DNS-Einträgen von mehreren geographisch verteilten Standpunkten aus vorgesehen.

Bei ACME-Interaktionen werden JSON-Dokumente über HTTPS-Verbindungen ausgetauscht.[14] Ein Entwurf einer Spezifikation ist auf GitHub verfügbar.[15] Mehrere Versionen davon wurden als Entwurf eines Request for Comments für einen Internet-Standard bei der Internet Engineering Task Force (IETF) eingereicht.[16]

Server-Implementierung[Bearbeiten | Quelltext bearbeiten]

Domainauswahldialog

Die Zertifizierungsstelle besteht im Wesentlichen aus einer in Go geschriebenen Software namens Boulder, die die Server-Seite des ACME-Protokolles implementiert. Sie wird als freie Software auch in Quelltextform unter den Bedingungen von Version 2 der Mozilla Public License (MPL) verbreitet.[17] Sie stellt eine REST-Programmierschnittstelle zur Verfügung, auf die TLS-verschlüsselt zugegriffen werden kann.

Für verschiedene Linux-Distributionen existieren Pakete, welche die Cert-Updates automatisch durchführen, so für Debian das package Certbot.[18]

Clients[Bearbeiten | Quelltext bearbeiten]

Durch den offenen Standard ACME sind mittlerweile über 30 unterschiedliche Clients entwickelt worden.[19][20]

Im Rahmen des Projekts wurde eine Apache-lizenzierte[21] Python-Referenzimplementierung namens certbot (früher letsencrypt) entwickelt. Über diese wird am Webserver eines Antragstellers das Zertifikat angefordert, der Domain-Validierungsprozess durchgeführt, das Zertifikat installiert, die HTTPS-Verschlüsselung im Webserver eingerichtet und später das Zertifikat regelmäßig erneuert.[22][4] Nach der Installation und Zustimmung zu einem Benutzervertrag genügt die Ausführung des reinen Befehls, um ein gültiges Zertifikat installiert zu bekommen. Es können aber auch zusätzliche Funktionen wie OCSP stapling oder HTTP Strict Transport Security (HSTS) eingestellt werden.[14] Die automatische Einrichtung funktioniert zunächst allerdings nur mit Apache und nginx. Der Client kann aus den Paketquellen diverser Linux-Distributionen installiert werden, beispielsweise aus den Debian-Paketquellen.[23]

Daneben gibt es mit acmetool[24] einen in Go geschriebenen mit vor-compilierten, statischen Programmdateien Client. Die Seite Get HTTPS for free![25] validiert ein Zertifikat per JavaScript im Webbrowser, wobei der Webadmin Anleitungen bekommt für verschiedene manuell auszuführende Schritte. Caddy[26] ist ein HTTP/2-kompatibler Webserver, der vollautomatisch ein Zertifikat erzeugt und Inhalte per HTTPS ausliefert. Ein weiterer weit verbreiteter Client ist acme-tiny, ein in Python geschriebener Client, er ist weniger als 200 Zeilen lang und soll somit von jedem Nutzer vor der Verwendung selbst gelesen werden[27].

Geschichte und Zeitplan[Bearbeiten | Quelltext bearbeiten]

Die Wurzeln des Projektes liegen in einem von der Electronic Frontier Foundation zusammen mit der University of Michigan betriebenen Projekt und einem unabhängigen Projekt von Mozilla, die in Let’s Encrypt zusammengeführt wurden. 2014 wurde die Trägerorganisation, die ISRG, gegründet. Der Start von Let’s Encrypt wurde am 18. November des Jahres 2014 bekannt gemacht.[28]

Am 28. Januar 2015 wurde das ACME-Protokoll erstmals bei der IETF zur Standardisierung eingereicht.[16] Am 9. April 2015 verkündeten die ISRG und die Linux Foundation ihre Zusammenarbeit.[11] Anfang Juni wurden die Stamm- und Zwischenzertifikate erzeugt.[13] Am 16. Juni wurde der endgültige Zeitplan für die Dienstaufnahme bekanntgegeben, wonach die Ausstellung des ersten Zertifikats für die Woche des 27. Juli vorgesehen war, dem eine Phase eingeschränkter Ausstellung folgen sollte, um die Sicherheit und Skalierbarkeit zu erproben.[29] Am 7. August wurde der Zeitplan geändert auf die erste Zertifikatsausstellung in der Woche des 7. Septembers und allgemeine Verfügbarkeit in der Woche des 16. November.[30] Ab 3. Dezember 2015 befand sich das Projekt in der offenen Betatest-Phase und kann seither von allen Interessierten genutzt werden.[31]

Am 8. März 2016 wurde bekannt gegeben, dass schon über eine Million Zertifikate ausgestellt wurden.[32] Eineinhalb Monate später waren es über zwei Millionen, weitere eineinhalb Monate später über fünf Millionen Zertifikate ausgestellt. Ein nennenswerter Teil des Zuwachses geht auf Kooperationen mit Webhosting-Anbietern wie zum Beispiel die Blogfarm WordPress.com (über 1 Million zusätzliche Sites) zurück, die für betreute Websites TLS-Verschlüsselung mit Let’s-Encrypt-Zertifikaten anbieten beziehungsweise diese eigenständig umgestellt haben. Seit der Öffnung des Betriebs erhöhte sich bis zum 22. Juni 2016 nach Messung von Browserhersteller Mozilla der weltweite Anteil verschlüsselter Websites von 39,5 auf 45 Prozent.[33]

Am 17. März 2016 gab das Projekt bekannt, dem CA/Browser Forum beigetreten zu sein,[34] das Nutzung von X.509-v.3-Zertifikaten für TLS regelt. Dadurch soll Let’s Encrypt der Aufnahme in Webbrowser als vorinstallierte Stammzertifizierungsstelle näher kommen.

Am 12. April 2016 ging das Projekt aus der offenen Betaphase in den offiziellen Regelbetrieb über.[35]

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]

 Commons: Let’s Encrypt – Sammlung von Bildern, Videos und Audiodateien

Quellen[Bearbeiten | Quelltext bearbeiten]

  1. Sean Michael Kerner: Let's Encrypt Effort Aims to Improve Internet Security. In: eWeek.com. Quinstreet Enterprise, 18. November 2014, abgerufen am 27. Februar 2015 (englisch).
  2. Peter Eckersley: Launching in 2015: A Certificate Authority to Encrypt the Entire Web. In: eff.org. Electronic Frontier Foundation, 18. November 2014, abgerufen am 27. Februar 2015 (englisch).
  3. Liam Tung (ZDNet), 19. November 2014: EFF, Mozilla to launch free one-click website encryption
  4. a b c d Fabian Scherschel (heise.de), 19. November 2014: Let’s Encrypt: Mozilla und die EFF mischen den CA-Markt auf
  5. Rob Marvin (SD Times), 19. November 2014: EFF wants to make HTTPS the default protocol
  6. Richard Barnes (Mozilla), 30. April 2015: Deprecating Non-Secure HTTP
  7. The Chromium Projects – Marking HTTP As Non-Secure
  8. Glyn Moody, 25. November 2014: The Coming War on Encryption, Tor, and VPNs – Time to stand up for your right to online privacy
  9. Steven J. Vaughan-Nichols (ZDNet), 9. April 2015: the web once and for all: The Let’s Encrypt Project
  10. Zeljka Zorz (Help Net Security), 6. Juli 2015: Let's Encrypt CA releases transparency report before its first certificate
  11. a b Sean Michael Kerner (eweek.com), 9. April 2015: Let’s Encrypt Becomes Linux Foundation Collaborative Project
  12. Reiko Kaps (heise.de), 17. Juni 2015: SSL-Zertifizierungsstelle Lets Encrypt will Mitte September 2015 öffnen
  13. a b Reiko Kaps (heise.de), 5. Juni 2015: Let’s Encrypt: Meilenstein zu kostenlosen SSL-Zertifikaten für alle
  14. a b Chris Brook (Threatpost), 18. November 2014: EFF, Others Plan to Make Encrypting the Web Easier in 2015
  15. Draft ACME specification.
  16. a b R. Barnes, P. Eckersley, S. Schoen, A. Halderman, J. Kasten: Automatic Certificate Management Environment (ACME) draft-barnes-acme-01. 28. Januar 2015.
  17. https://github.com/letsencrypt/boulder/blob/master/LICENSE.txt
  18. https://packages.debian.org/stretch/certbot
  19. List of Client Implementations. In: Let's Encrypt Community Support. 25. Oktober 2015, abgerufen am 25. März 2016.
  20. ACME Client Implementations. In: Documentation - Let's Encrypt - Free SSL_TLS Certificates. 2. Juli 2016, abgerufen am 27. Februar 2017.
  21. https://github.com/letsencrypt/letsencrypt/blob/master/LICENSE.txt
  22. James Sanders (TechRepublic), 25. November 2014: Let’s Encrypt initiative to provide free encryption certificates
  23. ITP: letsencrypt – Let's Encrypt client that can update Apache configurations
  24. acmetool. In: hlandau.github.io. Abgerufen am 25. März 2016.
  25. Get HTTPS for free! In: gethttpsforfree.com. Abgerufen am 25. März 2016.
  26. Caddy – The HTTP/2 Web Server with Fully Managed SSL. In: caddyserver.com. Abgerufen am 25. März 2016.
  27. GitHub - diafygi/acme-tiny: A tiny script to issue and renew TLS certs from Let's Encrypt. In: github.com. Abgerufen am 2. März 2017 (englisch).
  28. Joseph Tsidulko: Let's Encrypt, A Free And Automated Certificate Authority, Comes Out Of Stealth Mode. In: crn.com. 18. November 2014, abgerufen am 26. August 2015 (englisch).
  29. Josh Aas: Let’s Encrypt Launch Schedule. Let’s Encrypt. 16. Juni 2015. Abgerufen am 19. Juni 2015.
  30. Updated Let’s Encrypt Launch Schedule. 17. August 2015.
  31. Entering Public Beta. Abgerufen am 4. Dezember 2015.
  32. heise online: Let's Encrypt: 1 Million Zertifikate ausgestellt. In: heise online. Abgerufen am 9. März 2016 (deutsch).
  33. Dennis Schirrmacher (heise online), 23. Juni 2016: Fünf Millionen Zertifikate: Let's Encrypt wächst rasant
  34. heise online: Let's Encrypt tritt CA/Browser Forum bei. In: heise online. Abgerufen am 20. März 2016 (deutsch).
  35. Let's Encrypt Leaves Beta. Abgerufen am 17. April 2016.