Mix (Netzwerk)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Grundfunktionen eines Mixes: 1. Filtern, 2. Sammeln, 3. Umkodieren, 4. Umsortieren der Nachrichten (farbige Pfeile)

Das 1981 von David Chaum eingeführte Konzept der (umkodierenden) Mixe dient der anonymen Kommunikation innerhalb eines Netzwerkes. Dabei werden Nachrichten nicht direkt vom Sender zum Empfänger übertragen, sondern über mehrere Zwischenstationen (Mixe genannt) geleitet. Das Ziel ist die Anonymisierung der Kommunikationsbeziehung, was abhängig vom zugrunde liegenden Konzept zu einer der folgenden drei Ausprägungen führt:

  • der Empfänger bleibt vor dem Sender anonym
  • der Sender bleibt vor dem Empfänger anonym
  • Sender und Empfänger bleiben voreinander anonym

Die wichtigste Eigenschaft, der Schutz von Verkehrsinformationen gegenüber außenstehenden Dritten, wird durch alle drei Konzepte realisiert.

Ein Mix spielt dabei die Rolle eines Nachrichtenvermittlers, ähnlich der Funktion eines Proxys. Er nimmt Nachrichten an und sorgt dafür, dass die von ihm dann weitergereichten Nachrichten nicht zu den von ihm angenommenen in Beziehung gesetzt werden können. Diese Zusatzfunktion unterscheidet ihn wiederum von einem üblichen Proxyserver.

Grundfunktionen[Bearbeiten]

Damit für Außenstehende keine Möglichkeit besteht, Nachrichten zwischen Eingang und Ausgang eines Mixes in Beziehung zu setzen, dies wird auch Überbrücken des Mixes genannt, muss ein Mix einige Grundfunktionen auf den Nachrichten durchführen:

  • Löschen von Duplikaten
Ein Angreifer in der elektronischen Welt hat immer die Möglichkeit Nachrichten zu kopieren. Sollten zwei genau identische Nachrichten beim Mix eintreffen, so würden auch zwei genau identische Nachrichten vom Mix weitergeleitet werden. Der Mix wäre überbrückt, da eindeutig eine Beziehung zwischen den beiden identischen Eingangsnachrichten zu den beiden identischen Ausgangsnachrichten herstellbar wäre.
  • Sammeln von Nachrichten
Anonymität ist nur innerhalb einer Gruppe von Individuen möglich. Demzufolge muss dafür gesorgt werden, dass Unbestimmtheit darüber besteht, von wem eine Nachricht gekommen ist. Dies ist nur möglich, wenn ausreichend viele Nachrichten von unterschiedlichen Teilnehmern eingetroffen sind. Die Nachrichten werden dann alle gemeinsam in einem Schub bearbeitet (Batch-Modus). Alternativ kann immer wieder zufällig eine Nachricht zur Bearbeitung ausgewählt werden, während kontinuierlich neue Nachrichten hinzukommen (Pool-Modus).[1]
  • Umkodieren der Nachrichten
Damit Nachrichten zwischen Eingang und Ausgang des Mixes nicht in Beziehung gesetzt werden können, müssen sie auch eine andere Gestalt annehmen. Dies wird durch Umkodieren mittels eines Verschlüsselungssystems erreicht. Dadurch ist Außenstehenden kein einfacher bitweiser Vergleich zwischen Eingangsnachrichten und Ausgangsnachrichten mehr möglich.
  • Umsortieren der Nachrichten
Es darf auch nicht möglich sein, von der Reihenfolge des Eintreffens der Nachrichten der verschiedenen Teilnehmer auf die Reihenfolge der Nachrichtenausgabe des Mixes zu schließen. Deshalb müssen die Nachrichten entsprechend umsortiert werden. Dadurch sind derlei Rückschlüsse nicht mehr möglich.
  • weitere Aspekte
