Onion Routing und Tor: Difference between revisions

From chaoswiki
Jump to navigation Jump to search
(Noch eine Zwischenspeicherung)
(Korrektur der Bildversautheit)
Line 85: Line 85:
==Mixes==
==Mixes==


[[Image:Tor MixScheme.png]]
[[Image:Tor MixScheme.png|thumb|240px|right|Ein Mix vertauscht und dechiffriert die erhaltenen Datenpakete.]]
Ein Mix entschlüsselt hüllenweise Daten aus einem Stream, wobei er sie im Kommunikationskanal beliebig austauscht, so dass man hinterher nicht mehr sagen kann, welcher Plaintext zu welchem Ciphertext gehört (Permutation).
Ein Mix entschlüsselt hüllenweise Daten aus einem Stream, wobei er sie im Kommunikationskanal beliebig austauscht, so dass man hinterher nicht mehr sagen kann, welcher Plaintext zu welchem Ciphertext gehört (Permutation).



Revision as of 18:08, 2 October 2005

Wer braucht Anonymität?

  • Journalisten, Dissidenten, Whistleblowers (Indymedia, Blogger, Iran, Tibet)
  • Zensurresistente Publizisten und Leser (e.g. Forschung über Rechtsradikalität)
  • Sozial unerwünschte Kommunikation (Ärzte, Selbsthilfegruppen, Missbrauchsforen)
  • Law enforcement (anonyme Hinweise, Verbrechensmeldungen)
  • Firmen (Industriespionage, Supplier, Kunden)
  • Du (Mit wem tauscht du Mails aus? Welche Seiten besuchst du? Wo arbeitest du? (Stalking) Was kaufst du? Was für Ärzte besuchst du? (Abtreibung?) Was für Bücher liest du? (Amazon-Wunschlistenfall))
  • Regierungen (Unverfälschte Umfragen/Wahlen, Austausch zwischen sich nicht vertrauenden Staaten)

Wären Kriminelle nicht auch gerne anonym?

Diese Vorstellung liegt durchaus im Rahmen des Möglichen. Doch sollte man hierbei bedenken, dass den Kriminellen ihre Umwelt nicht so sehr am Herzen liegt wie manch anderem Menschen.

  • Identitätsdiebstahl
  • Zeitweise Unidentifizierbarkeit (e.g. Selbstmordattentäter, Märtyrer)
  • Motivation, komplexere Anonymitätssysteme zu verwenden
  • Motivation, Anonymität zu erkaufen

Normale Menschen, Polizei, Regierungen und Firmen haben diese Möglichkeit nicht

Und was ist mit intrusion?

  • Brich in ein System ein
  • Vernichte die Logfiles
  • Rootkits
  • Suche dir ein anderes System und fange von vorne an
  • Wozu braucht man dann noch Tor?

Normale Menschen, Polizei, Regierungen und Firmen haben diese Möglichkeit nicht

-> Mist.

Problem

  • In öffentlichen Netzen (e.g. Internet) verraten die Verbindungsheader, wer mit wem kommuniziert
  • Paketrouten können aufgezeichnet werden (e.g. Lawful Interception)
  • Verschlüsselung betrifft nicht die Routingdaten!

Warum ist das ein Problem?

  • Unterdrückung von sensibler Kommunikation
  • Zensur
  • Einbrüche in Intimsphäre
  • Industriespionage
  • Verfälschung von Umfrageergebnissen
  • Keine geheimen Wahlen möglich
  • Kommunikation zwischen klassifizierten Entitäten nicht möglich

Sollte einen da eigentlich nicht ein Dialup-Internetzugang schützen?

  • Man weiss, dass der Zugang über eine Dialup-Leitung stattgefunden hat
  • Auskunftspflicht der Provider, die noch dazu nicht immer gut informiert sind (Urheberrechtsdelikte)

Lösungsanforderungen

Eine Lösung dieses Problemes erfordert somit eine Reihe von Eigenschaften, die die Kommunikation erfüllen muss:

  • Man muss Traffic anderer Leute transportieren, damit nicht ersichtlich ist, welcher Traffic welchem Benutzer zugeordnet werden kann
  • Man will nicht einem Einzelnen vertrauen (distributed trust)

-> die Sicherheit basiert auf Diversität und Verteilung des Netzes

  • Sender und Empfänger sollen voreinander geschützt sein (dürfen nichts übereinander erfahren)

-> Channel- und Data-Anonymity

  • Beobachter von Aussen dürfen keine Ahnung haben was vor sich geht
  • Beobachter von innen dürfen keine Ahnung haben was vor sich geht

-> Channel-Anonymity

