SSL/TLS und PKI im Internet Erik Tews erik@datenzone.de Ist das so mit HTTPS wirklich eine gute Lösung? 21.05.2012 Erik Tews 1
Was ist PKI Asymmetrische Kryptographie ist echt praktisch Schlüssel bestehen aus einem privaten und einem öffentlichen Teil Die öffentlichen Schlüssel können beliebig weiter gegeben werden Um sinvoll arbeiten zu können, müssen öffentliche Schlüssel Personen und Organisationen zugeordnet werden Funktioniert diese Zuordnung nicht, funktioniert auch Kryptographie nicht Diese Zuordnung ist Aufgabe einer PKI 21.05.2012 Erik Tews 2
Vertrauensmodelle Oft werden hirachische Vertrauensmodelle verwendet: Jeder Webbrowser vertraut einer Liste von Certification Authorities (CAs) Jede dieser CAs kann: Die Zuordnung zwischen einem Schlüssel und einer Idendität mit einem Zertifikat bestätigen. Zum Beispiel: Zu Domain-Namen (www.ebay.com, www.seceng.informatik.tu-darmstadt.de) Zu Email-Adressen (erik@datenzone.de) Zu Firmen (PayPal Pte Ltd - Singapore) Oder diese Tätigkeit an weitere CAs (Sub-CAs) delegieren Werden Sub-CAs eingesetzt, spricht man von einer Vertrauenskette. 21.05.2012 Erik Tews 3
Zertifikate und X.509 Ein Zertifikat ist eine digital signierte Datenstruktur, die im wesentlichen Aussagt: Schlüssel A Gehört zu B Und wird digital von einer CA unterschrieben. Oft werden noch weitere Zusatzinformationen eingebettet wie: Zeitpunkt der Überprüfung Gültigkeitsdauer der Überprüfung Details der Prüfprozeduren ggf. Hinweise auf weitere Informationsquellen im Internet für Widerrufe Und meist werden solche Zertifikate nach X.509 kodiert. 21.05.2012 Erik Tews 4
Browser Jeder moderne Internetbrowser hat eine Liste von CAs (und deren öffentliche Schlüssel) denen er vertraut Wenn ein Benutzer eine Seite mit https ansurft passiert folgendes: Das Zertifikat der Webseite (und ggf. weitere Zertifikate) werden zum Browser übertragen Der Browser bilded damit eine Kette bis zu einer CA, der er vertraut Der Browser prüft alle Zertifikate in dieser Kette, ob ihre Unterschriften echt sind Und weitere Informationen aus dieser Kette werden ausgewertet und geprüft (Gültigkeitszeitraum...) Ist alles korrekt, kann der Browser aus dem Zertifikat der Webseite den Schlüssel extrahieren, und ihn für eine sichere Verbindung verwenden 21.05.2012 Erik Tews 5
Probleme? 21.05.2012 Erik Tews 6
Lösungen!!!! 21.05.2012 Erik Tews 7
Public Key Pinning Problem: Jede CA darf für jede Domain Zertifikate ausstellen Zum Beispiel von eine CA aus China für die Seite des Pentagons Lösung: Der Browser führt für viele wichtige Webseiten jeweils eine eigene Whitelist von CAs Nur CAs von dieser Liste dürfen für die Seite ein Zertifikat ausstellen Zertifikate anderer CAs werden zurückgewiesen 21.05.2012 Erik Tews 8
Certificate Transparency Problem: CAs können gehackt werden, Angreifer kommt so möglicherweise in Besitz für Zertifikate von anderen Domains oder mehr Wenn er die Zertifikate nur für wenige Angriffe einsetzt, werden sie nicht öffentlich bekannt Lösung: Der Browser überträgt jedes Zertifikat, das er sieht, zu einer zentralen Meldestelle Jedes Zertifikat wird dort gespeichert Angriffe werden so öffentlich Merkwürdige Konstellationen wie 2 verschiedene Zertifikate im Einsatz können erkannt werden 21.05.2012 Erik Tews 9
MECAI - Mutually Endorsing CA Infrastructure Problem: CAs arbeiten vergleichsweise mächtig und isoliert Lösung: Präsentiert ein Webserver ein Zertifikat unterschrieben von A, dann müssen weitere CAs B, C, D dafür bürgen Client fragt B, C, D an, ob sie ebenfalls das Zertifikat auf dem Webserver sehen CAs bestätigen das mit einer digital signierten Bürgschaft 21.05.2012 Erik Tews 10
Decentralized SSL Observatory Problem: Werden Zertifikate von einem Angreifer beim Client ausgetauscht, bemerkt es der Client nicht Auch über andere Probleme des Servers wird der Client nicht informiert Lösung: Eine Instanz sammelt automatisch Zertifikate im Internet Zertifikate und Webserver werden auf bekannte Schwachstellen untersucht Ein Client fragt bei einer Verbindung zum Webserver diesen Beobachtungsposten an, welches Zertifikat im Einsatz sein sollte, und ob es Probleme gibt 21.05.2012 Erik Tews 11
Perspective Problem: Sammelt eine zentrale Stelle Informationen über Zertifikate, ist das ein neuer Angriffspunkt Lösung: Verteile dieses Sammeln auf mehre Server und Parteien Die einzelnen Betreiber können sich dann zu Gruppen zusammen schließen 21.05.2012 Erik Tews 12
DANE Problem: DNS wird teilweise schon kryptographisch gesichert Diese Sicherung wird bei HTTPS nicht weiter verwendet Lösung: Verwende DNS, um dort öffentliche Schlüssel des Servers abzulegen Wenn DNS-Einträge signiert sind, kann sie ein Angreifer nur schwer ändern 21.05.2012 Erik Tews 13
Sovereign Keys Problem: Jede CA kann für meine Webseite Zertifikate ausstellen, auch ohne meine Mitwirkung Lösung: Generiere einen Langzeitschlüssel für alle Zertifikate Signiere jedes deiner Zertifikate damit Hinterlege den Langzeitschlüssel in einer Append-Only-Datenbank 21.05.2012 Erik Tews 14
Bewertung Welcher Ansatz ist der Beste? Welcher ist am sichersten Schützt er gegen alle Arten von Angriffen Muss der Webseitenbetreiber etwas ändern Müssen die CAs etwas an ihren Geschäftsprozessen ändern Müssen die Benutzer selber etwas machen Müssen die Browserhersteller etwas ändern Gibt es andere Anforderungen an DNS? Was schafft neue Machtzentren? 21.05.2012 Erik Tews 15
Referenzen https://tools.ietf.org/html/draft-ietf-websec-key-pinning-01 http://www.certificate-transparency.org/ https://kuix.de/mecai/ https://www.eff.org/deeplinks/2012/02/ https-everywhere-decentralized-ssl-observatory http://perspectives-project.org/ https://tools.ietf.org/html/draft-ietf-dane-protocol-21 https://www.eff.org/sovereign-keys Vielen Dank an Peter Eckersly für die tollen Ideen: http://media.ccc.de/ browse/congress/2011/28c3-4798-en-sovereign_keys.html 21.05.2012 Erik Tews 16
Ende Was würdet IHR tun? 21.05.2012 Erik Tews 17