Ein paar Gedanken zur kryptografischen Technik

Vor ein paar Wochen schrieb ich einen langen Beitrag über das NSA ‚BULLRUN‘ -Projekt, um moderne Verschlüsselungsstandards zu untergraben. Ich hatte vor, irgendwann darauf zurückzukommen, da ich keine Zeit hatte, die Probleme im Detail zu besprechen. Aber dann kamen die Dinge in die Quere. Eine Menge Dinge, eigentlich. Einige davon hoffe ich in naher Zukunft zu schreiben.

Aber bevor ich dort ankomme, und auf die Gefahr hin, euch alle zu Tränen zu langweilen, wollte ich noch einmal auf dieses Thema zurückkommen, wenn auch nur, um ein wenig über eine Frage nachzudenken, die mich nervt.

Sie sehen, das NSA BULLRUN Briefing Sheet erwähnt, dass die NSA einige Verschlüsselungstechnologien gebrochen hat, von denen einige interessanter sind als andere. Eine dieser Technologien ist für mich besonders überraschend, da ich einfach nicht herausfinden kann, wie die NSA es tun könnte. In diesem extrem langen Beitrag werde ich versuchen, etwas tiefer in die wichtigste Frage einzutauchen, mit der das Internet heute konfrontiert ist.

Speziell: Wie zum Teufel bricht NSA SSL?

Abschnitt des BULLRUN Briefing Sheet. Quelle: New York Times.

Um das Ziel im Auge zu behalten, werde ich ein paar grundlegende Grundregeln aufstellen.

Erstens bin ich mir bewusst, dass die NSA Malware auf Ihrem Computer installieren und jede von Ihnen gewählte Kryptographie pwn kann. Das interessiert mich überhaupt nicht, aus dem einfachen Grund, dass es nicht gut skaliert. Die NSA kann Ihnen das antun, aber sie können es nicht für eine ganze Bevölkerung tun. Und das ist es wirklich, was mich an den jüngsten Lecks beunruhigt: die Möglichkeit, dass die NSA die Verschlüsselung zum Zwecke der Massenüberwachung bricht.

Aus dem gleichen Grund werden wir uns keine Sorgen um Man-in-the-Middle-Angriffe (MITM) machen. Obwohl wir wissen, dass die NSA diese betreibt, sind sie auch ein sehr gezielter Angriff. MITMs sind nicht nur nachweisbar, wenn Sie sie in großem Maßstab durchführen, sie stimmen auch nicht mit dem überein, was wir darüber wissen, wie die NSA das Abfangen in großem Maßstab durchführt – hauptsächlich über Strahlteiler und Abgriffe. Mit anderen Worten: wir sind wirklich besorgt über passive Überwachung.

Die obigen Regeln sind natürlich nicht absolut. Wir werden begrenzte gezielte Angriffe auf Server in Betracht ziehen, sofern sie später die passive Entschlüsselung großer Datenverkehrsmengen ermöglichen; z. B. Entschlüsselung des Datenverkehrs zu wichtigen Websites. Wir werden auch willkürliche Änderungen an Software und Hardware in Betracht ziehen – etwas, von dem wir wissen, dass die NSA es bereits tut.

Ein letzter Punkt: Damit die Dinge nicht aus den Fugen geraten, habe ich diesen Beitrag hilfreich in zwei Abschnitte unterteilt. Die erste wird Angriffe abdecken, die nur bekannte Techniken verwenden. Alles in diesem Abschnitt kann von einem TAO-Mitarbeiter mit genügend Mut und Zugang zu Software implementiert werden. Der zweite Abschnitt, den ich mit dem ‚Tinfoil Hat Spectrum‘ betitelt habe, behandelt das lustige und spekulative Zeug – von neuen Seitenkanalangriffen bis hin zu diesem riesigen Quantencomputer, den die NSA neben der BWI hält.

Wir beginnen mit dem ‚praktischen‘.

Angriffe, die bekannte Techniken verwenden

Diebstahl von RSA-Schlüsseln. Der offensichtlichste Weg, SSL zu knacken, besteht nicht wirklich darin, etwas zu knacken. Warum Zeit und Geld für Kryptoanalyse verschwenden, wenn Sie nur die Schlüssel stehlen können? Dieses Problem ist besonders besorgniserregend bei Servern, die für den TLS-RSA-Handshake konfiguriert sind, bei denen ein einzelner 128-Byte-Serverschlüssel ausreicht, um jede vergangene und zukünftige Verbindung vom Gerät aus zu entschlüsseln.