Anonyme authentisierte Verbindungen machen also durchaus Sinn! (Und bieten zum ersten Mal echte Pseudonymität) Dabei sollte die Authentisierung lediglich über die Daten statfinden, da es über den Channel offensichtlich nicht möglich ist (IP wechselt u.U. während einer Session auf einer Website etliche Male)

Bisherige Ansätze

Proxies

Hierbei wird durch einen Provider einer oder mehrere Proxies hintereinandergeschaltet und erledigen dann den Datenaustausch für den Benutzer, so dass dieser nicht zum wirklichen Zielhost verbinden muss. Dies funktioniert für Web-Verbindungen ganz gut (SSL, TLS, SSH und andere symmetrischen low-cost-Verschlüsselungsmechanismen). Beispiele wären der Anonymizer, JAP und wie sie alle heissen.

Vorteile:

  • Einfach einzurichten
  • Fokussiert viel Traffic auf einen Punkt und erschwert somit Trafficanalyse

Nachteile:

  • Schwer skalierbar (Load balancing kaum anwendbar, da die Load ja das eigentliche Problem ist)
  • Bei grossen Firmen führt dies zu wechselnden IPs (Round Robin Proxy)
  • Single point of failure! (Kompromittierung, Angriff, rechtliche Anforderungen)

Mixes

Ein Mix vertauscht und dechiffriert die erhaltenen Datenpakete.

Ein Mix entschlüsselt hüllenweise Daten aus einem Stream, wobei er sie im Kommunikationskanal beliebig austauscht, so dass man hinterher nicht mehr sagen kann, welcher Plaintext zu welchem Ciphertext gehört (Permutation).

Nach dem Chaum-Model für Mixes (1981) verschlüsselt ein Client eine Nachricht für eine Mixerkette dreimal, so dass am Ende gilt:

Tor MixFormula.png

Jeder der Mix-Server in der Kette hat dann einen Schlüssel für die jeweils äusserste Hülle der Verschlüsselung. Solange nur ein einziger der Server die Permutation wie gewünscht ausführt, bleibt die Funktionalität der Mixerkette erhalten, und niemand kann sagen, welcher Plaintext zu welchem Ciphertext gehört.

Vorteile:

  • Daten- und Kanalanonymität gegeben
  • Ein einziger vertrauenswürdiger Host in der Kette reicht um die Sicherheit aufrechtzuerhalten

Nachteile:

  • Interaktivität stark eingeschränkt (laggy)
  • Fokus von Mixerketten lag auf eMail und anderen Anwendungen, die hohe Latenzzeiten tolerieren
  • Jede Ebene von Nachrichten erfordert teure Public-Key-Kryptographie
  • Keine benutzerfreundliche Implementation vorhanden

First Generation Onion Routing

In diesem Modell schleudert ein Rechner ein Onion-Paket mit Onion-Routinginformationen (siehe später) in das Netz hinaus (eine sogenannte onion). Diese wird dann von eine Reihe Rechnern geroutet und tritt schliesslich aus dem Netz wieder aus, um den Zielrechner als normales Datenpaket zu erreichen. Hierbei waren jedoch einige Probleme noch nicht bedacht:

  • Die verwendeten Router waren nicht durch irgendeine Instanz als vertrauenswürdig einstufbar
  • Bei jedem Paket ergab sich erneut die Möglichkeit, die Identität des Senders festzustellen
  • immernoch teure Public-Key-Krypto

Das Prinzip des Onion Routers

Geschichte

Der Onion-Router (Tor) implementiert die 2nd Generation Onion Routing-Spezifikation. Die Idee war hierbei, die Vorteile von Mixes und Proxies zu verbinden und somit zu einem Modell zu kommen, in dem die teure Public-Key-Kryptographie auf ein Minimum reduziert wurde. Die Designidee wäre somit wie folgt:

  • Verwendung (teurer) Public-Key-Kryptographie um den Anonymisierungskreislauf aufzubauen
  • Verwendung (billigerer) symmetrischer Kryptographie um Daten zu übertragen
  • Verteilte Vertrauensverhältnisse wie bei Mixes

Zahlen

  • Das Netzwerk läuft ununterbrochen seit Oktober 2003.
  • 320 verfügbare exit nodes in 32 Ländern
  • Basiert auf Freiwilligen (anders als das Freenet)
  • ungefähr 50'000 Benutzer... (Wer kann das schon sagen? Es ist ein Anonymitätssystem!)
  • Nodes bearbeiten zwischen 1 und 100 GB Traffic per Tag (Penrose: 16)
  • Netzwerk war noch nie komplett down