Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

cirosec TrendTage März 2015 - Das SSL Dilemma

622 views

Published on

Das SSL Dilemma. POODLE, FREAK, Heartbleed, compromissed CA, broken revocation, and a lot more ...

Published in: Internet
  • ROFL... Ausblick wird Let's Encrypt promoted und davor ausführlich erklärt, dass Domainvalidierung keinen Pfifferling wert ist, lächerlich!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

cirosec TrendTage März 2015 - Das SSL Dilemma

  1. 1. Das SSL-Dilemma cirosec TrendTage – März 2015 Christopher Dreher cirosec GmbH
  2. 2. 2
  3. 3. Agenda 3  Verschlüsselung im WWW  SSL/TLS, was läuft falsch? – Designschwächen – Implementierungsfehler  Vertrauen in Zertifikatsstellen  Das Revocation-Problem  Fehlkonfigurationen erkennen und fixen  Ausblick
  4. 4. Verschlüsselung im WWW
  5. 5. Von damals bis heute 5  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
  6. 6. Von damals bis heute 6  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)
  7. 7. SSL und/oder TLS 7  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)
  8. 8. SSL und TLS im Web 2015 8 Quelle: Universal-Pictures
  9. 9. SSL und TLS im Web 2015 9 Quelle: https://www.trustworthyinternet.org/ssl-pulse/
  10. 10. SSL und/oder TLS 10 TLS Browser #*+x!3@f_ TLS Webserver Daten werden verschlüsselt übertragen Server beweist seine Identität durch Zertifikat
  11. 11. Verbindungsaufbau bei TLS 11 Client-Hello Server-Hello Protokollversion Algorithmus AES Client-Zufallszahl Liste von Algorithmen Protokollversion TLS 1.1 Server-Zufallszahl TLS 1.1
  12. 12. Verbindungsaufbau bei TLS 12 Client Key Exchange Pre-Master-Secret privat öffentlich AES TLS 1.1 TLS 1.1
  13. 13. Verbindungsaufbau bei TLS 13 Pre-Master-Secret Fixer Startwert Client-Zufallszahl + Server-Zufallszahl privat öffentlich AES TLS 1.1 Master-Secret Symmetrischer Sitzungsschlüssel TLS 1.1
  14. 14. Designschwächen in SSL / TLS
  15. 15. Designschwächen in SSL / TLS 15  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
  16. 16. POODLE: SSLv3 vulnerability (CVE-2014-3566) 23  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
  17. 17. 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 JA 24
  18. 18. POODLE: SSLv3 vulnerability (CVE-2014-3566) 25 Quelle: http://news.netcraft.com/archives/2014/10/15/googles-poodle-affects-oodles.html
  19. 19. SSLv3 Downgrade 26 Quelle: http://news.netcraft.com/archives/2014/10/15/googles-poodle-affects-oodles.html
  20. 20. FREAK: < TLS 1.1 vulnerability 27  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/
  21. 21. 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 JA 28 Quelle: https://freakattack.com/ HTTPS serves of Alexa‘s Top 1 Million Domains
  22. 22. Implementierungsfehler in SSL / TLS
  23. 23. Implementierungsfehler in SSL / TLS 30  Fehler erzeugt durch einzelne Entwickler / Teams innerhalb einer Bibliothek  Fehlerhafte Qualitätssicherung des Codes  Typische Softwareschwachstellen – Buffer Overflows – Control Flow Manipulation
  24. 24. Heartbleed (CVE-2014-0160) 31  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
  25. 25. Heartbleed (CVE-2014-0160) 32 Quelle: http://xkcd.com/1354/
  26. 26. Heartbleed (CVE-2014-0160) 33 Quelle: http://xkcd.com/1354/
  27. 27. Heartbleed (CVE-2014-0160) 34 „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
  28. 28. OpenSSL CCS Injection Vulnerability (CVE-2014-0224) 35  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
  29. 29. Vertrauen in Zertifikatsstellen
  30. 30. Authentisierung / Identifizierung bei TLS 37  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
  31. 31. Vertrauenswürdige CAs in Browsern 38  Keine zentrale Datenbank  Internet Explorer / M$ CTL  Mozilla Firefox  iOS / Android  Insgesamt über 650 CAs inklusive Sub-CAs Quelle: https://www.eff.org/observatory
  32. 32. Beispiel: Aufbrechen der Verschlüsselung 39 TLS-Verbindung 1 TLS-Verbindung 2 WebserverAngreiferBrowser Echtes ZertifikatGefälschtes Zertifikat
  33. 33. Beispiel: Aufbrechen der Verschlüsselung 40  Gefälschtes Zertifikat ist nicht gültig  Ist das ein Problem?
  34. 34. You Won’t Be Needing These Any More 41  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
  35. 35. DigiNotar Hack 42  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
  36. 36. Türktrust-Versagen 43 Quelle: Heise
  37. 37. Malware/Adware und CAs 44 Quelle: Heise
  38. 38. Exkurs Zertifikate 45 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
  39. 39. Exkurs Zertifikate 46 DV- oder OV-Zertifikate EV-Zertifikate
  40. 40. Und 2015 … 47
  41. 41. 48
  42. 42. <undisclosed CA> 49
  43. 43. <undisclosed CA> 50
  44. 44. <undisclosed CA> 51
  45. 45. <undisclosed CA> 52
  46. 46. Beispiel: Man-in-the-Middle-Angriff Browser Angreifer mit gültigem Server- Zertifikat Webserver Führt DNS-Spoofing durch, kann dadurch Datenverkehr mitlesen sowie verändern 53
  47. 47. Das Revocation-Problem
  48. 48. Lebenszyklus von Zertifikaten 55  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.
  49. 49. Widerrufen von Zertifikaten 56  Welche Möglichkeiten gibt es, um ein Zertifikat zu widerrufen? Quelle: Cartoonstock.com Quelle: stern.de
  50. 50. CRL-Listen 57  Jede CA hat die Möglichkeit, Sperrlisten (Certificate-Revocation-Listen) zu publizieren
  51. 51. CRL-Listen 58
  52. 52. CRL-Listen 59 Quelle: https://isc.sans.edu/crls.html Zitat: https://blog.cloudflare.com/the-hard-costs-of-heartbleed/
  53. 53. CRL-Listen 60  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
  54. 54. OCSP 61  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
  55. 55. OCSP 62  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
  56. 56. OCSP 63  Was passiert, wenn der OCSP-Responder nicht antwortet? OCSP- Anfrage ??? Browser ruft Seite auf Browser ruft Seite auf Quelle: https://sirdoomsbadcompany.wordpress.com
  57. 57. OCSP 64  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
  58. 58. Revocation-Wirrwarr 65  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)
  59. 59. Revocation, wenn es klappt … 66
  60. 60. OCSP Hard-Fail 67
  61. 61. Fehlkonfigurationen erkennen und fixen
  62. 62. Fehlkonfiguration erkennen 69  Veraltete/unsichere Protokollversionen  Unsichere Cipher Suites  Veraltete SSL/TLS-Implementierungen  Abgelaufene Zertifikate  Unvollständige Zertifikatskette  Unsichere Zertifikatssignatur  Fehlerhafter CommonName
  63. 63. Fehlermeldung durch falschen Hostnamen 70
  64. 64. Fehlermeldung durch falschen Hostnamen 71
  65. 65. Fehlermeldung durch falschen Hostnamen 72
  66. 66. Fehleranalyse offline 73  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, …
  67. 67. testssl.sh 74
  68. 68. testssl.sh 75
  69. 69. Fehleranalyse online 76
  70. 70. 77
  71. 71. 78
  72. 72. 79
  73. 73. 80
  74. 74. Hilfe bei der Serverkonfiguration 81
  75. 75. Hilfe bei der Serverkonfiguration 82
  76. 76. Welche Algorithmen sind zu wählen? 83 https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Publikationen/T echnischeRichtlinien/TR02102/BSI-TR-02102-2_pdf
  77. 77. 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  HPKP (HTTP Public Key Pinning) – Pinning des Zertifikats der CA und/oder Domain (CN) – https://github.com/hannob/hpkp 84
  78. 78. Ausblick
  79. 79. OCSP Stapling 86  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
  80. 80. OCSP Stapling 87  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
  81. 81. OCSP must-staple 88  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
  82. 82. 2015 … 2016 … 2017 89
  83. 83. 90

×