Tatsächlich ist diese Technik so offensichtlich, dass es schwer vorstellbar ist, dass die NSA viele Ressourcen für ausgefeilte kryptoanalytische Angriffe aufwendet. Wir wissen, dass GCHQ und NSA es sich durchaus leisten können, selbst US-Anbieter im Ausland zu untergraben. Und innerhalb unserer Grenzen haben sie die Bereitschaft gezeigt, TLS / SSL-Schlüssel mithilfe von Vorladungsbefugnissen und Knebelbefehlen zu erhalten. Wenn Sie eine RSA-Verbindung zu einer großen Website verwenden, kann es sinnvoll sein anzunehmen, dass der Schlüssel bereits bekannt ist.

Selbst wenn die NSA keine direkten Maßnahmen ergreift, besteht natürlich immer die Möglichkeit, Schlüssel über einen Remote-Software-Exploit zu erhalten. Das Schöne ist, dass diese Angriffe nicht einmal die Ausführung von Remotecode erfordern. Bei der richtigen Sicherheitsanfälligkeit sind möglicherweise nur eine Handvoll fehlerhafter SSL-Anforderungen erforderlich, um den vollständigen Inhalt des OpenSSL / SChannel-Heaps abzubilden.

Quelle: New York Times

Suborning hardware verschlüsselung chips. Ein erheblicher Teil des SSL-Datenverkehrs im Internet wird von Hardwaregeräten wie SSL-Terminatoren und VPN-fähigen Routern erzeugt. Glücklicherweise müssen wir nicht über die Sicherheit dieser Geräte spekulieren — wir wissen bereits, dass NSA / GCHQ mit Hardwareherstellern zusammengearbeitet haben, um die Entschlüsselung auf mehreren wichtigen VPN-Verschlüsselungschips zu aktivieren.

In den NSA-Dokumenten ist nicht klar, wie diese Funktion funktioniert oder ob es sich überhaupt um SSL handelt. Wenn dies der Fall ist, ist die offensichtliche Vermutung, dass jeder Chip Bits des Sitzungsschlüssels über zufällige Felder wie IVs und Handshake-Nonces verschlüsselt und exflitriert. In der Tat ist dies auf einem undurchsichtigen Hardwaregerät relativ einfach zu implementieren. Die interessante Frage ist, wie man sicherstellt, dass diese Hintertüren nur von der NSA ausgenutzt werden können – und nicht von konkurrierenden Geheimdiensten. (Einige Gedanken dazu hier.)

Seitenkanalangriffe. Traditionell beschäftigen wir uns bei der Analyse kryptografischer Algorithmen mit den erwarteten Ein- und Ausgängen des Systems. Aber echte Systeme lecken alle Arten von zusätzlichen Informationen. Diese ‚Seitenkanäle‘ – die Betriebszeit, Ressourcenverbrauch, Cache-Timing und HF-Emissionen umfassen – können häufig verwendet werden, um geheimes Schlüsselmaterial zu extrahieren.

Die gute Nachricht ist, dass die meisten dieser Kanäle nur ausnutzbar sind, wenn sich der Angreifer in physischer Nähe eines TLS-Servers befindet. Die schlechte Nachricht ist, dass es Bedingungen gibt, unter denen sich der Angreifer nähern kann. Das offensichtlichste Beispiel sind virtualisierte TLS-Server in der Cloud-Umgebung, bei denen ein cleverer Angreifer physische Ressourcen mit dem Zielgerät teilen kann.

Eine zweite Angriffsklasse verwendet Remote-Timing-Informationen, um einen RSA-Schlüssel langsam wiederherzustellen. Diese Angriffe können über Gegenmaßnahmen wie RSA-Blendung deaktiviert werden, obwohl amüsant, einige ’sichere‘ Hardware-Coprozessoren können diese Gegenmaßnahmen tatsächlich standardmäßig deaktivieren! Zumindest macht dies die Hardware anfällig für Angriffe durch einen lokalen Benutzer und könnte sogar die Remote-Wiederherstellung von RSA-Schlüsseln erleichtern.

Schwache Zufallszahlengeneratoren. Selbst wenn Sie starke Perfect Forward Secrecy Ciphersuites verwenden, hängt die Sicherheit von TLS grundlegend von der Verfügbarkeit unvorhersehbarer Zufallszahlen ab. Nicht zufällig scheint die Manipulation von Zufallszahlengeneratorstandards ein besonderer Schwerpunkt der Bemühungen der NSA gewesen zu sein.

