Let’s Encrypt

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Let’s Encrypt
Logo
Gründung 2014
Gründer EFF, Mozilla, U-M
Sitz San Francisco
Motto encrypt the entire web
Schwerpunkt X.509-Zertifizierungsstelle
Aktionsraum weltweit
Eigentümer Internet Security Research Group
Umsatz 3,6 Mio. US-Dollar (2019)[1]
Beschäftigte 10 (2017)[2]
Website letsencrypt.org

Let’s Encrypt (deutsch „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. Die Zertifikate haben eine Gültigkeit von jeweils 90 Tagen und können manuell oder automatisch erneuert werden. 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.[3][4]

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.[5] 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.[6][7]

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.[8][9] Dem Projekt wird das Potenzial zugesprochen, die standardmäßige Verschlüsselung des gesamten Web zu erreichen.[10]

Um sowohl die eigene Vertrauenswürdigkeit zu erhöhen 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,[11] alle Ausstellungstransaktionen öffentlich protokolliert (u. a. mit Certificate Transparency) und möglichst viel auf offene Standards und freie Software gesetzt.[6]

Das Projekt erhielt den FSF Award 2019.

Es werden TLS-Zertifikate mit Domain Validation (DV) ausgestellt. Bewusst nicht angeboten werden TLS-Zertifikate mit einer Prüfung auf Organization Validation (OV) und Extended Validation (EV),[12] da deren Antragsprozess per Definition nicht vollautomatisiert möglich ist und sie damit dem Zweck von Let’s Encrypt zuwiderlaufen, eine niederschwellige unmittelbare Ausstellung von TLS-Zertifikaten zu ermöglichen.

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[13] sowie Stephen Kent von Raytheon/BBN Technologies und Alex Polvi von CoreOS.[6]

Let’s Encrypt besitzt ein RSA- und ein ECDSA-Stammzertifikat,[14] das in einem Hardware-Sicherheitsmodul verwahrt wird. Damit werden mehrere RSA- und ECDSA-Zwischenzertifikate signiert. Eine Teilmenge der Zwischenzertifikate dient zur Signierung der ausgestellten Teilnehmerzertifikate, die anderen als Ersatz im Fall von Problemen mit ersten. Teilnehmerzertifikate mit RSA- oder ECDSA-Schlüssel werden sortenrein über die jeweilige RSA- oder ECDSA-Zertifikatskette ausgestellt.[14]

Frühere Zwischenzertifikate wurden durch die Zertifizierungsstelle IdenTrust gegengezeichnet werden.[15] Durch die IdenTrust-Signatur konnten die ausgestellten Zertifikate in gebräuchlichen Webbrowsern über die vorinstallierten Stammzertifizierungsstellen geprüft werden. So wurden Let’s-Encrypt-Zertifikate auf Client-Seite von Anfang an in der Regel ohne weiteres akzeptiert.[16] Seit Ende Juli 2018 ist das Stammzertifikat von Let’s Encrypt in allen wichtigen Root-Programmen vertreten.[17]

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“ (ein Zufallswert) 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-Servern 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).

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.[18] Das Protokoll wurde im März 2019 von der Internet Engineering Task Force als Request for Comments im Status eines vorgeschlagenen Internetstandards veröffentlicht.[19]

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-Protokolls implementiert. Sie wird als freie Software auch in Quelltextform unter den Bedingungen von Version 2 der Mozilla Public License (MPL) verbreitet.[20] 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.[21]

Durch den offenen Standard ACME sind mittlerweile über 40 unterschiedliche Clients entwickelt worden.[22][23]

Im Rahmen des Projekts wurde eine Apache-lizenzierte[24] 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.[25][6] 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.[18] 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.[26]

Daneben gibt es mit acmetool[27] einen in Go geschriebenen mit vor-kompilierten, statischen Programmdateien Client. Die Seite Get HTTPS for free![28] validiert ein Zertifikat per JavaScript im Webbrowser, wobei der Webadmin Anleitungen bekommt für verschiedene manuell auszuführende Schritte. Caddy[29] 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.[30]

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 2014 bekannt gemacht.[31]