Die größte Sicherheit wird erreicht, wenn alle Nachrichten die gleichen Mixe in der gleichen Reihenfolge durchlaufen (Mix-Kaskade). Die oben aufgeführte Umkodierung bewirkt die Verkürzung der Nachrichten beim Durchlaufen der Mixe. Kann aus Leistungs- oder Kostengründen keine Mix-Kaskade garantiert werden, ist diese Verkürzung problematisch. Ein Angreifer könnte anhand der Verkürzung Zusammenhänge zwischen eingehenden und ausgehenden Nachrichten eines Mixes herstellen. Um dem entgegenzuwirken gibt es längentreue Verfahren.

Grenzen[Bearbeiten]

Bei korrekter Umsetzung mittels vollständiger Funktionalität kann eine bestimmte Kommunikationsbeziehung nur durch drei Möglichkeiten aufgedeckt werden.

  • Alle Mixe, die von einer Nachricht durchlaufen wurden, arbeiten zusammen.
  • Alle anderen Sender und Empfänger der in allen Mixen gleichzeitig gemixten Nachrichten arbeiten zusammen.
  • Ein Angreifer verfügt über unbegrenzte Rechenleistung (nicht komplexitätstheoretisch beschränkter Angreifer).

Umkodierungsschema[Bearbeiten]

Umkodierungsschema für Senderanonymität: Nachrichten dargestellt als Kreise mit Verschlüsselungswall
Umkodierungsschema für Empfängeranonymität: Anonyme Rückadresse dargestellt als Quadrat, Nachrichten dargestellt als Kreise, jeweils mit Verschlüsselungswall
Umkodierungsschema für Sender- und Empfängeranonymität: Mix 2 ist der vertraute Mix

Das Umkodieren der Nachrichten wird durch Ver- oder Entschlüsselung erreicht, das heißt die Nachrichten müssen entweder nach dem Empfang wieder entschlüsselt oder vor dem Absenden verschlüsselt werden.

Senderanonymität[Bearbeiten]

Für eine genaue Erklärung werden einige Bezeichnungen benötigt:

  • \text{enc}_e( m ) … Verschlüsselung der Nachricht m mit dem öffentlichen Schlüssel e
  • A_i,\ e_i … Adresse und öffentlicher Schlüssel des Mixes i
  • A_E,\ e_E … Adresse und öffentlicher Schlüssel des Empfängers
  • Z_i … Zufallszahl

Die Zufallszahlen Z_i werden den Klartexten beigefügt, um eine nicht-deterministische Verschlüsselung zu erreichen. Das ist notwendig, damit Nachrichten mit gleichem Nachrichteninhalt nicht den gleichen Schlüsseltext erzeugen und deshalb vom Mix gefiltert werden. Für eine vereinfachte Betrachtung kann man die Zufallszahlen also weglassen.

Der Sender S wählt eine Folge von Mixen, durch welche er die Nachricht m anonym an den Empfänger E senden möchte, zum Beispiel S \rightarrow \text{Mix}_1 \rightarrow \text{Mix}_2 \rightarrow E. Er sendet folgendes an den ersten Mix:

\text{enc}_{e_1}\left( Z_1, A_2, \text{enc}_{e_2}\left( Z_2, A_E, \text{enc}_{e_E}\left( m \right)\right)\right)

Der erste Mix entschlüsselt dies mit seinem privaten Schlüssel d_1. Dadurch erhält er die Adresse A_2 des nächsten Mixes. Die Zufallszahl wird verworfen. Der erste Mix sendet folgendes an den zweiten Mix:

\text{enc}_{e_2}\left( Z_2, A_E, \text{enc}_{e_E}\left( m \right)\right)

Dieser entschlüsselt wieder und verwirft die Zufallszahl. Dies kann beliebig fortgesetzt werden. Der letzte Mix erfährt die Adresse A_E des Empfängers. Er sendet diesem dann \text{enc}_{e_E}\left( m \right) zu. Der Empfänger kann die Nachricht mit seinem privaten Schlüssel d_E entschlüsseln. Hat der Empfänger keinen öffentlichen Schlüssel, so muss die Nachricht vom letzten Mix zum Empfänger unverschlüsselt übertragen werden.

