securityforum april 2015 - das ssl dilemma - or one million ways to die in the net

75
Das SSL-Dilemma Security Forum 2015 – 22. April Christopher Dreher cirosec GmbH

Upload: christopher-dreher

Post on 18-Jul-2015

29 views

Category:

Internet


1 download

TRANSCRIPT

Das SSL-Dilemma

Security Forum 2015 – 22. April

Christopher Dreher

cirosec GmbH

2

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

Verschlüsselung im WWW

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 TLS im Web 2015

9

Quelle: Universal-Pictures

SSL und TLS im Web 2015

10Quelle: https://www.trustworthyinternet.org/ssl-pulse/

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

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

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

Vertrauen in Zertifikatsstellen

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

Türktrust-Versagen

44

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

Exkurs Zertifikate

47

DV- oder OV-Zertifikate

EV-Zertifikate

Und 2015 …

48

49

<undisclosed CA>

50

<undisclosed CA>

51

<undisclosed CA>

52

<undisclosed CA>

53

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

Ganz Aktuell …

55

Das Revocation-Problem

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

60

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)

Revocation, wenn es klappt …

68

OCSP Hard-Fail

69

Fehlkonfigurationen erkennen und fixen

Fehlkonfiguration erkennen

71

Veraltete/unsichere Protokollversionen

Unsichere Cipher Suites

Veraltete SSL/TLS-Implementierungen

Abgelaufene Zertifikate

Unvollständige Zertifikatskette

Unsichere Zertifikatssignatur

Fehlerhafter CommonName

Fehlermeldung durch falschen

Hostnamen

72

Fehlermeldung durch falschen

Hostnamen

74

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, …

testssl.sh

77

Fehleranalyse online

79

82

Hilfe bei der Serverkonfiguration

84

Hilfe bei der Serverkonfiguration

85

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

Ausblick

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

2015 … 2016 … 2017

93

94