MIT-Kurs "Computer Systems Security". Vorlesung 19: „Anonyme Netzwerke“, Teil 3 (Vorlesung des Erstellers des Tor-Netzwerks)

Massachusetts Institute of Technology. Vorlesung # 6.858. "Sicherheit von Computersystemen." Nikolai Zeldovich, James Mickens. 2014 Jahr


Computer Systems Security ist ein Kurs zur Entwicklung und Implementierung sicherer Computersysteme. Die Vorträge behandeln Bedrohungsmodelle, Angriffe, die die Sicherheit gefährden, und Sicherheitstechniken, die auf jüngsten wissenschaftlichen Arbeiten basieren. Zu den Themen gehören Betriebssystemsicherheit, Funktionen, Informationsflussmanagement, Sprachsicherheit, Netzwerkprotokolle, Hardwaresicherheit und Sicherheit von Webanwendungen.

Vorlesung 1: „Einführung: Bedrohungsmodelle“ Teil 1 / Teil 2 / Teil 3
Vorlesung 2: „Kontrolle von Hackerangriffen“ Teil 1 / Teil 2 / Teil 3
Vorlesung 3: „Pufferüberläufe: Exploits und Schutz“ Teil 1 / Teil 2 / Teil 3
Vorlesung 4: „Trennung von Privilegien“ Teil 1 / Teil 2 / Teil 3
Vorlesung 5: „Woher kommen Sicherheitssysteme?“ Teil 1 / Teil 2
Vorlesung 6: „Chancen“ Teil 1 / Teil 2 / Teil 3
Vorlesung 7: „Native Client Sandbox“ Teil 1 / Teil 2 / Teil 3
Vorlesung 8: „Netzwerksicherheitsmodell“ Teil 1 / Teil 2 / Teil 3
Vorlesung 9: „Sicherheit von Webanwendungen“ Teil 1 / Teil 2 / Teil 3
Vorlesung 10: „Symbolische Ausführung“ Teil 1 / Teil 2 / Teil 3
Vorlesung 11: „Ur / Web-Programmiersprache“ Teil 1 / Teil 2 / Teil 3
Vorlesung 12: Netzwerksicherheit Teil 1 / Teil 2 / Teil 3
Vorlesung 13: „Netzwerkprotokolle“ Teil 1 / Teil 2 / Teil 3
Vorlesung 14: „SSL und HTTPS“ Teil 1 / Teil 2 / Teil 3
Vorlesung 15: „Medizinische Software“ Teil 1 / Teil 2 / Teil 3
Vorlesung 16: „Seitenkanalangriffe“ Teil 1 / Teil 2 / Teil 3
Vorlesung 17: „Benutzerauthentifizierung“ Teil 1 / Teil 2 / Teil 3
Vorlesung 18: „Privates Surfen im Internet“ Teil 1 / Teil 2 / Teil 3
Vorlesung 19: „Anonyme Netzwerke“ Teil 1 / Teil 2 / Teil 3

Angenommen, Sie verwenden die Bayes'sche Wahrscheinlichkeit und argumentieren folgendermaßen: „Hätte das Gericht Beweise dafür arrangiert, dass dieser Kerl wegen einer schlechten OPSEC gefasst wurde? Ja, das haben sie. Das heißt, ich brauche Berichte, aus denen hervorgeht, dass er wegen Nichteinhaltung der Informationssicherheit bei Internetoperationen erwischt wurde. “ Für das „doppelte Design“ würde ich daher Berichte benötigen, dass der Typ in eine schlechte OPSEC verwickelt war, da Beweise dieser Art in einer regelmäßigen polizeilichen Untersuchung leicht zugänglich sind, ohne Informationen zu erwähnen, die von Geheimdiensten erhalten wurden.

Wir können aus öffentlichen Berichten keine Schlussfolgerungen zu diesem Fall ziehen. Es scheint jedoch, dass dieser Mann genau wegen Nichtbeachtung der OPSEC-Regeln inhaftiert wurde, dh nach dem, wonach Sie suchen würden, um jemanden zu fangen, der in illegale Dinge verwickelt ist. Verwenden Sie mein Netzwerk also, wie bereits erwähnt, nicht, um gegen Gesetze zu verstoßen. Wenn Ihr Leben oder Ihre Freiheit von der Verwendung von Tor oder einem anderen Sicherheitsprodukt abhängt, verwenden Sie diese Produkte nicht isoliert.



