Let's Encrypt
Total Page:16
File Type:pdf, Size:1020Kb
Let’s Encrypt Die neue Sicherheit für Jeden Inhaltsverzeichnis 1 Let’s Encrypt 1 1.1 Überblick ............................................... 1 1.2 Beteiligte ............................................... 1 1.3 Technik ................................................ 2 1.3.1 Protokoll ........................................... 2 1.3.2 Server-Implementierung ................................... 2 1.3.3 Clients ............................................ 2 1.4 Geschichte und Zeitplan ....................................... 3 1.5 Siehe auch .............................................. 4 1.6 Weblinks ............................................... 4 1.7 Quellen ................................................ 4 2 Extended-Validation-Zertifikat 6 2.1 Motivation .............................................. 7 2.2 Benutzerschnittstelle ......................................... 7 2.2.1 Browserunterstützung .................................... 7 2.3 Vergabekriterien ........................................... 7 2.4 Weblinks ............................................... 8 2.5 Einzelnachweise ............................................ 8 3 X.509 9 3.1 Geschichte .............................................. 9 3.2 Zertifikate ............................................... 9 3.2.1 Struktur eines X.509-v3-Zertifikats ............................. 9 3.2.2 Erweiterungen ........................................ 10 3.2.3 Dateinamenserweiterungen für Zertifikate .......................... 11 3.3 Beispiel für ein X.509-Zertifikat ................................... 11 3.4 Literatur ............................................... 11 3.5 Weblinks ............................................... 12 4 Transport Layer Security 13 4.1 TLS in der Praxis ........................................... 13 4.1.1 Versionen ........................................... 14 i ii INHALTSVERZEICHNIS 4.2 Geschichte .............................................. 14 4.3 Funktionsweise ............................................ 15 4.3.1 TLS-Protokolle im Protokollstapel .............................. 15 4.3.2 TLS Record Protocol ..................................... 16 4.3.3 TLS Handshake Protocol ................................... 16 4.3.4 TLS Change Cipher Spec Protocol .............................. 17 4.3.5 TLS Alert Protocol ...................................... 18 4.3.6 TLS Application Data Protocol ............................... 18 4.3.7 Berechnung des Master Secrets ............................... 18 4.4 Sicherheit ............................................... 18 4.4.1 Padding-Oracle-Angriffe ................................... 18 4.4.2 BEAST ............................................ 18 4.4.3 Kompressionsangriffe .................................... 19 4.4.4 Downgrade auf Exportverschlüsselung ............................ 19 4.4.5 Implementierungsfehler ................................... 19 4.5 Vor- und Nachteile .......................................... 20 4.6 Implementierungen .......................................... 20 4.7 Siehe auch .............................................. 20 4.8 Literatur ............................................... 20 4.9 Weblinks ............................................... 21 4.10 Einzelnachweise ............................................ 21 5 Hypertext Transfer Protocol Secure 23 5.1 Nutzen ................................................ 23 5.2 Technik ................................................ 23 5.3 Client-Verarbeitung .......................................... 23 5.3.1 Varianten der HTTPS-Anwahl ................................ 24 5.3.2 Vorinstallierte Zertifikate ................................... 25 5.4 Server-Betrieb ............................................ 25 5.4.1 Zertifikat ........................................... 25 5.4.2 IP-Adressen bei mehreren Domains ............................. 26 5.4.3 Einbindung .......................................... 26 5.4.4 Umstellung .......................................... 27 5.4.5 Leistung ........................................... 27 5.5 Angriffe und Schwachstellen ..................................... 28 5.5.1 Verschlüsselung ....................................... 28 5.5.2 Zertifikatsystem ....................................... 28 5.6 Spezifikationen ............................................ 29 5.7 Weblinks ............................................... 29 5.8 Einzelnachweise ............................................ 29 5.9 Text- und Bildquellen, Autoren und Lizenzen ............................. 30 5.9.1 Text .............................................. 30 INHALTSVERZEICHNIS iii 5.9.2 Bilder ............................................. 30 5.9.3 Inhaltslizenz .......................................... 31 Kapitel 1 Let’s Encrypt 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] 1.1 Ü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 über- flü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 ACME-Transaktionen ö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. 1.2 Beteiligte Let’s Encrypt ist ein von der gemeinnützigen Internet Security Research Group (ISRG) angebotener Dienst. Haupt- sponsoren 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] 1 2 KAPITEL 1. LET’S ENCRYPT 1.3 Technik 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 Zwischen- zertifikate 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 Stammzer- tifizierungsstellen 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 wer- den. 1.3.1 Protokoll Das zur Automatisierung der Zertifizierung genutzte Challenge-Response-Verfahren heißt Automated Certificate Management Environment (ACME). Dabei werden verschiedene Anfragen an den Webserver der zu zertifizieren- den Domain gestellt. Anhand gegebenenfalls darauf erfolgenden passenden Rückmeldungen wird sichergestellt, dass der Antragsteller die Domain kontrolliert („domain validation“). Auf dem Server-System müssen diese Anfragen korrekt beantwortet werden. Dazu bietet das Protokoll verschie- dene 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 Zertifikats- ausstellung 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 Kontrol- le ü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