Die deutschen und internationalen Medien berichten heute darüber, dass die NSA die SSL-Verschlüsselung geknackt habe. Doch über die genaue Funktionsweise ist nicht viel bekannt, da die primären Quellen, der Guardian und die New York Times, einige Details, die sich in den Snowden-Dokumenten finden, absichtlich zurückhalten. Doch wenn man sich nur ein bisschen mit Kryptographie auskennt und Eins und Eins zusammenzählen kann, bleiben nicht viele Möglichkeiten übrig. Hier also eine kleine Auflistung der Angriffsmöglichkeiten und meine Spekulationen über das Wie und Warum der Vorgehensweise der NSA.
1. Zugriff auf die privaten Schlüssel der Zertifizierungsstellen
Die in SSL verwendete Public-Key-Infrastruktur setzt darauf, dass Zertifizierungsstellen die Echtheit der öffentlichen Schlüssel der Gegenstellen zertifizieren und somit bestätigen, dass der Kommunikationspartner auch der ist, der er zu sein vorgibt. Damit das funktioniert, müssen die öffentlichen Schlüssel der Zertifierungsstellen (auch Trust Center genannt) auf einem sicheren Weg auf die an der eigentlichen Kommunikation beteiligten Rechner übermittelt werden. Dies geschieht dadurch, dass in gängigen Browser oder auch im Betriebssystem selbst diese Schlüssel bereits mitgeliefert werden.
Hat nun jemand Zugriff auf die privaten Schlüssel der Zertifierungsstelle, kann dieser Angreifer selbst ein Zertifikat erstellen, das die Echtheit der öffentlichen Schlüssel eines Dritten bestätigt. Dadurch werden Man-in-the-Middle-Angriffe, die vom Angegriffenen nicht bemerkt werden, möglich, sofern der Angreifer in der Lage ist, in den Kommunikationsweg zwischen Sender und Empfänger entsprechend einzugreifen. Von letzterem muss man ausgehen, denn schließlich ist der Sinn und Zweck einer jeden Verschlüsselung, die Sicherheit in genau diesem Fall immer noch zu gewährleisten. Von dem, was vor den heutigen Veröffentlichungen schon bekannt war, muss man auch davon ausgehen, dass die US-amerikanischen und britischen Geheimdienste dies können.
Bewertung
Diese Art des Angriffs ist meiner Ansicht nach die wahrscheinlichste. Es genügt rein theoretisch, dass die Geheimdienste Zugriff auf den privaten Schlüssel einer einzigen Zertifizierungsstelle haben, um das System zu kompromittieren. Da sich ein guter Teil dieser Stellen in den USA befinden und von den früheren Berichten bereits bekannt ist, dass an Firmen wie Microsoft und Google Geld gezahlt wurde, um Hintertüren einzubauen, muss man wohl davon ausgehen, dass auch Zertifizierungsstellen betroffen sind. Damit der Angriff möglichst nicht auffällt, sollten natürlich aus Sicht des Angreifers möglichst viele Zertifizierungsstellen infiltriert werden, da die Angegriffenen bemerken könnten, dass der öffentliche Schlüssel seines Kommunikationspartners auf einmal von einem anderen Trust Center verifiziert wurde.
Vorteile
Für den Angreifer hat dieses Vorgehen den Vorteil, dass es bei Zugriff sowohl auf die Netzinfrastruktur als auch auf die Zertifizierungsstellen – beides ist bei den Geheimdiensten gegeben! – sehr leicht durchzuführen und vom Angegriffenen nur schwer bis gar nicht zu bemerken ist. Außerdem ermöglicht es eine weitreichende oder gar flächendeckende Überwachung, wie sie mit einem Angriff auf die Rechner einzelner Ziele nicht möglich wäre. Bei der Zertifizierungsstelle müssen außerdem nicht viele Personen eingeweiht sein, es reicht im Prinzip eine einzige Person, die Zugriff auf den Private Key hat.
Nachteile
Für den Angreifer eigentlich keine, außer dass die Gefahr besteht, dass beim Trust Center oder dem Geheimdienst jemand die sprichwörtliche Pfeife bläst.
Gegenmaßnahmen
Zertifizerungsstellen, die kompromittiert sind, nicht vertrauen. Leider ist derzeit nicht bekannt, welche das sind. Es wäre wohl davon auszugehen, dass die meisten, wenn nicht alle, Trust Center in den USA und wahrscheinlich auch solche aus Kanada, Australien und dem Vereinigten Königreich betroffen sind.
2. Angriff auf die Algorithmen
Bekannte Public-Key-Algorithmen, die im SSL-Protokoll verwendet werden, sind RSA und Diffie-Hellman. Die Sicherheit dieser Verfahren basiert darauf, dass keine schnellen Verfahren bekannt sind, den diskreten Logarithmus einer großen Zahl zu berechnen.
Bewertung
Es ist mathematisch nicht bewiesen, dass es keinen Algorithmus zur Berechnung des diskreten Logarithmus in polynomialer Laufzeit geben kann. In der Forschung hat es vor kurzem Fortschritte zur Entwicklung eines solchen Algorithmus gegeben. Es gibt Stimmen, die davon ausgehen, dass schon in vier bis fünf Jahren RSA nicht mehr sicher ist. Sollte man bei der NSA schon weiter sein als die internationale Forschungsgemeinschaft und ein schneller Algorithmus zur Berechnung des diskreten Logarithmus bekannt sein, wäre der Verschlüsselungsalgorithmus an sich gebrochen. Kryptographie mit elliptischen Kurven gilt aber derzeit noch als bedeutend sicherer als RSA, da das Problem des diskreten Logarithmus auf elliptischen Kurven schwerer zu lösen ist.
Insgesamt muss man aber sagen, dass es zumindest unklar und nicht unbedingt wahrscheinlich ist, dass es wirklich einen effizienten Algorithmus zur Berechnung des diskreten Logarithmus gibt, der der Öffentlichkeit noch nicht bekannt ist und dass die NSA oder ein anderer Geheimdienst das geschafft hat, was Heerscharen von Mathematikern öffentlich versuchen.
Andererseits war es ja auch schon bei DES so, dass nachweislich differentielle Kryptanalyse bei der NSA und bei IBM schon lange bekannt war, bevor diese Angriffsmethode öffentlich wurde.
Vorteile
Hätte die NSA die Algorithmen an sich gebrochen, wäre auch jedes Protokoll, dass auf diesen Algorithmen basiert, unsicher, selbst wenn das Protokoll keine Hintertüren hat.
Nachteile
Auch wenn es effizientere Verfahren als die derzeit bekannten gibt, um den diskreten Logarithmus zu berechnen, wäre vermutlich immer noch ein riesiger Rechenaufwand nötig, um den Geheimtext zu entschlüsseln. Das wäre aber nicht praktikabel für eine flächendeckende Überwachung, allenfalls für das Abhören einzelner Ziele.
Gegenmaßnahmen
Keine. Nach derzeitigem Stand sind Elliptische Kurven und Diffie-Hellman sicherer als RSA (auch wegen der Forward Secrecy bei Diffie-Hellman), aber wenn das mathematische Problem gelöst ist, wären auch diese betroffen.
3. Angriff auf die Endstellen
Ein direkter Angriff auf die Endstellen der Kommunikation, sprich die Rechner der Angegriffenen, ist natürlich auch denkbar, denn dann besteht Zugriff auf den Klartext. Das hat dann aber nichts mehr mit SSL oder irgend einem Protokoll zu tun.
Bewertung
Ein Angriff auf die Endstellen, oder zumindest der Versuch, im Stil eines „Staatstrojaners“ oder gar einer systematischen Hintertüren in Betriebssystem, Browsern oder anderer Software ist natürlich möglich, hat aber vermutlich nichts mit der aktuellen Berichterstattung zu tun.
Vorteile
Zugriff auf den unverschlüsselten Klartext.
Nachteile
Nicht für flächendeckende Überwachung geeignet. Außerdem könnte die Existenz von Hintertüren oder allgemein eines solchen Angriffs im Vergleich zu den anderen Methoden relativ leicht bemerkt werden.
Gegenmaßnahmen
Das eigene System möglichst gegen Angriffe von außen sichern, was eigentlich sowieso „best practice“ ist. Außerdem Software einsetzen, die wahrscheinlich keine Hintertüren hat, also am besten Open Source Software, die man selber kompiliert.
Schlussbetrachtung
Wahrscheinlich geht es bei der heutigen Berichterstattung, auch wenn keine technischen Details genannt wurden, um Variante 1.
Was sollte man davon als Internetnutzer ableiten? Man sollte jedenfalls nicht auf die Idee kommen, auf SSL zu verzichten. Ein Angriff in diesem Stil setzt Möglichkeiten voraus, die ein Geheimdienst hat, aber ein x-beliebiger Krimineller nicht. Also muss man davon ausgehen, dass SSL immer noch genügend Schutz bietet, das eigene Homebanking gegen kriminelle Machenschaften zu sichern, aber nicht dazu, vertrauliche Kommunikation vor Geheimdiensten geheim zu halten. Das heißt insbesondere, dass solche Werbeversprechen wie die von deutschen E-Mail-Anbietern neulich, SSL zur Kommunikation zwischen den Betreibern einzusetzen, Augenwischerei sind, zumal die Mails dann sowieso auf den Servern der Anbieter unverschlüsselt vorliegen.
Um private Kommunikation zu sichern, sollte man auf End-zu-End-Protokolle wie PGP setzen. Dann bleiben als Angriffsmöglichkeiten, auch für Geheimdienste, nur die Varianten 2 und 3. Zumindest kann man sich so einer flächendeckenden Überwachung entziehen, aber es schützt vermutlich nur unzureichend, wenn man Ziel einer direkten Beobachtung wird.
Einen Schutz gegen alle Angriffe bietet eigentlich nur folgendes: Der Klartext wird nur auf einem Rechner betrachtet, der nicht mit dem Internet verbunden ist und das in Zukunft auch niemals wird. Dort wird auch verschlüsselt, und zwar mit einem sicheren, symmetrischen Algorithmus, dessen Schlüssel auf einem sicheren Weg – das heißt durch persönliche Übergabe – übetragen wird, vielleicht sogar mit einem One-Time-Pad (oder auch lieber ohne One-Time-Pad, wie Schneier meint?). Der Transfer des Geheimtextes von diesem Rechner zur Außenwelt, also über einen Rechner, der mit dem Internet verbunden ist, geschieht ausschließlich über physische Datenträger. Kein Kabel! Ein USB-Stick, Disketten, CD-ROMs oder vielleicht sogar auf einem Blatt Papier, das ausgedruckt und eingescannt wird. Oder durch Abtippen des Geheimtextes. Aber ob man in der Praxis so weit gehen will…?
Wer mir verschlüsselte E-Mails schicken will, kann dazu meinen PGP Public Key verwenden, der auf meiner Homepage veröffentlicht ist. Außerdem benutze ich Threema.