Das SSL-Dilemma
Security Forum 2015 – April 2015 Christopher Dreher cirosec GmbH 2 Agenda
. Verschlüsselung im WWW . SSL/TLS, was läuft falsch? – Designschwächen – Implementierungsfehler . Vertrauen in Zertifikatsstellen . Das Revocation-Problem . Fehlkonfigurationen erkennen und fixen . Ausblick
3 Verschlüsselung im WWW Von damals bis heute
. HTTPS wurde von Netscape entwickelt und zusammen mit SSLv1 erstmals 1994 erwähnt . Kipp Hickman von Netscape veröffentlichte SSLv2 als IETF Draft in 1995
The SSL Protocol is designed to provide privacy between two communicating applications (a client and a server). Second, the protocol is designed to authenticate the server, and optionally the client. [...]
Quelle: Wikipedia 5 Von damals bis heute
. SSLv2 gilt seit Ende 1996 als gebrochen – Aktiver Man-in-the-Middle-Angriff erlaubt die komplette Kompromittierung der Vertraulichkeit und Integrität der gesicherten Übertragen (http://osvdb.org/56387)
. SSLv3 wird wiederum von drei Wissenschaftlern bei Netscape erarbeitet und 1996 veröffentlicht
. 1999 wird SSL zu TLS umbenannt, jedoch minimale Änderung der Spezifikation zu SSLv3 (SSLv3.1->TLS 1.0)
6 SSL und/oder TLS
. 2000 – 2006 erfolgt eine Vielzahl wissenschaftlicher Angriffe gegen SSLv3 und TLS 1.0 – Padding-Oracle-Angriff gegen Padding der Block Cipher (2002 Vaudenay „Security Flaws Induced by CBC Padding Applications to SSL, IPSEC, WTLS...“) – Timing-Attacke (2003 Brumley u. Boneh „Remote timing attacks are practical“) – Chosen-Plaintext-Attacke: IV ist vorhersagbar (2006 Bard)
. TLS 1.1 wird 2006 als Standard veröffentlicht (RFC4346) – Entfernung der Export Ciphers (40 Bit)
. Bereits 2008 wird die finale Version von TLS 1.2 als Ablösung von TLS 1.1 veröffentlicht (RFC5246)
7 SSL und TLS im Web 2015
Quelle: Universal-Pictures
8 SSL und TLS im Web 2015
9 Quelle: https://www.trustworthyinternet.org/ssl-pulse/ SSL und/oder TLS
Server beweist seine Identität durch Zertifikat
Browser Webserver
#*+x!3@f_ TLS TLS
Daten werden verschlüsselt übertragen
10 Verbindungsaufbau bei TLS
Client-Hello Server-Hello Client-Zufallszahl Server-Zufallszahl Protokollversion TLS 1.1 Protokollversion TLS 1.1 Liste von Algorithmen Algorithmus AES
11 Verbindungsaufbau bei TLS
TLS 1.1 TLS 1.1 AES
privat öffentlich
Client Key Exchange Pre-Master-Secret
12 Verbindungsaufbau bei TLS
TLS 1.1 TLS 1.1 AES Pre-Master-Secret
Client-Zufallszahl + Server-Zufallszahl privat öffentlich Fixer Startwert
Master-Secret Symmetrischer Sitzungsschlüssel 13 Designschwächen in SSL / TLS Designschwächen in SSL / TLS
. Probleme basieren nicht auf den einzelnen Implementierungen von SSL (OpenSSL, LibreSSL, MatrixSSL, PolarSSL, GnuTLS usw.)
. Lässt sich in der Regel nicht durch die Entwickler beheben, sondern bedarf – Anpassung und Änderung des Protokolls (Versionsupdate) – Workaround durch Deaktivierung betroffener Cipher Suites
15 BEAST (CVE-2011-3389)
. Browser Exploit Against SSL/TLS . Ausnutzung der Chosen-Plaintext-Attacke gegen den IV von Bard (2006) . Angreifer muss einen passiven Man-in-the-Middle-Angriff durchführen (Sniffing) und innerhalb des Opfer-Browsers eine Vielzahl von Anfragen abschicken können . PoC-Exploit basierte auf einem Java-Applet, das vom Opfer aufgerufen wurde – Java-Applet kam von einer Domain des Angreifers, deswegen zusätzliche Schwachstelle in JVM nötig zur Überwindung der SOP
. http://vnhacker.blogspot.de/2011/09/beast.html (Juliano Rizzo und Thai Duong)
16 BEAST (CVE-2011-3389)
. Keine bekannte Ausnutzung in the wild
. Empfehlung: Update auf TLS 1.1 oder Nutzung von RC4 anstelle von AES
Verwundbare SSL/TLS-Versionen TLS 1.2 - TLS 1.1 - TLS 1.0 JA SSL 3.0 JA 17 SSL 2.0 JA CRIME (CVE-2012-4929)
. Compression Ratio Info-leak Made Easy . Ausnutzung der Informationspreisgabe durch den Einsatz der SSL-Kompression . Angreifer muss einen passiven Man-in-the-Middle-Angriff durchführen (Sniffing) und innerhalb des Opfer-Browsers eine Vielzahl von Anfragen abschicken können . Angreifer kann Klartextdaten erraten durch Abgleich der Länge der komprimierten Daten (z.B. Cookie-Wert)
. https://isecpartners.com/blog/2012/september/details- on-the-crime-attack.aspx (Juliano Rizzo und Thai Duong)
18 CRIME (CVE-2012-4929)
. Keine bekannte Ausnutzung in the wild
. Empfehlung: Deaktivierung der SSL-Kompression auf Client- und Serverseite
Verwundbare SSL/TLS-Versionen TLS 1.2 JA TLS 1.1 JA TLS 1.0 JA SSL 3.0 JA 19 SSL 2.0 JA BREACH (CVE-2013-3587)
. Browser Reconnaissance & Exfiltration via Adaptive Compression of Hypertext . Ausnutzung der Informationspreisgabe durch den Einsatz der HTTP-Kompression . Angreifer muss einen passiven Man-in-the-Middle-Angriff durchführen (Sniffing) und innerhalb des Opfer-Browsers eine Vielzahl von Anfragen abschicken können
. http://breachattack.com/
20 BREACH (CVE-2013-3587)
. Keine bekannte Ausnutzung in the wild
. Empfehlung: – Deaktivierung der HTTP-Kompression (theoretisch) – Schutz gegen automatisierte Anfragen
Verwundbare SSL/TLS-Versionen TLS 1.2 JA TLS 1.1 JA TLS 1.0 JA SSL 3.0 JA 21 SSL 2.0 JA RC4-Schwäche
. RC4 ist ein Stream Cipher . Algorithmus generiert eine Sequenz von Schlüsseln, die mit den Daten „ge-XOR-ed“ werden . Schlüsselwerte sind nicht ausreichend zufällig verteilt . Praktischer Angriff erfordert sehr hohe Anzahl an Verbindungen
. Entdeckt: – 2013 (http://www.isg.rhul.ac.uk/tls/RC4biases.pdf) . Betroffen: – RC4 Ciphers . Gegenmaßnahme: – Verzicht auf RC4 – Schutz gegen automatisierte Anfragen
22 POODLE: SSLv3 vulnerability (CVE-2014-3566)
. Padding Oracle On Downgraded Legacy Encryption . Angreifer muss einen passiven Man-in-the-Middle-Angriff durchführen (Sniffing) und innerhalb des Opfer-Browsers 256 x n (n-Byte langes Cookie) Anfragen abschicken können
. https://www.openssl.org/~bodo/ssl-poodle.pdf
23 POODLE: SSLv3 vulnerability (CVE-2014-3566)
. Keine bekannte Ausnutzung in the wild – Wahrscheinlicher im Gegensatz zu BEAST, BREACH oder CRIME
. Empfehlung: Deaktivierung von SSLv3
Verwundbare SSL/TLS-Versionen TLS 1.2 - TLS 1.1 - TLS 1.0 - SSL 3.0 JA 24 SSL 2.0 JA POODLE: SSLv3 vulnerability (CVE-2014-3566)
25
Quelle: http://news.netcraft.com/archives/2014/10/15/googles-poodle-affects-oodles.html SSLv3 Downgrade
26
Quelle: http://news.netcraft.com/archives/2014/10/15/googles-poodle-affects-oodles.html FREAK: < TLS 1.1 vulnerability
. Factoring RSA Export Keys . Angreifer muss einen aktiven Man-in-the-Middle-Angriff durchführen und verlangt vom Server die Verwendung von EXPORT Cipher Suites . Faktorisierung von 512bit RSA-Schlüsseln kostet ca. 100$ Amazon EC2-Rechenzeit und dauert weniger als 8 Stunden
. https://www.smacktls.com/
27 FREAK: < TLS 1.1 vulnerability
HTTPS serves of Alexa‘s Top 1 Million Domains
Quelle: https://freakattack.com/
. Empfehlung: Deaktivierung von TLS 1.0 und kleiner
Verwundbare SSL/TLS-Versionen TLS 1.2 - TLS 1.1 - TLS 1.0 JA SSL 3.0 JA 28 SSL 2.0 JA Implementierungsfehler in SSL / TLS Implementierungsfehler in SSL / TLS
. Fehler erzeugt durch einzelne Entwickler / Teams innerhalb einer Bibliothek . Fehlerhafte Qualitätssicherung des Codes . Typische Softwareschwachstellen – Buffer Overflows – Control Flow Manipulation
30 Heartbleed (CVE-2014-0160)
. Heartbeat-Nachrichten dienen der Sicherstellung einer intakten Kommunikationsverbindung über UDP . Fehlerhafte Überprüfung der Längenangabe der Heartbeat-Anfrage . Heartbeat-Antwort liefert die empfangene Nachricht zurück und mehr (max. 64 kB) – Auslesen zufälliger Werte, die zum aktuellen Zeitpunkt in dem dynamischen Prozessspeichers des Webserver-Prozesses liegen
. http://heartbleed.com/ Verwundbare OpenSSL-Versionen OpenSSL 1.0.1 bis 1.0.1f OpenSSL 1.0.2-beta bis 1.0.2-beta1
31 Heartbleed (CVE-2014-0160)
32 Quelle: http://xkcd.com/1354/ Heartbleed (CVE-2014-0160)
33 Quelle: http://xkcd.com/1354/ Heartbleed (CVE-2014-0160)
„A HeartbeatRequest message can arrive almost at any time during the lifetime of a connection. Whenever a HeartbeatRequest message is received, it SHOULD be answered with a corresponding HeartbeatResponse message.“
https://tools.ietf.org/html/rfc6520
34 OpenSSL CCS Injection Vulnerability (CVE-2014-0224)
. Begünstigte die Erzwingung zur Verwendung von schwachem Schlüsselmaterial durch externe Angreifer auf der Leitung . ChangeCipherSpec-Instruktion konnte zu beliebigen Zeiten injected werden
. http://ccsinjection.lepidum.co.jp/
Verwundbare OpenSSL-Versionen OpenSSL 1.0.1 bis 1.0.1g OpenSSL 1.0.0 bis 1.0.0l Alle Versionen vor OpenSSL 0.9.8y 35 Vertrauen in Zertifikatsstellen Authentisierung / Identifizierung bei TLS
. Woher weiß der Browser, dass der angefragte Server legitim ist?
. Server-Zertifikate sind wie Ausweisdokumente – Der Aussteller der Zertifikate ist vergleichbar mit einer nationalen Passbehörde
37 Vertrauenswürdige CAs in Browsern
. Keine zentrale Datenbank
. Internet Explorer / M$ CTL . Mozilla Firefox . iOS / Android
. Insgesamt über 650 CAs inklusive Sub-CAs
Quelle: https://www.eff.org/observatory
38 Beispiel: Aufbrechen der Verschlüsselung
Browser Angreifer Webserver
TLS-Verbindung 1 TLS-Verbindung 2
Gefälschtes Zertifikat Echtes Zertifikat
39 Beispiel: Aufbrechen der Verschlüsselung
. Gefälschtes Zertifikat ist nicht gültig . Ist das ein Problem?
40 You Won’t Be Needing These Any More
. Untersuchung von ca. 48 Mio. HTTPS-Seiten ergab: – Über 140 CA-Zertifikate in den unterschiedlichen Truststores werden nicht verwendet (Geheimdienste lassen grüßen) – Von insgesamt 426 CA-Zertifikaten werden nur 2/3 benutzt
. Welche CAs werden für .de-Domains gebraucht?
. http://fc14.ifca.ai/papers/fc14_submission_100.pdf
41 DigiNotar Hack
Quelle: Heise
. Analyse-Bericht Fox-IT: http://www.rijksoverheid.nl/bestanden/documenten-en- 42 publicaties/rapporten/2012/08/13/black-tulip-update/black-tulip-update.pdf Türktrust-Versagen
Quelle: Heise
43 Malware/Adware und CAs
44 Quelle: Heise Exkurs Zertifikate
Domain Validation Organization Validation Extended Validation - Verschlüsselung - Authentifizierung des - Strikte Unternehmens Industriestandard- - Validierung der Authentifizierung für Domain-Kontrolle - Nachweis des Rechts zur Domainnutzung Unternehmen - Vorhängeschloss im - Unternehmensinfo im - Für Unternehmen Browser Zertifikat vorteilhafte grüne Adressleiste im Browser - Ausstellung in - Ausstellung in 1-2 Tagen - Ausstellung in 7-10 wenigen Minuten Tagen
Quelle: https://www.certcenter.de/ssl-guide
45 Exkurs Zertifikate
DV- oder OV-Zertifikate
EV-Zertifikate
46 Und 2015 …
47 48
49
50
51
52 Beispiel: Man-in-the-Middle-Angriff
Webserver
Führt DNS-Spoofing durch, kann dadurch Datenverkehr mitlesen sowie verändern
Angreifer mit Browser gültigem Server- 53 Zertifikat Das Revocation-Problem Lebenszyklus von Zertifikaten
. Zertifikatsantrag: Ein Benutzer beantragt ein Zertifikat. . Antragsprüfung: Die Registration Authority (RA) prüft die Identität des Benutzers/Antragstellers. . Generierung/Ausstellung der Zertifikate: Die Certificate Authority (CA) stellt das Zertifikat aus. Dieses Zertifikat enthält Angaben zu Inhaber, Herausgeber, erlaubter Nutzung und Lebensdauer (gültig von und gültig bis) . Revokation/Ungültigkeit: Das Zertifikat wird vor dem Verfall revoziert bzw. für ungültig erklärt. . Zertifikats-Laufzeitende: Die Lebensdauer des Zertifikats ist abgelaufen. . Zertifikats-Renewal: Erneuerung des Zertifikats.
55 Widerrufen von Zertifikaten
. Welche Möglichkeiten gibt es, um ein Zertifikat zu widerrufen?
Quelle: stern.de
56 Quelle: Cartoonstock.com CRL-Listen
. Jede CA hat die Möglichkeit, Sperrlisten (Certificate-Revocation-Listen) zu publizieren
57 CRL-Listen
58 CRL-Listen
Zitat: https://blog.cloudflare.com/the-hard-costs-of-heartbleed/
Quelle: https://isc.sans.edu/crls.html
59 CRL-Listen
. Werden vom Webbrowser in regelmäßigen Abständen abgerufen . Blacklist-Ansatz . Soft-Fail bei allen Browsern – Wenn keine CRL bezogen werden konnte, gelten alle Zertifikate als gültig – Angreifer auf der Netzwerkebene kann Empfang einer aktuellen CRL einfach unterbinden
60 OCSP
. Online Certificate Status Protocol . Netzwerkprotokoll auf Basis von HTTP . Clients (Webbrowser) können dadurch den Status von Zertifikaten bei der CA erfragen . OCSP-Antworten sind digital von der CA signiert Fetch Web Certificate Web Browser Server
Fetch One OCSP Status OCSP Server 61 OCSP
. Vor dem Aufruf einer HTTPS-Webseite wird eine Anfrage vom Browser an den OCSP-Responder der CA gestellt
Browser OCSP- Status ruft Anfrage good Seite auf
Browser OCSP- Status verweigert Anfrage revoked Aufruf
62 OCSP
. Was passiert, wenn der OCSP-Responder nicht antwortet?
Browser OCSP- Browser ??? ruft Anfrage ruft SeiteSeite auf auf
Quelle: https://sirdoomsbadcompany.wordpress.com 63 OCSP
. OCSP bietet im Gegensatz zu CRLs folgende Vorteile: – Sekundengenaue Datenbasis – CA kann Zertifikat als bad markieren, wenn verwendete Schlüssel- Algorithmen/-Längen oder Signaturverfahren als nicht mehr sicher gelten
. Außer Firefox bietet kein Browser den Hard-Fail an – OCSP-Responder werden als Flaschenhals des WWWs angesehen – Gefährdung der Privatsphären
64 Revocation-Wirrwarr
. Behandlung von widerrufenen Zertifikaten obliegt den Browsern . Reicht vom Nichtbeachten des Widerruf-Status bis hin zum Verweigern des Verbindungsaufbaus
. Umfassende Analyse von IE, Firefox, Chrome unter Windows sowie unter iOS/Android (https://www.grc.com/revocation)
65 Revocation, wenn es klappt …
66 OCSP Hard-Fail
67 Ausblick OCSP Stapling
. OCSP-Anfragen werden vom Browser an den Server verlagert . Webserver liefert zusammen mit dem Zertifikat eine aktuelle und von der CA signierte OCSP-Antwort aus
Fetch Certificate Web & OCSP Web Browser Server
Fetch One OCSP Status OCSP Server 69 OCSP Stapling
. Vorteile: – Auslastung der OCSP-Responder hält sich in Grenzen – Keine Verletzung der Privatsphäre – Keine Verzögerung beim Browsen
. Unterstützung der Webserver: – Apache ab Version 2.3.3 – nginx ab Version 1.3.7 – LiteSpeed ab Version 4.2.4
http://news.netcraft.com/archives/2013/07/19/microsoft -achieves-world-domination-in-ocsp-stapling.html
70 OCSP must-staple
. OCSP Stapling hat folgendes Problem: – Wird ein Serverzertifikat gestohlen (privater Schlüssel), so kann der Angreifer dieses für gezielte Man-in-the-Middle-Angriffe nutzen, indem er einfach bei seinem Server das OCSP Stapling deaktiviert und dem Opfer den Revocation-Status der CA verschweigt.
. X.509v3 Extension: OCSP Stapling Required
. http://tools.ietf.org/html/draft-hallambaker- muststaple-00
71 2015 … 2016 … 2017
72 73