Erwägen Sie die Schaffung mehrerer Verteidigungslinien, wenn Ihr Leben oder Ihre Freiheit auf dem Spiel stehen oder wenn der Zusammenbruch des Systems für Sie völlig inakzeptabel ist. Dies gilt für Tor, TLS und PGP. Software ist in Arbeit.
Das ist alles, was ich über Missbräuche im Internet sagen wollte. Ich habe noch 25 Minuten Zeit für versteckte Dienste.

Die Anonymität des Befragten ist ein viel komplexeres Problem als die Anonymität des Initiators. Die Anonymität des Initiators erhalten Sie, wenn Alice Socken kaufen möchte, aber gleichzeitig für den Verkäufer von Socken anonym bleibt.

Die Anonymität der Befragten besteht darin, dass Alice ihre Gedichte im Internet veröffentlichen und einen Webserver mit ihren Gedichten starten möchte, aber nicht möchte, dass jemand herausfindet, wo sich dieser Webserver befindet, weil Gedichte so umständlich sind. Also ja, tatsächlich gibt es einen versteckten Dienst mit meinen schlechten Gedichten. Nein, ich glaube nicht, dass jemand sie bereits veröffentlicht hat. Nein, ich werde niemandem sagen, wo er ist. Ich warte nur darauf, dass es veröffentlicht wird.

Angenommen, Alice möchte ihre Gedichte veröffentlichen. Ich werde sie rechts stellen, weil sie die Befragte ist. Alice kann den Weg - diese Spirallinie zeigt mehrere Repeater - zum Tor-Netzwerk, hier zu diesem R, ebnen und sich mit der Bitte an ihn wenden: "Bitte akzeptieren Sie diese Verbindungen!" Jetzt kann jeder, der sich mit diesem Repeater verbindet, sagen, dass er mit Alice sprechen möchte. Es gab Projekte, die so funktionierten.



Es gibt jedoch einige Probleme. Ein Problem ist, dass dieser Repeater ein Mann in der Mitte sein kann, der den gesamten Datenverkehr abfängt, wenn hier kein bekannter TLS-Schlüssel vorhanden ist. Das zweite Problem könnte sein, dass dieser Repeater einer Person gehört, die sich auch für seine Gedichte schämt und kein öffentlicher Vertreiber von Gedichten sein möchte, weil es so schrecklich ist!

Es kann auch von anderen Menschen beeinflusst werden, die das R-Relais besitzen und die Poesie so sehr hassen, dass sie diese Verbindung zensieren wollen. Schließlich kann dieses R-Relais einfach zum Ziel des Angriffs werden.

Daher möchten Sie, dass Alice ständig zwischen verschiedenen Relais wechselt, und keines davon kann ihren unverschlüsselten Datenverkehr beeinträchtigen. Es ist durchaus machbar.
Aber wenn wir viele verschiedene Repeater haben, was hat Alice den Leuten zu sagen? Es sollte so etwas wie einen öffentlichen Schlüssel geben, denn wenn er nur auf das Netzwerk zugreift: "Relais X, Relais Y, Relais Z", funktioniert dies nicht, da sich das Netzwerk alle 5 Minuten ändert und es ziemlich schwierig ist, das richtige funktionierende Relais zu finden .

Angenommen, sie teilt allen Teilnehmern des Netzwerks den öffentlichen Schlüssel mit, und wenn sie zu R kommt, sagt sie: "Das ist Alice, ich werde es mit meinem öffentlichen Schlüssel beweisen." Somit weiß R, dass der öffentliche PKz-Schlüssel einen bestimmten versteckten Dienst startet - Alices Poesie. Wenn jemand anderes sagt: "Hey, verbinde mich mit dem öffentlichen Schlüssel Z", kannst du mit Alice einen Handschlag mit einem gemeinsamen Schlüssel machen. Und dies ist der gleiche Handschlag, der in der Tor-Kette verwendet wird.