Zufallszahlen sind für eine Reihe von Elementen in TLS entscheidend, aber an drei Stellen besonders wichtig:

  1. Auf der Clientseite während des RSA-Handshakes. Der RNG wird verwendet, um das RSA-Pre-Master-Geheimnis und das Verschlüsselungs-Padding zu generieren. Wenn der Angreifer die Ausgabe dieses Generators vorhersagen kann, kann er anschließend die gesamte Sitzung entschlüsseln. Ironischerweise ist ein Ausfall des Server-RNG für den RSA-Handshake viel weniger verheerend.*
  2. Auf der Client- oder Serverseite während des Diffie-Hellman-Handshakes. Da Diffie-Hellman einen Beitrag von jeder Seite der Verbindung erfordert, macht ein vorhersehbarer RNG auf beiden Seiten die Sitzung vollständig transparent.
  3. Bei der Langzeitschlüsselerzeugung, insbesondere von RSA-Schlüsseln. Wenn das passiert, bist du am Arsch.

Und Sie müssen einfach nicht so anspruchsvoll sein, um einen Zufallszahlengenerator zu verwenden. Diese Generatoren sind bereits überraschend zerbrechlich, und es ist furchtbar schwer zu erkennen, wenn einer kaputt ist. Debians Betreuer haben diesen Punkt bereits 2008 deutlich gemacht, als eine fehlerhafte Code-Bereinigung die effektive Entropie von OpenSSL auf nur 16 Bit reduzierte. Tatsächlich sind RNGs so anfällig, dass die Herausforderung hier nicht darin besteht, das RNG zu schwächen — jeder Idiot mit einer Tastatur kann das —, ohne die Implementierung für alle anderen trivial anfällig zu machen.

Die gute Nachricht ist, dass es relativ einfach ist, eine SSL-Implementierung zu manipulieren, um den aktuellen RNG-Seed zu verschlüsseln und zu exfiltrieren. Dies erfordert immer noch, dass jemand die Bibliothek physisch ändert oder einen persistenten Exploit installiert, aber es kann geschickt gemacht werden, ohne dem vorhandenen OpenSSL-Code viel neuen Code hinzuzufügen. (Openssls Liebe zu Funktionszeigern macht es besonders einfach, dieses Zeug zu manipulieren.)

Wenn Manipulation nicht Ihr Stil ist, warum nicht die Hintertür in Sichtweite bringen? Dies ist der Ansatz, den die NSA mit dem Dual_EC RNG verfolgt hat, der von NIST in der Sonderpublikation 800-90 standardisiert wurde. Es gibt überzeugende Beweise dafür, dass die NSA diesen Generator absichtlich mit einer Hintertür konstruiert hat — eine, die es ihnen ermöglicht, jede TLS / SSL-Verbindung zu unterbrechen, die damit hergestellt wird. Da der Generator der Standard in der BSAFE-Bibliothek von RSA ist (war), sollten Sie erwarten, dass jede TLS-Verbindung, die mit dieser Software hergestellt wird, potenziell gefährdet ist.

Und ich habe Intels Pläne, den Linux-Kernel-RNG durch einen eigenen Hardware-RNG zu ersetzen, nicht einmal erwähnt.

Esoterische Schwächen in PFS-Systemen. Viele Webserver, einschließlich Google und Facebook, verwenden jetzt Perfect Forward Secrecy Ciphersuites wie Ephemeral Diffie-Hellman (DHE und ECDHE). Theoretisch bieten diese Ciphersuites die beste aller möglichen Welten: Schlüssel bleiben für eine Sitzung bestehen und verschwinden dann, sobald die Verbindung beendet ist. Dies erspart Ihnen zwar keine RNG-Probleme, erschwert jedoch den Schlüsseldiebstahl erheblich.

PFS Ciphersuites sind eine gute Sache, aber eine Vielzahl subtiler Probleme kann ihren Stil beeinträchtigen. Zum einen kann der Mechanismus zur Wiederaufnahme der Sitzung knifflig sein: sitzungsschlüssel müssen entweder lokal gespeichert oder verschlüsselt und in Form von Sitzungstickets an Benutzer ausgegeben werden. Leider verringert die Verwendung von Sitzungstickets die ‚Perfektion‘ von PFS-Systemen etwas, da die zur Verschlüsselung der Tickets verwendeten Schlüssel jetzt eine große Schwäche des Systems darstellen. Darüber hinaus können Sie sie nicht einmal auf einem Server intern halten, da sie von allen Front-End-Servern einer Site gemeinsam genutzt werden müssen! Kurz gesagt, sie scheinen eine Art Albtraum zu sein.

