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: ://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--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 (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

. / M$ CTL . Mozilla . 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 (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 – 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