Jetzt kann Bob Alices Gedichte lesen, indem er eine weitere Verbindung über das Tor-Netzwerk herstellt. Wenn Bob den PKz-Schlüssel kennt, kann er dem Repeater sagen: "Hey, verbinde mich mit diesem PKz mit Alice." Nachdem der Repeater einen gemeinsamen Handschlag ausgeführt hat, haben Bob und Alice einen gemeinsamen Schlüssel, mit dem sie die gesamte Verbindung verschlüsseln können.



Es gibt etwas, das ich verpasst habe, nämlich woher weiß Bob, wie er hierher kommt? Woran erkennt dieser Repeater den öffentlichen PKz-Schlüssel? Wir können dem System ein Verzeichnissystem hinzufügen, in dem Alice anonym eine signierte Anweisung herunterlädt, die besagt, dass sich PKz über Tor auf Relais X befindet. In diesem Fall bittet Bob das Verzeichnissystem, ihm diese signierte Anweisung zu PKz zur Verfügung zu stellen, damit Bob herausfindet, wo er benötigt wird zu gehen. Wir könnten es noch besser machen - lassen Sie Alice einen anderen öffentlichen Schlüssel bereitstellen, nennen wir ihn PKw und eine Anweisung, die sie in das Verzeichnis hochlädt und sagt, wenn Sie mit dem öffentlichen Schlüsseldienst Z sprechen möchten, sollten Sie zum Rx-Relay gehen mit dem öffentlichen Schlüssel W.



In diesem Fall wird der öffentliche Schlüssel Z nicht auf dem Relais Rx veröffentlicht. Sie könnten fortfahren und den Ausdruck (Rx, PKw) mit einem gemeinsamen Geheimnis verschlüsseln, das Alice und Bob bekannt ist. Wenn Sie dies tun, können der Verzeichnisdienst und Personen, die sich an den Verzeichnisdienst wenden können, nicht lernen, wie Sie mit diesem PKz-Schlüssel eine Verbindung zu Alice herstellen.

Student: Wenn dies nicht verschlüsselt ist, kann der Rx-Repeater herausfinden, dass er den Dienst für Alice startet, oder?

Nick Mathewson: Nein, nicht für Alice. Er kann nur herausfinden, dass er den PKz-Schlüssel verwendet, wenn dieser Ausdruck nicht verschlüsselt ist. Wir haben eine Entscheidung getroffen, wie ein solches System erstellt werden soll. Es wurde noch nicht gebaut, aber es wird cool sein.

Angenommen, Sie möchten hierfür kein zentrales Verzeichnis verwenden. In diesem Fall verwenden wir tatsächlich DHT, das nicht ideal ist und der Zensur unterliegt, aber wir versuchen, die Möglichkeit zu nutzen, die Zensur immer weniger anzuwenden. Ich könnte Ihnen mehr darüber erzählen, aber ich habe Angst, keine Zeit zu haben, um die verbleibenden Themen zu behandeln.

Es gibt ein weiteres Problem: Wenn Sie eines dieser Dienstverzeichnisse verwenden und eine vollständige Liste der Schlüssel haben, können Sie eine Verbindung zu allen Personen herstellen, die ihre Verbindungen nicht verschlüsselt haben, um herauszufinden, was sie dort haben. Dies wird als Aufzählungsangriff oder "Aufzählungsangriff" bezeichnet. Wir haben dies in unserer Zeitung nicht erwähnt, nicht weil es uns nicht stört, sondern weil wir noch nicht bereit sind, solchen Angriffen standzuhalten.

Ich hoffe, dass wir 2014 eine Lösung finden werden, bei der Alice und Bob den PKz-Schlüssel gemeinsam nutzen, aber dieser Ausdruck (Rx, PKw) ist nicht mit dem PKz-Schlüssel signiert. Es wird von PKz 1 signiert, das von PKz abgeleitet ist, und beispielsweise das Datum:

PKz 1 - > PKz, Datum

Wenn Sie PKz und das Datum kennen, können Sie PKz 1 erhalten . Wenn Sie als Alice das Geheimnis von SKz kennen, können Sie Nachrichten erstellen, die von PKz 1 signiert sind.