Allgemein verschlüsselt ein Sender, der anonym bleiben möchte, seine Nachricht rekursiv wie folgt:[2]

m_{n+1} = \text{enc}_{e_E}\left( m \right)
m_i = \text{enc}_{e_i}\left( Z_i, A_{i+1}, m_{i+1} \right) \text{ mit } i = 1, \dots, n

Empfängeranonymität[Bearbeiten]

Möchte ein Empfänger anonym erreichbar sein, so muss er zuerst den Sender darüber informieren, wie dieser Kontakt zu ihm aufnehmen soll. Diese Information bezeichnet man als anonyme Rückadresse. Der Sender erfährt nicht, welche Mixe der Empfänger für die Übertragung der Nachricht ausgewählt hat. Er kennt lediglich den ersten Mix. Nachdem der Empfänger eine Folge von Mixen gewählt hat, kann er dem Sender die anonyme Rückadresse zukommen lassen. Angenommen, der Empfänger wählt wie oben S \rightarrow \text{Mix}_1 \rightarrow \text{Mix}_2 \rightarrow E, dann schickt er an den Sender:

\left(k_S, A_1, \text{enc}_{e_1}\left( k_1, A_2, \text{enc}_{e_2}\left( k_2, A_E \right)\right)\right)

Die k_j sind symmetrische Schlüssel, welche beim Senden der Nachricht, vom Sender zum Empfänger, von den Mixen für die Verschlüsselung verwendet werden können. Der Empfänger kennt diese Schlüssel. Er erhält \text{enc}_{k_2}\left( \text{enc}_{k_1}\left( \text{enc}_{k_S}\left( m \right)\right)\right) und kann dies entschlüsseln. Die Verwendung asymmetrischer Schlüssel, wie im Fall der Senderanonymität ist hier nicht möglich, da der Sender in diesem Fall die Reihenfolge der Mixe nicht kennt.

Allgemein ist die anonyme Rückadresse R_S also rekursiv wie folgt aufgebaut:

R_{n} = \text{enc}_{e_n}\left( k_n, A_E \right)
R_j = \text{enc}_{e_j}\left( k_j, A_{j+1}, R_{j+1} \right) \text{ mit } j = 1, \dots, n-1
R_S =  \left( k_S, A_1, R_1 \right)

Die anonyme Rückadresse übermittelt der Empfänger mit Hilfe des Umkodierungsschemas für die Senderanonymität an den Sender. Es ist also

  • der Empfänger der Nachricht gleich der Sender der anonymen Rückadresse und
  • der Sender der Nachricht gleich der Empfänger der anonymen Rückadresse.

Die Bezeichnungen Sender und Empfänger beziehen sich hier immer auf die Nachricht. Der erste Mix ist immer der Mix auf der Seite des Senders, der letzte Mix hingegen der auf der Seite des Empfängers. Im Falle der zwei Mixe würde der Empfänger folgendes an den letzten Mix übermitteln:


  \text{enc}_{e_2}\left( Z_2, A_1, \text{enc}_{e_1}\left( Z_1, A_S, \text{enc}_{e_S}\left(
  \underbrace{\left(k_S, A_1, \text{enc}_{e_1}\left( k_1, A_2, \text{enc}_{e_2}\left( k_2, A_E \right)\right)\right)}_{\mathrm{anonyme\ R{\ddot u}ckadresse}}
  \right)\right)\right)

Der Sender kennt nun k_S,\ A_1 und R_1. Um die Nachricht m an den Empfänger zu übertragen, sendet er folgendes an den ersten Mix:

\left( R_1, \text{enc}_{k_S}\left( m \right)\right)

Der erste Mix entschlüsselt

