securityforum april 2015 - das ssl dilemma - or one million ways to die in the net
TRANSCRIPT
Disclaimer
3
Security Forum 2014https://www.securityforum.at/wp-content/uploads/2014/05/SF14_Slides_Koenig.pdf
Agenda
4
Verschlüsselung im WWW
SSL/TLS, was läuft falsch?
– Designschwächen
– Implementierungsfehler
Vertrauen in Zertifikatsstellen
Das Revocation-Problem
Fehlkonfigurationen erkennen und fixen
Ausblick
Von damals bis heute
6
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 designedto authenticate the server, and optionally the client. [...]
Quelle: Wikipedia
Von damals bis heute
7
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)
SSL und/oder TLS
8
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)
SSL und/oder TLS
11
TLS
Browser
#*+x!3@f_ TLS
Webserver
Daten werden
verschlüsselt übertragen
Server beweist seine
Identität durch Zertifikat
Designschwächen in SSL / TLS
16
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
POODLE: SSLv3 vulnerability
(CVE-2014-3566)
24
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
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
SSL 2.0 JA25
POODLE: SSLv3 vulnerability
(CVE-2014-3566)
26
Quelle: http://news.netcraft.com/archives/2014/10/15/googles-poodle-affects-oodles.html
SSLv3 Downgrade
27
Quelle: http://news.netcraft.com/archives/2014/10/15/googles-poodle-affects-oodles.html
FREAK: < TLS 1.1 vulnerability
28
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/
FREAK: < TLS 1.1 vulnerability
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
SSL 2.0 JA29
Quelle: https://freakattack.com/
HTTPS serves of Alexa‘s Top 1 Million Domains
Implementierungsfehler in SSL / TLS
31
Fehler erzeugt durch einzelne Entwickler / Teams
innerhalb einer Bibliothek
Fehlerhafte Qualitätssicherung des Codes
Typische Softwareschwachstellen
– Buffer Overflows
– Control Flow Manipulation
Heartbleed (CVE-2014-0160)
32
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
Heartbleed (CVE-2014-0160)
35
„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
Authentisierung / Identifizierung bei
TLS
38
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
Vertrauenswürdige CAs in Browsern
39
Keine zentrale Datenbank
Internet Explorer / M$ CTL
Mozilla Firefox
iOS / Android
Insgesamt über 650 CAs
inklusive Sub-CAs
Quelle: https://www.eff.org/observatory
Beispiel: Aufbrechen der Verschlüsselung
40
TLS-Verbindung 1 TLS-Verbindung 2
WebserverAngreiferBrowser
Echtes ZertifikatGefälschtes Zertifikat
Beispiel: Aufbrechen der Verschlüsselung
41
Gefälschtes Zertifikat ist nicht gültig
Ist das ein Problem?
You Won’t Be Needing These Any More
42
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
DigiNotar Hack
43
Analyse-Bericht Fox-IT:http://www.rijksoverheid.nl/bestanden/documenten-en-
publicaties/rapporten/2012/08/13/black-tulip-update/black-tulip-update.pdf
Quelle: Heise
Exkurs Zertifikate
46
Quelle: https://www.certcenter.de/ssl-guide
Domain Validation
- Verschlüsselung
- Validierung der Domain-Kontrolle
- Vorhängeschloss im Browser
- Ausstellung in wenigen Minuten
Organization Validation
- Authentifizierung des Unternehmens
- Nachweis des Rechts zur Domainnutzung
- Unternehmensinfo im Zertifikat
- Ausstellung in 1-2 Tagen
Extended Validation
- Strikte Industriestandard-Authentifizierung für Unternehmen
- Für Unternehmen vorteilhafte grüne Adressleiste im Browser
- Ausstellung in 7-10 Tagen
Beispiel: Man-in-the-Middle-Angriff
BrowserAngreifer mit
gültigem Server-
Zertifikat
Webserver
Führt DNS-Spoofing durch,
kann dadurch Datenverkehr
mitlesen sowie verändern
54
Lebenszyklus von Zertifikaten
57
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 CertificateAuthority (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.
Widerrufen von Zertifikaten
58
Welche Möglichkeiten gibt es, um ein Zertifikat zu
widerrufen?
Quelle: Cartoonstock.com
Quelle: stern.de
CRL-Listen
59
Jede CA hat die Möglichkeit, Sperrlisten
(Certificate-Revocation-Listen) zu publizieren
CRL-Listen
61
Quelle: https://isc.sans.edu/crls.html
Zitat: https://blog.cloudflare.com/the-hard-costs-of-heartbleed/
CRL-Listen
62
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
OCSP
63
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
Web
Browser
Web
Server
OCSP
Server
Fetch One
OCSP Status
Fetch
Certificate
OCSP
64
Vor dem Aufruf einer HTTPS-Webseite wird eine Anfrage
vom Browser an den OCSP-Responder der CA gestellt
OCSP-Anfrage
Status good
Browser ruft
Seite auf
OCSP-Anfrage
Status
revoked
Browser verweigert
Aufruf
OCSP
65
Was passiert, wenn der OCSP-Responder nicht antwortet?
OCSP-Anfrage
???Browser
ruft Seite auf
Browser ruft
Seite auf
Quelle: https://sirdoomsbadcompany.wordpress.com
OCSP
66
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
Revocation-Wirrwarr
67
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)
Fehlkonfiguration erkennen
71
Veraltete/unsichere Protokollversionen
Unsichere Cipher Suites
Veraltete SSL/TLS-Implementierungen
Abgelaufene Zertifikate
Unvollständige Zertifikatskette
Unsichere Zertifikatssignatur
Fehlerhafter CommonName
Abgelaufene Zertifikate
75Quelle: http://arstechnica.com/information-technology/2015/04/google-let-root-
certificate-for-gmail-expire-causing-e-mail-hiccups/
Fehleranalyse offline
76
testssl.sh (https://testssl.sh/)
SSLyze (https://github.com/nabla-c0d3/sslyze)
SSLMap (https://github.com/iphelix/sslmap)
OWASP O-Saft (https://www.owasp.org/index.php/O-
Saft)
TestSSLServer (http://www.bolet.org/TestSSLServer/)
nmap, Nessus, OpenVAS, …
Welche Algorithmen sind zu wählen?
86
https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/T
echnischeRichtlinien/TR02102/BSI-TR-02102-2_pdf
Wichtige Server-Header
HSTS (HTTP Strict Transport Security)
– Signalisiert dem Browser, dass alle zukünftigen Anfragen
ausschließlich über HTTPS erfolgen dürfen
– Verhindert anschließende SSL-Stripping-Attacken
87
Wichtige Server-Header
HPKP (HTTP Public Key Pinning)– Pinning des Zertifikats der CA und/oder Domain (CN)
– https://github.com/hannob/hpkp
– https://tools.ietf.org/html/rfc7469
– https://developer.mozilla.org/en-US/docs/Web/Security/Public_Key_Pinning
89
OCSP Stapling
90
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
Web
Browser
Web
Server
OCSP
Server
Fetch One
OCSP Status
Fetch
Certificate
& OCSP
OCSP Stapling
91
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
OCSP must-staple
92
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