Wenn Sie jedoch nur PKz 1 sehen und das Datum nicht kennen, können Sie PKz nicht erneut empfangen. Wir haben Beweise für die Möglichkeit dieser Lösung, und wenn Sie wissen möchten, wie es funktioniert, schreiben Sie mir und ich werde sie Ihnen senden. Das ist ein cooler Trick. Wir waren nicht die ersten, die auf diese Idee kamen. Aber auf diese Weise werden wir das Problem des Aufzählungsangriffs in diesem Jahr lösen, wenn ich wirklich Zeit für die praktische Implementierung dieser Lösung finde. Das ist alles für versteckte Dienste.

Betrachten Sie das Thema Angriffe und Verteidigung. Die größte Kategorie von Angriffen, die wir bisher gesehen haben, sind Angriffe auf Anwendungsebene. Wenn Sie die Anwendung über Tor ausführen und unverschlüsselten Datenverkehr wie eine normale HTTP-Verbindung sendet, kann ein feindlicher Exit-Point-Knoten wie jeder andere Knoten, der HTTP-Verbindungen zulässt, diesen Datenverkehr überwachen und ändern. Dies ist Angriff Nummer 1 in unserem System. Es kann mit verschlüsseltem Verkehr widerstanden werden.

Glücklicherweise hat in den letzten Jahren die Verschlüsselung zugenommen, und mehr Verkehr wird von der hervorragenden kostenlosen Zertifizierungsstelle verschlüsselt, die EFF, Mozilla und Cisco vor ein oder zwei Tagen gemeldet haben. Ich hoffe, dass es 2015 noch weniger unverschlüsselten Verkehr geben wird als in diesem Jahr. Dieser Ansatz löst also dieses Problem.

Interessantere Angriffe umfassen Dinge wie Traffic Tagging oder Traffic Tagging. Wir haben bei unserer vorherigen Implementierung der Integritätsprüfung einen Fehler gemacht. Unsere frühe Implementierung der Integritätsprüfung endete mit der Integritätsprüfung im Abschnitt zwischen Alices Programm und dem Austrittspunktknoten, aber es stellte sich heraus, dass dies nicht ausreicht. Denn wenn das erste Relais R1 den Verkehr so ​​„verwirrt“, dass es ein Muster erzeugt, das den Austrittspunktknoten erkennen kann, dient es für das erste und letzte Relais dazu, herauszufinden, dass sie sich auf demselben gemeinsamen Pfad in derselben Kette befinden, und zu identifizieren Alice.

Wenn das erste und das letzte Relais irgendwie zusammenarbeiten, können sie Alice auf jeden Fall durch Vergleichen des Verkehrs bestimmen, aber wir hoffen, dass es für sie nicht einfach wird und der Prozess der Korrelation des Verkehrs mit der Zeit komplizierter wird als wir denken.
In der Tat wäre es schön, diese Art von Angriff ein für alle Mal zu beenden. Dafür haben wir zwei Lösungen. Eines der erwarteten Ergebnisse solcher Angriffe ist ein periodischer Ausfall der Ketten, da der Angreifer auf dem ersten Hub einen Fehler hinsichtlich der Kontrolle über den letzten Hub gemacht hat.

Daher prüft jeder Tor-Kunde auf eine seltsame Absprungrate. Eine effektive langfristige Lösung des Problems besteht darin, sicherzustellen, dass die "Aufregung" mit der Vorlage auf dem ersten Hub nicht mehr als 1 Bit an Informationen auf dem letzten Hub erzeugt. Sie können das Senden von 1 Bit an Informationen nicht vermeiden, da der erste Hub die Verbindung immer einfach trennen kann. Sie können diese Informationen jedoch auf 1 Bit beschränken. Oder besser bis zu 2 Bit, da sie dann die Wahl haben, Daten zu beschädigen oder die Verbindung zu trennen. Ich hatte eine Idee, wie ich das am besten machen kann, also werde ich über dieses Problem nachdenken.

Denial of Service (DOS) ist ebenfalls wichtig. Letztes Jahr gab es einen Artikel über das, was die Autoren als "Scharfschützenangriff" bezeichneten. Sie sehen Datenverkehr vom Tor-Knoten, den Sie nicht steuern, und möchten daher alle aus diesem Knoten vertreiben. Dazu stellen Sie eine Verbindung zu diesem Knoten her, überlaufen alle Puffer seines Speichers und er stürzt ab. Danach leiten Sie den Verkehr, an dem Sie interessiert sind, zu dem Knoten um, den Sie steuern. Wenn er auf einen unkontrollierten Knoten fällt, wiederholen Sie diese Technik mehrmals, bis das gewünschte Ergebnis erreicht ist.