Am 28. Januar 2015 wurde das ACME-Protokoll erstmals bei der IETF zur Standardisierung eingereicht.[32] Am 9. April 2015 verkündeten die ISRG und die Linux Foundation ihre Zusammenarbeit.[13] Anfang Juni wurden die Stamm- und Zwischenzertifikate erzeugt.[16] 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.[33] 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.[34] Ab 3. Dezember 2015 befand sich das Projekt in der offenen Betatest-Phase und kann seither von allen Interessierten genutzt werden.[35]

Am 8. März 2016 wurde bekannt gegeben, dass schon über eine Million Zertifikate ausgestellt wurden.[36] 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 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.[37]

Am 17. März 2016 gab das Projekt bekannt, dem CA/Browser Forum beigetreten zu sein,[38] das die Nutzung von X.509-v.3-Zertifikaten für TLS regelt.

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

Seit dem 13. März 2018 bietet Let’s Encrypt auch sogenannte Wildcard-Zertifikate an.[40]

Am 27. Februar 2020 stellte Let’s Encrypt das einmilliardste Zertifikat aus.[41][42] Kurz darauf musste Let’s Encrypt 3 Millionen Zertifikate zurückziehen, da bei deren Ausstellung die DNS Certification Authority Authorization nicht hinreichend geprüft wurde.[43]

Im August 2023 waren den Angaben von Mozilla zufolge 78 Prozent des Internetverkehrs in den Firefox-Webbrowsern verschlüsselt; 10 Jahre zuvor waren es noch 27 Prozent.[44]

Nichtkommerzielle Alternativen

[Bearbeiten | Quelltext bearbeiten]

CAcert ist eine weitere nichtkommerzielle Zertifizierungsstelle, die bereits seit 2003 kostenlose Zertifikate herausgibt. CAcert basiert auf einem Web of Trust. Im Gegensatz zu Let’s Encrypt beschränkt sich CAcert nicht nur auf Server-Zertifikate, sondern stellt auch Client-Zertifikate oder S/MIME-Zertifikate aus. Die Wurzelzertifikate von CAcert waren und sind nicht in den Zertifikatsspeichern gängiger Webbrowsern enthalten. Lediglich einige Linux-Distributionen liefern es mit aus.[45]