R_1 = \text{enc}_{e_1}\left( k_1, A_2, R_2 \right)

und erhält dadurch k_1,\ A_2 und R_2. Er sendet

\left( R_2, \text{enc}_{k_1}\left( \text{enc}_{k_S}\left( m \right)\right)\right)

an den Mix mit der Adresse A_2. Dies wird fortgesetzt, bis die Nachricht beim Empfänger eintrifft.

In diesem Fall müssen keine Zufallszahlen mit verschlüsselt werden, da bereits die zufällig gewählten Schlüssel k_j enthalten sind. Der Empfänger kennt die Schlüssel k_j, da er sie selbst gewählt hat. Er erhält, wie bereits beschrieben,

\text{enc}_{k_2}\left( \text{enc}_{k_1}\left( \text{enc}_{k_S}\left( m \right)\right)\right)

und muss dies noch entschlüsseln.

Sender- und Empfängeranonymität[Bearbeiten]

Um die Anonymität auf beiden Seiten zu wahren, werden die Umkodierungsschemen für Sender- und Empfänger kombiniert. Ein Mix in der Mitte dient als Umlenkpunkt. Der Empfänger sendet diesem Mix mit Hilfe des Schemas für die Empfängeranonymität eine anonyme Rückadresse. Die anonyme Rückadresse wird von dem Mix zwischengespeichert, bis der Sender seine Nachricht gemäß dem Senderanonymitätsschema an diesen Mix sendet. Dieser übermittelt die Nachricht mit Hilfe der anonymen Rückadresse an den Empfänger.[2] Um den Sender dazu aufzufordern eine Nachricht zu senden, könnte der Mix in der Mitte per Broadcast eine Anfrage an alle möglichen Sender verschicken.

In der Praxis werden die beschriebenen Schemen noch etwas komplizierter, da man auch für die Teile in denen asymmetrische Kryptographie verwendet wird, schnellere symmetrische Verschlüsselung nutzen will. Die Lösung sind sogenannte hybride Kryptosysteme.[3]

Mix-Kanäle[Bearbeiten]

Das beschriebene System ist hauptsächlich geeignet, um einzelne Nachrichten einer vorgegebenen Länge (Blöcke) zu versenden. Sollen längere Datenströme übermittelt werden, so erweitert man das Konzept der hybriden Verschlüsselung: Die zwischen den Mixen ausgetauschten symmetrischen Schlüssel werden nicht nur für die Verschlüsselung eines einzigen Blocks, sondern auch für alle nachfolgenden Blöcke verwendet. Soll ein Mix-Kanal zwischen Sender und Empfänger hergestellt werden, muss der Sender eine Kanalaufbaunachricht verschicken, welche die Aufgabe hat, die symmetrischen Schlüssel zwischen den Mixen zu verteilen. Nach Beendigung der Datenübertragung werden die Kanäle mit einer Kanalabbaunachricht wieder abgebaut.[3] Dabei gibt es ein praktisches Problem: Die Kanäle müssen innerhalb einer Anonymitätsgruppe gleichzeitig aufgebaut und wieder abgebaut werden, da ein Beobachter des Netzwerkes sonst, anhand des Zeitpunktes des Kanalauf- oder abbaus, sämtliche Mixe überbrücken könnte. Dieses Problem lässt sich umgehen, indem man einen Systemtakt einführt und bei jedem Takt alle Kanäle abbaut und bei Bedarf sofort wieder aufbaut (Zeitscheibenkanäle).[4]

Anwendungen[Bearbeiten]

