Mixe sind Systeme, die eine anonyme Kommunikation zwischen zwei Partnern ermöglichen. Die Anonymität kann auch vom Betreiber eines einzelnen Mix nicht gebrochen werden. Mixe können sowohl für den Mailverkehr als auch zum Surfen eingesetzt werden.
Grob funktioniert die Mix-Technik beim anonymen Surfen über drei Mixe (Mix1, Mix2 und Mix3)
wie folgt:
Ein Client-Programm auf einem User-Rechner erhält von einer Anwendung
des Users ein IP-Paket. Der Client nimmt nun dieses für den Zielrechner
bestimmte Paket und entfernt daraus die Absender-IP, bzw. läßt sie
stehen, da sie nur eine für alle Clients einheitliche lokale Nummer ist
(127.0.0.1).
Dann nimmt er das Paket und einen eigenen speziell dafür
generierten öffentlichen Schlüssel und verschlüsselt dies mit
dem öffentlichen Schlüssel des Mix3.
Das so entstandene Paket, die Adresse von Mix3 und ein wiederum extra
hiefür generierter eigener öffentlicher Schlüssel verschlüsselt er nun
mit dem Schlüssel von Mix2.
Dieses Paket wiederum, die Adresse von Mix2 und einen wiederum extra
hiefür generierten eigenen öffentlichen Schlüssel verschlüsselt er
nun mit dem öffentlichen Schlüssel von Mix1.
Dieses Paket wird dann endlich an Mix1 verschickt
Mix1 entschlüsselt das vom Client erhaltene Paket mit seinem privaten Schlüssel merkt sich die
Absenderadresse und den Schlüssel des Client, die er den vom Clienten
verschickten Paketen entnehmen kann, und generiert eine Nummer die er
dieser Adresse zuordnet. Dann packt er diese Nummer gemeinsam mit dem
vom Client enthaltenen mit dem öffentlichen Schlüssel von Mix2
verschlüsselten Datenpaket, in gemischter (= mixen) Reihenfolge mit
Nummern und Paketen von anderen Clients in ein großes Paket, das er dann
wiederum mit dem öffentlichen Schlüsssel von Mix2 verschlüsselt an Mix2
sendet, dessen Adresse ja im Paket des Client angegeben war.
Durch die gemischte Reihenfolge ist gesichert, daß die Anfragen in
dem großen Paket nicht mehr der Reihenfolge des Eingangsentsprechen.
Mix1 ist nicht in der Lage das vom Client für Mix2 zusammengestellte
Paket zu lesen, da es mit dem öffentlichen Schlüssel von Mix2 verschlüsselt
ist.
Mix2 entschlüsselt zunächst das Gesamtpaket mit seinem Schlüssel und
entschlüsselt dann die erhaltenen Einzelpakte. Er merkt sich die von
Mix1 generierte Nummer, und generiert eine neue Nummer und ordnet sie
und den im Paket gefunden Schlüssel des Client
der von Mix1 generierten Nummer zu. Dann nimmt er die im Paket vorgefundene
Adresse von Mix3 und steckt das vom Client für Mix3 zusammengestellte
Paket mit der von ihm (Mix2) generierten Nummer zusammen mit vielen
anderen Paketen in ein großes Paket für Mix3, verschlüsselt dies mit
dem öffentlichen Schlüssel von Mix3 und sendet es ihm.
Auch hier mischt Mix2 die Pakete vor dem Zusammenpacken, so daß
kein Zusammenhang mit der Reihenfolge des Eingangs besteht, und auch
Mix2 kann die Pakete nicht lesen, da sie immer noch mit dem
Schlüssel von Mix3 verschlüsselt sind.
Mix3 schließlich entschlüsselt das große Paket mit seinem privaten
Schlüssel, entnimmt die Einzelpakete und entschlüsselt diese, merkt
sich dabei die von Mix2 generierte Nummer und ordnet ihr den im
Paket gefundenen öffentlichen Schlüssel des Client zu. Er
kann jetzt sehen an welche Endadresse die Pakete gehen sollen. Er
sieht aber nich die Absender-IPs, sondern hat nur die von Mix2
generierten Nummern. Er merkt sich diese Nummern markiert die Pakete
entsprechend und schickt sie dann unter seiner eigenen IP-Adresse
an die Zieladressen, auch dabei mischt er die Reihenfolge. Kommen
die Antworten zurück, kann er sie anhand der Markierung wieder
von Mix2 generierten Nummern und den öffentlichen Schlüsseln der
Clients zuordnen.
Jetzt verschlüsselt er die Antwortepakete mit den jeweiligen
öffentlichen Schlüsseln der Clients. Nimmt dann die Pakete mit
den jeweiligen Nummern von Mix2 und verschlüsselt sie mit dem
öffentlichen Schlüssel von Mix2 mixt ihre Reihenfolge und schickt
das Gesamtpaket an Mix2 zurück.
Mix2 entschlüsselt das Gesamtpaket entnimmt die Nummern mit
den Einzelpaketen ordnet sie den Schlüsseln und Nummern die
er auf dem Hinweg erhalten hat, verschlüsselt mit den entsprechenden
Schlüsseln, packt die so entstandenen Pakete zusammen mit den Nummern
von Mix2 in ein großes Paket verschlüsselt es mit dem öffentlichen
Schlüssel von Mix1 und schickt es an diesen.
Mix entschlüsselt das Gesamtpaket nimmt die Einzelpakete ordnet
sie anhand der von Mix2 zurückgeschickten Nummern den IP-Adressen
und Schlüsseln der Clients zu, verschlüßtel die Pakete mit den
Schlüsseln der Clients, und versendete die Pakete in zufälliger
Reihenfolge zurück an die Clients.
Mix1 kann die Antwortpakete ebenso wie Mix2 nicht lesen, da
sie mit verschiedenen öffentlichen Schlüsseln der Clients
verschlüsselt sind.
Die Client nimmt das Paket entschlüsselt es mit seinem privaten
Schlüssel für Mix1, dann mit seinem privaten Schlüssel für Mix2
und dann mit seinem privaten Schlüssel für Mix3, jetzt hat er
das Antwortpaket wie es Mix3 empfangen hat. Er muß jetzt nur noch
die Adresse von Mix3 durch die lokale Adresse ersetzen, und kann
dann das Paket an die Anwendung weiterreichen die von dem ganzen
Zauber nichts mitbekmmen hat, und daher auch keine Probleme damit
hat.
Wollen Mix2 und Mix3 gemeinsame machen und den Verkehr offenlegen
versagen sie, da nur Mix1 die Herkunftsadressen der Pakete kennt.
Wollen Mix1 und Mix3 gemeinsame Sache machen, versagen sie, da Mix1
zwar alle Adressen und Mix3 alle Inhalt kennt, aber nur Mix2 die
Zuordnung zwischen den Nummer die Mix1 kennt, und den Nummern die
Mix3 kennt vornehmen kann.
Wollen Mix1 und Mix2 gemeinsame Sache machen, so versagen sie, da
die Pakete mit dem Schlüssel von Mix3 bzw. des Client verschlüsselt
sind.
Nur wenn alle drei Mixe zusammenarbeiten können sie den Verkehr
entschlüsseln .
Werbung:
|