Commons: Let’s Encrypt – Sammlung von Bildern, Videos und Audiodateien
  1. Josh Aas, ISRG Executive Director: Looking Forward to 2019. Let’s Encrypt, 31. Dezember 2018, abgerufen am 26. Januar 2019 (englisch).
  2. Josh Aas: What It Costs to Run Let’s Encrypt. Let’s Encrypt, 20. September 2016, abgerufen am 26. Januar 2019 (englisch).
  3. Sean Michael Kerner: Let’s Encrypt Effort Aims to Improve Internet Security. In: eweek.com. Quinstreet Enterprise, 18. November 2014, abgerufen am 29. Januar 2023 (englisch).
  4. 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).
  5. Liam Tung (ZDNet), 19. November 2014: EFF, Mozilla to launch free one-click website encryption
  6. a b c d Fabian Scherschel (heise.de), 19. November 2014: Let’s Encrypt: Mozilla und die EFF mischen den CA-Markt auf
  7. Rob Marvin (SD Times), 19. November 2014: EFF wants to make HTTPS the default protocol
  8. Richard Barnes (Mozilla), 30. April 2015: Deprecating Non-Secure HTTP
  9. The Chromium Projects – Marking HTTP As Non-Secure
  10. Glyn Moody, 25. November 2014: The Coming War on Encryption, Tor, and VPNs – Time to stand up for your right to online privacy
  11. Zeljka Zorz (Help Net Security), 6. Juli 2015: Let’s Encrypt CA releases transparency report before its first certificate
  12. Steven J. Vaughan-Nichols (ZDNet), 9. April 2015: the web once and for all: The Let’s Encrypt Project
  13. a b Sean Michael Kerner: Let’s Encrypt Becomes Linux Foundation Collaborative Project. In: eweek.com. 9. April 2015, abgerufen am 29. Januar 2023 (englisch).
  14. a b Chains of Trust. Abgerufen am 1. November 2024.
  15. Reiko Kaps (heise.de), 17. Juni 2015: SSL-Zertifizierungsstelle Lets Encrypt will Mitte September 2015 öffnen
  16. a b Reiko Kaps (heise.de), 5. Juni 2015: Let’s Encrypt: Meilenstein zu kostenlosen SSL-Zertifikaten für alle
  17. Let’s Encrypt Root Trusted By All Major Root Programs – Let’s Encrypt – Free SSL/TLS Certificates. Abgerufen am 19. März 2019.
  18. a b Chris Brook (Threatpost), 18. November 2014: EFF, Others Plan to Make Encrypting the Web Easier in 2015
  19. RFC 8555 – Automatic Certificate Management Environment (ACME). März 2019 (englisch).
  20. Boulder – An ACME CA. Let’s Encrypt (ISRG), 13. März 2023, abgerufen am 14. März 2023.
  21. Debian -- Informationen über Paket certbot in stretch. Abgerufen am 14. März 2023.
  22. List of Client Implementations. In: Let’s Encrypt Community Support. 25. Oktober 2015, abgerufen am 25. März 2016.
  23. ACME Client Implementations. In: Documentation – Let’s Encrypt – Free SSL_TLS Certificates. 10. Juli 2019, abgerufen am 21. Juli 2019.
  24. certbot/certbot. certbot, 14. März 2023, abgerufen am 14. März 2023.
  25. James Sanders (TechRepublic), 25. November 2014: Let’s Encrypt initiative to provide free encryption certificates
  26. #774387 – ITP: letsencrypt -- Let’s Encrypt client that can update Apache configurations – Debian Bug report logs. Abgerufen am 14. März 2023.
  27. acmetool. In: hlandau.github.io. Archiviert vom Original (nicht mehr online verfügbar) am 20. März 2016; abgerufen am 25. März 2016.  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/hlandau.github.io
  28. Get HTTPS for free! In: gethttpsforfree.com. Abgerufen am 25. März 2016.
  29. Caddy – The HTTP/2 Web Server with Fully Managed SSL. In: caddyserver.com. Abgerufen am 25. März 2016.
  30. 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).
  31. 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).
  32. R. Barnes, P. Eckersley, S. Schoen, A. Halderman, J. Kasten: Automatic Certificate Management Environment (ACME) draft-barnes-acme-01. 28. Januar 2015;.
  33. Josh Aas: Let’s Encrypt Launch Schedule. In: letsencrypt.org. Let’s Encrypt, 16. Juni 2015, abgerufen am 19. Juni 2015.
  34. Updated Let’s Encrypt Launch Schedule. 17. August 2015;.
  35. Entering Public Beta. Abgerufen am 4. Dezember 2015.
  36. heise online: Let’s Encrypt: 1 Million Zertifikate ausgestellt. In: heise online. Abgerufen am 9. März 2016.
  37. Dennis Schirrmacher (heise online), 23. Juni 2016: Fünf Millionen Zertifikate: Let’s Encrypt wächst rasant
  38. heise online: Let’s Encrypt tritt CA/Browser Forum bei. In: heise online. Abgerufen am 20. März 2016.
  39. Let’s Encrypt Leaves Beta. In: LinuxFoundation.org. Archiviert vom Original am 15. April 2016; abgerufen am 17. April 2016.
  40. ACME v2 and Wildcard Certificate Support is Live. Abgerufen am 14. März 2018.
  41. heise online: Erfolgsgeschichte: Let’s Encrypt stellt einmilliardstes Zertifikat aus. Abgerufen am 14. März 2023.
  42. Let’s Encrypt Has Issued a Billion Certificates – Let’s Encrypt. Abgerufen am 14. März 2023 (amerikanisches Englisch).
  43. heise online: Achtung: Let’s Encrypt macht Mittwochnacht 3 Millionen Zertifikate ungültig. Abgerufen am 14. März 2023.
  44. Stefan Krempl: 10 Jahre Let's Encrypt: 78 Prozent des Webverkehrs sind verschlüsselt. In: heise online. 5. August 2023, abgerufen am 5. August 2023.
  45. Browser Inclusion Status. Abgerufen am 6. August 2023.