Ein letzter Problembereich ist die Validierung von Diffie-Hellman-Parametern. Das aktuelle SSL-Design geht davon aus, dass DHCP-Gruppen immer ehrlich vom Server generiert werden. Eine böswillige Implementierung kann diese Annahme jedoch verletzen und fehlerhafte Parameter verwenden, die das Abhören durch Dritte ermöglichen. Dies scheint ein ziemlich unwahrscheinlicher Weg zu sein, um die Überwachung zu ermöglichen, aber es zeigt, wie empfindlich diese Systeme sind.

Das Tinfoil Hat-Spektrum

Ich werde die nächste Reihe von Angriffen als ‚Tinfoil Hat‘ -Schwachstellen bezeichnen. Während die vorherigen Ausgaben alle bekannte Techniken nutzen, erfordert jeder der folgenden Vorschläge völlig neue kryptoanalytische Techniken. All dies ist eine Art zu sagen, dass der folgende Abschnitt reine Spekulation ist. Es macht natürlich Spaß zu spekulieren. Aber es erfordert, dass wir Tatsachen annehmen, die nicht beweisbar sind. Außerdem müssen wir ein bisschen vorsichtig sein, wo wir aufhören.

Von nun an führen wir also im Wesentlichen ein Gedankenexperiment durch. Stellen wir uns vor, die NSA hat eine passive SSL-Breaking-Fähigkeit; und darüber hinaus verlässt sie sich nicht auf die Tricks des vorherigen Abschnitts. Was ist noch übrig?

Die folgende Liste beginnt mit den wahrscheinlichsten Theorien und arbeitet auf die wirklich Wahnsinnigen hin.

Brechen von RSA-Schlüsseln. Es gibt ein hartnäckiges Gerücht in unserem Bereich, dass die NSA 1024-Bit-RSA-Schlüssel knackt. Es ist zweifelhaft, dass dieses Gerücht von wirklichem Wissen über NSA-Operationen herrührt. Wahrscheinlicher ist die Tatsache, dass das Knacken von 1024-Bit-Schlüsseln für eine Organisation mit den Ressourcen der NSA durchaus machbar ist.

Wie machbar? Mehrere glaubwürdige Forscher haben versucht, diese Frage zu beantworten, und es stellt sich heraus, dass die Kosten niedriger sind als Sie denken. Im Jahr 2003 schätzten Shamir und Tromer 10 Millionen US-Dollar für eine speziell angefertigte Maschine, die einen 1024-Bit-Schlüssel pro Jahr faktorisieren konnte. Im Jahr 2013 reduzierte Tromer diese Zahlen auf etwa 1 Million US-Dollar, wobei Hardware-Fortschritte berücksichtigt wurden. Und es könnte deutlich niedriger sein. Das ist Taschengeld für die NSA.

In ähnlicher Weise untersuchten Bernstein, Heninger und Lange die Machbarkeit des Knackens von RSA unter Verwendung verteilter Netzwerke von Standard-PCs. Ihre Ergebnisse sind ziemlich beunruhigend: Im Prinzip könnte ein Cluster von der Größe des realen Conficker-Botnetzes 1024-Bit-Schlüsseln ernsthafte Gewalt antun.

Angesichts all dessen könnten Sie sich fragen, warum diese Möglichkeit sogar in der Kategorie ‚Alufolienhut‘ enthalten ist. Die einfache Antwort lautet: Weil es eigentlich niemand getan hat. Das heißt, es ist zumindest denkbar, dass die obigen Schätzungen dramatisch zu hoch oder sogar zu niedrig sind. Darüber hinaus werden RSA-1024-Schlüssel schnell auslaufen. Das Knacken von 2048-Bit-Schlüsseln würde erhebliche mathematische Fortschritte erfordern, die uns viel tiefer in den Alufolienhut führen würden.**

Knacken RC4. Auf dem Papier unterstützt TLS eine Vielzahl starker Verschlüsselungsalgorithmen. In der Praxis ist etwa die Hälfte des gesamten TLS-Verkehrs mit der knarrenden alten RC4-Chiffre gesichert. Und das sollte Sie beunruhigen – denn RC4 beginnt sein Alter zu zeigen. Tatsächlich ist es, wie in TLS verwendet, bereits anfällig für (grenzwertige) praktische Angriffe. Somit scheint es ein guter Kandidat für einen echten kryptoanalytischen Fortschritt seitens der NSA zu sein.