Innerhalb von Echtzeitsystemen, z.B. Tor oder JAP, die zum Surfen im Internet verwendet werden können, ergibt sich ein besonderes Problem: das Sammeln von Nachrichten ist praktisch kaum durchführbar. Für ein Sammeln von Nachrichten von möglichst vielen Sendern müsste man entsprechend lange warten. Das widerspricht aber der Funktionalität dieser Systeme, die möglichst kurze Antwortzeiten anstreben. Dadurch wird der Sammel-Schritt bei dieser Art von Systemen ganz weggelassen oder extrem kurz gehalten. Dementsprechend entfällt weitgehend auch das Umsortieren der Nachrichten, da stets nur auf Einzelnachrichten oder sehr kleinen Nachrichtengruppen gearbeitet wird. Hieraus ergeben sich damit Einschränkungen der Sicherheit dieser Verfahren. Die Mixe sind für einen Angreifer mittels der oben bei den Einzelschritten genannten Methoden überbrückbar.

Auch das Löschen von Duplikaten, auch Replay-Erkennung genannt, wird bei Echtzeitsystemen oft nicht durchgeführt. Die Begründung liegt darin, dass für eine solche Erkennung eine Datenbank aller bereits verarbeiteter Nachrichten existieren muss. Selbst wenn hier nur Hashwerte von Nachrichten gespeichert werden, so wachsen diese Datenbanken trotzdem sehr schnell an. Neben dem erforderlichen Speicherplatz dauern auch Suchaktionen in diesen Datenbanken entsprechend lange und benötigen Rechenleistung. Zeitstempelverfahren können hier aber Abhilfe schaffen, so dass die Datenbanken immer nur für gewisse Zeiträume vorgehalten werden müssen. Trotzdem wird bei Echtzeitsystemen oftmals nur der Umkodierungsschritt durchgeführt. Damit sind diese Systeme entsprechend leicht angreifbar.

Schutz vor dem Mixbetreiber[Bearbeiten]

Neben dem Absender einer Nachricht kann natürlich auch der Mixbetreiber selbst eine Zuordnung zwischen sämtlichen Eingangs- und Ausgangsnachrichten durchführen, da sämtliche Schritte des Mixes für ihn transparent sind. Aus diesem Grund werden mehrere dieser Mixe hintereinander verwendet, welche von verschiedenen Betreibern gesteuert werden. Die Hoffnung dabei ist, dass diese verschiedenen Mixbetreiber dann nicht alle zusammenarbeiten. Ansonsten könnten sie gemeinsam ebenfalls sämtliche Nachrichtenbeziehungen aufdecken. Sobald bereits aber ein Mixbetreiber nicht kooperiert, ist die Anonymität sichergestellt.

Es haben sich zwei verschiedene Verfahren dafür etabliert: das auf freiem Routing basierende Onion-Routing und die Verwendung fester Mix-Kaskaden. Beide Verfahren unterscheiden sich bezüglich der zu Grunde liegenden Angreifermodelle. Deshalb sind sie besonders hinsichtlich des praktischen Schutzes der Anonymität schwer zu vergleichen.

Literatur[Bearbeiten]

David Chaum: Untraceable electronic mail, return addresses, and digital pseudonyms In Communications of the ACM 4(2), February 1981. (PDF; 420 kB)

Einzelnachweise[Bearbeiten]

  1. Elke Franz, A. Graubner, A. Jerichow, Andreas Pfitzmann: Comparison of Commitment Schemes Used in Mix-Mediated Anonymous Communication for Preventing Pool-Mode Attacks. In: Information Security and Privacy. 1438, 1998.
  2. a b Elke Franz, Anja Jerichow, Andreas Pfitzmann: Systematisierung und Modellierung von Mixen. (PS.GZ) In: Proceedings der GI Fachtagung für Verläßliche IT-Systeme. 1997, S. 171-190. Abgerufen am 12. August 2010.
  3. a b Jan Müller: Anonyme Signalisierung in Kommunikationsnetzen (PDF) S. 19-23. 28. Februar 1997. Abgerufen am 12. August 2010.
  4. Andreas Pfitzmann, Birgit Pfitzmann, Michael Waidner: Telefon-MIXe. (PS.GZ) In: Datenschutz und Datensicherheit. 1989, S. 605-622. Abgerufen am 17. August 2010.