Unsere besten Lösungen zielen darauf ab, die Möglichkeit eines DOS-Angriffs auf den Speicher auszuschließen, und unsere Patches haben diese Möglichkeit praktisch ausgeschlossen. Eine weitere Möglichkeit zur Lösung derartiger Probleme besteht darin, sicherzustellen, dass der Repeater über eine große Speicherkapazität verfügt. Verwenden Sie daher keine Repeater mit geringer Kapazität im Netzwerk. Wir tun dies auch: Wenn Sie versuchen, die Tor-Site auf Ihrem Telefon zu starten, erhält sie keine Autorisierung und wird nicht in die Liste der vertrauenswürdigen Sites aufgenommen.

Wir versuchen auch, Kettenplanungsalgorithmen zu entwickeln, obwohl es sehr schwierig ist, ein Netzwerkdiagramm von Knoten zu entwickeln, die Sie nicht steuern. Daher ist dies derzeit ein ungelöstes Problem.

Sagen Sie mir jetzt, was besser ist - erzählen Sie von interessanten Angriffen oder wichtigen Angriffen?

Student: über interessante!

Nick Mathewson: gut. Lassen Sie dann diejenigen, die ein Programm schreiben möchten, das Kryptographie verwendet, ihre Hände heben? Das müssen Sie lernen! Vertrauen Sie jedoch niemals der Implementierung Ihrer Kryptografie. Auch wenn dies richtig ist, ist es immer noch falsch. Vor sehr langer Zeit hatten wir einen der schlimmsten Sicherheitsfehler. Wir dachten, dass jedes Relais in jeder Knotenkette ein „Mann in der Mitte“ sein könnte, da wir davon ausgegangen sind, dass die korrekte Implementierung des Diffie-Hellman-Algorithmus prüfen würde, ob 0 als einer der Eingänge übergeben wird.



Die Autoren unserer Diffie-Hellman-Implementierung schlugen vor, dass eine ordnungsgemäße Anwendung niemals eine Diffie-Hellman-Implementierung von Null bestehen würde.

Wie funktioniert der richtige Diffie-Hellman-Algorithmus? Angenommen, ich habe g x und du hast g y . Ich kenne X, du kennst Y und wir können beide g xy berechnen. Aber wenn stattdessen der „Mann in der Mitte“ meinen g-Wert durch Null ersetzt, dann berechne ich 0 x , Sie berechnen 0 y , wir haben den gleichen Schlüssel und wir können leicht miteinander kommunizieren, aber dies ist der Schlüssel, den der Angreifer kennt, weil was ist es 0.

Das Gerät funktioniert, P funktioniert auch, P + 1 funktioniert auch. Sie müssen also nur sicherstellen, dass Ihre g x - und g y -Werte im Bereich von 2 bis P-1 liegen, wenn Sie den Diffie-Hellman-Algorithmus in der Form z sub p implementieren.

Ich möchte mehr über Zensur sprechen. Schließlich ist dies einer der Bereiche, in denen wir das Beste aus dem Guten herausholen können. Am Anfang dachten wir, Tor sollte wie ein Webclient aussehen, der über HTTPS mit dem Webserver spricht, und das Blockieren erschweren. Es stellt sich heraus, dass es fantastisch schwierig ist und es wahrscheinlich nicht wert ist.
Jetzt verwenden wir einen Ansatz mit verschiedenen Plugins, mit denen nicht gemeldete Repeater als Bridge verwendet werden können, und der Benutzer kann dieses Schema für verschiedene Verkehrskonvertierungen verwenden. Wir schaffen es sicherzustellen, dass neue Repeater schneller zum Netzwerk hinzugefügt werden, als Zensoren ihre Blockierung erkennen.



In der Tat ist dies der Fall, wenn keine der Lösungen kategorisch praktikabel ist. Ich glaube, ich habe meine Gedanken nicht so formuliert. Es wäre richtiger zu sagen, dass keines dieser Plug-Ins von modernen Technologien im Wesentlichen nicht blockiert wird, aber sie sind gut genug, um den Datenverkehr in den meisten Ländern für 1-2 Jahre oder in China für 6-7 Monate freizuschalten.