Leider ist das Problem mit dieser Theorie, dass wir einfach keinen Angriff kennen, der es der NSA ermöglichen würde, RC4 sinnvoll zu knacken! Die bekannten Techniken erfordern, dass ein Angreifer Tausende oder Millionen von Verschlüsselungstexten sammelt, die entweder (a) mit verwandten Schlüsseln verschlüsselt sind (wie in WEP) oder (b) denselben Klartext enthalten. Der bekannteste Angriff gegen TLS nimmt die letztere Form an — das Opfer muss Milliarden von Sitzungen einrichten, und selbst dann werden nur feste Klartextelemente wie Cookies oder Kennwörter wiederhergestellt.

Das Gegenargument ist, dass die öffentliche Forschungsgemeinschaft in den letzten zehn Jahren nicht sehr intensiv über RC4 nachgedacht hat — zum Teil, weil wir dachten, es sei so kaputt, dass die Leute aufgehört hätten, es zu benutzen (ups! Wenn wir unsere ganze Aufmerksamkeit darauf gerichtet hätten (oder besser die Aufmerksamkeit der NSA), wer weiß, was wir heute hätten.

Wenn Sie mir sagen würden, dass die NSA eine wirklich neue kryptoanalytische Fähigkeit hat, würde ich Jake zustimmen und mit dem Finger auf RC4 zeigen. Vor allem, weil die Alternativen viel beängstigender sind.

Neue Seitenkanalangriffe. Zum größten Teil scheinen Remote-Timing-Angriffe durch die Implementierung von Gegenmaßnahmen wie RSA-Blendung, die das Timing verwirren, indem sie vor der Entschlüsselung einen zufälligen Blendfaktor in jeden Chiffretext multiplizieren, abgetötet worden zu sein. Theoretisch sollte dies Timing-Informationen im Wesentlichen wertlos machen. In der Praxis implementieren viele TLS-Implementierungen Kompromisse im Blendungscode, die diese Angriffe wiederbeleben könnten, z. B. die Quadrierung eines Blendungsfaktors zwischen Entschlüsselungsvorgängen, anstatt jedes Mal einen neuen zu generieren. Es ist ziemlich unwahrscheinlich, dass es hier Angriffe gibt, aber wer weiß.

Doofes Zeug. Vielleicht hat die NSA etwas wirklich Erstaunliches im Ärmel. Das Problem beim Öffnen dieser Büchse der Pandora ist, dass es wirklich schwierig ist, sie wieder zu schließen. Hat Jerry Solinas wirklich die NIST-P-Kurven gekocht, um einen erstaunlichen neuen Angriff zu unterstützen (von dem die NSA in den späten 1990er Jahren wusste, den wir aber noch nicht entdeckt haben)? Hat die NSA einen riesigen Supercomputer namens NTR, der jedes Kryptosystem brutal erzwingen kann? Gibt es einen riesigen Quantencomputer im BHI Friendship Annex? Für Antworten auf diese Fragen können Sie auch einfach den Magic 8-Ball schütteln, weil ich keine Ahnung habe.

Fazit

Wir wissen und können die Antwort auf diese Dinge nicht wissen, und ehrlich gesagt wird es Sie verrückt machen, wenn Sie darüber nachdenken. Alles, was wir wirklich tun können, ist, NSA / GCHQ beim Wort zu nehmen, wenn sie uns sagen, dass diese Fähigkeiten ‚extrem zerbrechlich‘ sind. Das sollte uns zumindest Hoffnung geben.

Die Frage ist nun, ob wir gut genug raten können, um diese Zerbrechlichkeit von einer Warnung in ein Versprechen zu verwandeln.
Hinweise:

* Ein Ausfall des Server-RNG kann zu vorhersagbaren Werten wie ServerRandom und Sitzungs-IDs führen. Ein Angreifer, der diese Werte vorhersagen kann, kann zwar aktive Angriffe auf das Protokoll ausführen, aber — zumindest in der RSA Ciphersuite — keine passiven Kompromisse zulassen.

** Obwohl 1024-Bit-RSA-Schlüssel eliminiert werden, verwenden viele Server immer noch 1024-Bit für Diffie-Hellman (hauptsächlich aus Effizienzgründen). Die Angriffe auf diese Schlüssel ähneln denen gegen RSA – der Hauptunterschied besteht jedoch darin, dass für jede neue Verbindung frische Diffie-Hellman-Schlüssel generiert werden. Das Brechen großer Verkehrsmengen scheint ziemlich kostspielig zu sein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.