Let’s Encrypt
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]
Let’s Encrypt | |
---|---|
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 |
Überblick
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 der Zweck von Let’s Encrypt ist, eine niederschwellige unmittelbare Ausstellung von TLS-Zertifikaten zu ermöglichen.
Beteiligte
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]
Technik
Let’s Encrypt besitzt ein RSA-Stammzertifikat, das in einem Hardware-Sicherheitsmodul verwahrt und nicht direkt verwendet wird. Es soll im dritten Quartal 2019 durch ein ECDSA-Stammzertifikat ergänzt werden[14]. Damit werden mehrere Zwischenzertifikate signiert, welche durch die Zertifizierungsstelle IdenTrust gegengezeichnet werden.[15] Eines davon dient dann zur Signierung der ausgestellten Zertifikate, die anderen als Ersatz bei Problemen mit dem ersten. Durch die IdenTrust-Signatur können die ausgestellten Zertifikate in gebräuchlichen 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.[16] Seit Ende Juli 2018 ist das Stammzertifikat von Let's Encrypt in allen wichtigen Root-Programmen vertreten.[17]
Protokoll
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-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).
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.[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
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]
Clients
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
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]
Siehe auch
Weblinks
- Offizielle Website
- Seth Schoens Vorlesung bei Libre Planet 2015 zu Let’s Encrypt (englisch)
- technische Einführung in einem Blogeintrag von David Wong (englisch)
Quellen
- Josh Aas, ISRG Executive Director: Looking Forward to 2019. Let's Encrypt, 31. Dezember 2018, abgerufen am 26. Januar 2019 (englisch).
- Josh Aas: What It Costs to Run Let's Encrypt. Let's Encrypt, 20. September 2016, abgerufen am 26. Januar 2019 (englisch).
- 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).
- 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).
- Liam Tung (ZDNet), 19. November 2014: EFF, Mozilla to launch free one-click website encryption
- Fabian Scherschel (heise.de), 19. November 2014: Let’s Encrypt: Mozilla und die EFF mischen den CA-Markt auf
- Rob Marvin (SD Times), 19. November 2014: EFF wants to make HTTPS the default protocol
- Richard Barnes (Mozilla), 30. April 2015: Deprecating Non-Secure HTTP
- The Chromium Projects – Marking HTTP As Non-Secure
- Glyn Moody, 25. November 2014: The Coming War on Encryption, Tor, and VPNs – Time to stand up for your right to online privacy
- Zeljka Zorz (Help Net Security), 6. Juli 2015: Let's Encrypt CA releases transparency report before its first certificate
- Steven J. Vaughan-Nichols (ZDNet), 9. April 2015: the web once and for all: The Let’s Encrypt Project
- Sean Michael Kerner (eweek.com), 9. April 2015: Let’s Encrypt Becomes Linux Foundation Collaborative Project (Seite nicht mehr abrufbar, Suche in Webarchiven) Info: Der Link wurde automatisch als defekt markiert. Bitte prüfe den Link gemäß Anleitung und entferne dann diesen Hinweis.
- Upcoming Features - Let's Encrypt - Free SSL/TLS Certificates. Abgerufen am 19. März 2019.
- Reiko Kaps (heise.de), 17. Juni 2015: SSL-Zertifizierungsstelle Lets Encrypt will Mitte September 2015 öffnen
- Reiko Kaps (heise.de), 5. Juni 2015: Let’s Encrypt: Meilenstein zu kostenlosen SSL-Zertifikaten für alle
- Let's Encrypt Root Trusted By All Major Root Programs - Let's Encrypt - Free SSL/TLS Certificates. Abgerufen am 19. März 2019.
- Chris Brook (Threatpost), 18. November 2014: EFF, Others Plan to Make Encrypting the Web Easier in 2015
- RFC 8555. – Automatic Certificate Management Environment (ACME). März 2019. (englisch).
- github.com
- packages.debian.org
- List of Client Implementations. In: Let's Encrypt Community Support. 25. Oktober 2015, abgerufen am 25. März 2016.
- ACME Client Implementations. In: Documentation – Let’s Encrypt – Free SSL_TLS Certificates. 10. Juli 2019, abgerufen am 21. Juli 2019.
- github.com
- James Sanders (TechRepublic), 25. November 2014: Let’s Encrypt initiative to provide free encryption certificates
- ITP: letsencrypt – Let's Encrypt client that can update Apache configurations
- acmetool. In: hlandau.github.io. Abgerufen am 25. März 2016.
- Get HTTPS for free! In: gethttpsforfree.com. Abgerufen am 25. März 2016.
- Caddy – The HTTP/2 Web Server with Fully Managed SSL. In: caddyserver.com. Abgerufen am 25. März 2016.
- 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).
- 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).
- R. Barnes, P. Eckersley, S. Schoen, A. Halderman, J. Kasten: Automatic Certificate Management Environment (ACME) draft-barnes-acme-01. 28. Januar 2015.
- Josh Aas: Let’s Encrypt Launch Schedule. In: letsencrypt.org. Let’s Encrypt. 16. Juni 2015. Abgerufen am 19. Juni 2015.
- Updated Let’s Encrypt Launch Schedule. 17. August 2015.
- Entering Public Beta. Abgerufen am 4. Dezember 2015.
- heise online: Let's Encrypt: 1 Million Zertifikate ausgestellt. In: heise online. Abgerufen am 9. März 2016.
- Dennis Schirrmacher (heise online), 23. Juni 2016: Fünf Millionen Zertifikate: Let's Encrypt wächst rasant
- heise online: Let's Encrypt tritt CA/Browser Forum bei. In: heise online. Abgerufen am 20. März 2016.
- Let's Encrypt Leaves Beta. In: LinuxFoundation.org. Archiviert vom Original am 15. April 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. Abgerufen am 17. April 2016.
- ACME v2 and Wildcard Certificate Support is Live. Abgerufen am 14. März 2018.
- https://www.heise.de/security/meldung/Erfolgsgeschichte-Let-s-Encrypt-stellt-einmilliardstes-Zertifikat-aus-4673299.html
- https://letsencrypt.org/2020/02/27/one-billion-certs.html
- https://www.heise.de/security/meldung/Achtung-Let-s-Encrypt-macht-heute-nacht-3-Millionen-Zertifikate-ungueltig-4676017.html