China hat derzeit die kompetentesten Zensoren der Welt, vor allem, weil es kein Outsourcing einsetzt. Die meisten anderen Länder mit aggressiver Internet-Zensur übertragen Zensurfunktionen an europäische, amerikanische und asiatische Unternehmen, deren Interesse nicht darin besteht, effektive Internet-Zensursoftware zu verkaufen, sondern ihre Kunden zu zwingen, ständig am Update-Rennen teilzunehmen.

Sie können Ihre zensierte Software beispielsweise in den USA kaufen. Technisch gesehen dürfen US-Unternehmen keine Zensurprogramme für Drittländer durchführen. In den USA haben sie jedoch eine Unternehmens-Firewall entwickelt, die auf 10 Millionen Benutzer skaliert. Ich halte das für unethisch, aber auch hier bin ich kein Mitglied politischer Organisationen und kein Philosoph.

Paul Cyverson, einer der Autoren von Tor, hat einen Abschluss in Philosophie, aber selbst er kann diese Fragen nicht beantworten. Aber er verbringt viel Zeit damit, sie nicht zu beantworten.
Wo habe ich aufgehört? 90 Minuten sind eine lange Zeit. Zensiert! So hat Tor wiederholt die Zensur verschiedener Entwickler umgangen. Sie versuchen, die neuesten Versionen von Tor zu blockieren, machen aber gleichzeitig einen ziemlich schwachen Block. Wenn wir also irgendwo in derselben Knotenkennung 1 Bit ändern, können wir eine solche Sperre leicht umgehen.

Wir können nicht beweisen, dass sie Tor dazu bringen, die Sperre zu umgehen, das heißt, sie verkaufen Blockierungsprogramme, die nicht funktionieren, damit sie später ein Update nach dem anderen verkaufen können. Aber es scheint uns so, wie es ist. – , , .

, , , . , , . , «» – , , .

, – . Tor — , . , , . freehaven.net/anonbib/ , .

I2P, Gnunet, Freedom — «», , , Mixmaster, Mixminion, Sphynx Y, Sphinx I – - , DC-net, DC-net . , . , Tor — , , .
— . , — , , , , — , , . . , . , , , , , . , : « , ». , 10 , .



, Tor. , :

PKz 1 → PKz, Date

, , . , , .

. 2003 RSA-1024, . RSA-1024 Ed25519. , , .

path selection, . 5-6 , . .

, - . , , , , - . , - - , 2015 . - – , !

, . , . . 10 20 . , , , 100 , - .

, , , . — , .
, , 100 – - . , , , - .



- , . , , , , .
, , .

- , , - , . : «, , !». , 2 , 6. , , , - .

, , , . «», , - , . , , , - .

, . ? Nein? , . , . , 12:25, . . , , !


.

Vielen Dank für Ihren Aufenthalt bei uns. Gefällt dir unser Artikel? Möchten Sie weitere interessante Materialien sehen? Unterstützen Sie uns, indem Sie eine Bestellung aufgeben oder Ihren Freunden empfehlen, einen Rabatt von 30% für Habr-Benutzer auf ein einzigartiges Analogon von Einstiegsservern, das wir für Sie erfunden haben: Die ganze Wahrheit über VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s von $ 20 oder wie teilt man den Server? (Optionen sind mit RAID1 und RAID10, bis zu 24 Kernen und bis zu 40 GB DDR4 verfügbar).

VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s bis Januar kostenlos, wenn Sie für einen Zeitraum von sechs Monaten bezahlen, können Sie hier bestellen .

Dell R730xd 2 mal günstiger? Nur wir haben 2 x Intel Dodeca-Core Xeon E5-2650v4 128 GB DDR4 6 x 480 GB SSD 1 Gbit / s 100 TV von 249 US-Dollar in den Niederlanden und den USA! Lesen Sie mehr über den Aufbau eines Infrastrukturgebäudes. Klasse mit Dell R730xd E5-2650 v4 Servern für 9.000 Euro für einen Cent?

Source: https://habr.com/ru/post/de431266/


All Articles