Mixmaster Remailer

From
Jump to navigation Jump to search

Bei Mixmaster handelt es sich um ein anonymisierendes Peer2Peer-Netzwerk hoher Latenz, d.h. die Nachrichten werden nicht in Echtzeit versendet. Der Verzicht auf die Echtzeitfähigkeit bringt einen hohen Grad an Anonymität.

Allgemeines

Tor - The Onion Router

The purpose of low latency anonymization is to make it possible to anonymously use services that require low latencies in order to be usable. Such services include Web browsing, DNS lookups or instant messaging. However, low latency of the connection allows certain attacks that could be prevented with higher latency systems. In this context, high latency means that the data needs several hours to reach its destination.

The trivial solution is to send Alice's requests through an anonymizing proxy. The proxy would remove all information that might link the data to the sender and forward the message to Bob. A website where such a service is offered is www.anonymizer.com. Using a proxy ensures that Bob does not know Alice's identity. The concept is easy to understand and it obviously works for the mentionned purpose.

Can Alice be sure that the proxy operator does not spy on her? Unfortunately, she cannot. But the approach of the central proxy is based on the assumption that the proxy operator can be trusted. If you cannot trust the proxy operator you will need more sophisticated concepts to keep your privacy.

Since Alice cannot trust in the honesty of the proxy operator, how is she supposed to remain anonymous, what can she rely on? One thing Alice can rely on is that, most likely, independent proxy operators will not cooperate with each other to reveal her identity. In addition to that, it is almost certain that among all proxy operators there is at least one that is honest and does not spy on her.

How can Alice take advantage of that? Assume she has a choice of three proxies A, B and C. Why not use proxy A to connect to proxy B, and use that connection to connect to proxy C? If done right, it would mean that only proxy A knows Alice and only proxy C knows Bob. In addition to that, the operator of proxy B would be needed to be able to link both connections to each other.

This approach would also solve another problem that has not yet been addressed. The proxy operator may not want to spy on Alice, but a national court or intelligence service may have forced him to do so and to not tell Alice about it. If all three proxies are located in different countries it becomes much harder for a certain intelligence service to do that.

While one may think that this threat is rather theoretical, the operators of JAP have been forced to log certain requests by German law enforcers. One factor that made this rather easy is that at this time, all JAP proxies were located in Germany. Even though a court eventually ruled that no data needs to be given out, this case demonstrates the importance of spreading a proxy network over many countries.

Geschichte anonymisierender Remailer hoher Latenz

Allgemein gesagt haben die Remailer den Zweck den Nachrichtenverkehr entweder zu pseudonymisieren und/oder zu anonymisieren. Ein Remailer nicht verschlüsselte oder unverschlüsselte Nachtrichten an und leitet sie weiter.

Die Evolution brachte im Laufe der Zeit folgende Typen bzw. Generationen von Remailern zustande:

Typ 0: Nym Remailer

Altername Namen sind Nym Server oder Pseudonym Server. Diese Server ermöglichen bidirektionale Kommunikation zwischen den Kommunikationspartnern. Im Extremfall kennt keiner der Kommunikationspartner die Identitä des anderen (bei neueren Generationen der Nym Remailer). Wenn ein Nym Remailer (der älteren Generation) eine Nachricht erhält, entfernt er die Headerinformationen und ersetzt die Originalangaben zur Identität des Absendern durch sein Pseudonym. Anschliessend leitet er die Nachricht an den Empfänger weiter. Dieser hat die Möglichkeit an das Pseudonym zu antworten, d.h. die Antwortnachricht geht beim Nym Server ein. Dieser und nur dieser kennt die Zuordnung des Pseudonyms zu der realen Adresse/Identität, ersetzt das Pseudonym durch die reale Adresse und stellt die Anwort dem ursprünglichen Absender zu. Die Technick der Zuordnung von Pseudonym (und der Pseudonymadresse) zu der Realadresse (und der entsprechenden Identität) entscheidet über die Sicherheit d.h. den Grad der Anonymität. Weil frühe Nym Server und damit ihre Betreiber die wahre Identität der Absender kennen, spricht man hier von Pseudonymisierung statt von Anonymisierung. Somit basiert das System eher auf Vertrauen als auch durch technologische Verfahren herbeigeführter Sicherheit. Bei den aktuellen Nym Servern kennt nicht mal der Betreiber die Identität der Benutzer. Sie nutzen die Technologie der Typ1- und Typ 2-Remailer. Erster öffentlicher Pseudonym-Remailer wurde ab 1993 von Johan Helsingius unter anon.penet.fi betrieben. Er musste wenige Jahre später aufgrund von Klagebeschwerden und Gerichtsbeschlüssen abgeschaltet werden.

Typ 1: Cypherpunk Remailer

1990 entwarf eine Gruppe von Internetpionieren, die sich selber Cypherpunks nannten, das Modell eines anonymisierenden Netzwerks, das auf den Ideen und Vorschlägen von David Chaum fussten. Beim Nachrichtenversand werden ausgewählte Cypherpunk-Remailer zu einer Weiterleitungskette unter Benutzung von PGP-Verschlüsselung. Die Kommunikation zwischen den Cypherpunk Remailern basiert auf dem normalen E-Mail-Protokoll (SMTP/POP3/MIME-Format). Schwächen der Cypherpunk Remailer:

  • Remailer sendet die Nachrichten nach Erhalt sofort weiter - durch Zeit- und Größemanalyse ist die Zuordnung von Empfänger zu Absender leicht möglich
  • Replay-Attacken (chosen-ciphertext attack) sind möglich. Bei den Replay-Attacken wird ein Nachtrichtenpacket, desen Weg nachvollzogen werden soll vor dem ersten Passieren des Remailers kopiert. Nach dem ersten Passieren des Remailers wird der ausgehende Datenverkehr mitgeschnitten. Anschliessend wird die Kopie des Nachrichtenpackets an den Remailer geschickt und der ausgehende Datenverkehr wieder mitgeschnitten. Durch die Schnittmengen der beiden ausgehenden Datenmengen kann man dir Zuordnung des ausgehenden Packets zum eingehnen treffen.

Diese und viele weitere Schwächen wurden von Lance Cottrell erkannt und publiziert. Man kann sich spontan mögliche Lösungen der obigen Probleme finden, die aber wieder neue Probleme aufwerfen:

  • Um die durch zeitliche Analyse leicht mögliche Zuordnung eines aus einem Remailer ausgehenden Packets zu seinem eingehenden Pendant zu verhindern, könnte man eine Verzögerung beim Weiterleiten einbauen. Diese ist allerdings keine große Hilfe bei wenig Datenverkehr im Netzwerk.
  • Man könnte die eingehenden Packete zunächst in einem Puffer anhäufen, ihre Reihenfolge zufällig umsortieren und anschliessend die Packete aus dem Puffer weitersenden. Diese Strategie ist zwar nicht mehr durch einfache Zeitanalyse zu untergraben, ist aber den sogenannten Flooding-Attacken unterworfen. Dabei wird vom Angreifer der Eingangspuffer des Remailes mit eigenen Packeten überhäuft, so dass nach dem Aufzeichnen des ausgehenden Datenverkehrs das fremde Packet wie ein schwarzes Schaf auf einem weissen Feld ausfällt.
  • Der Remailer könnte den Replay-Attacken damit begegnen, dass er sich die ID's der Packete merkt und ein zweites Packet mit dergleichen ID ablehnt.

Hier wurden einige Ideen aufgezeigt, wie die Schwächen der Cypherpunk-Remailer geschlossen werden können, es bleibt trotzdem das Problem, dass durch das Entfernen von Verschlüsselungsschichten die Packete beim Traversieren durch das Netzwerk immer kleiner werden und somit ihre aktuelle Position innerhalb der Weiterleitungskette abgeschätz werden kann.

Typ 2: Mixmaster Remailer

Bei Mixmaster Remailern handelt es sich um eine Weiterentwicklung von Cypherpunk Remailern mit dem Ziel, die oben erwähnten Schwächen zu beseitigen. Das Protokoll ist seit 1995 im Internet gebräuchlich. Die wesentlichen Ideen und Verbesserungsvorschläge stammen von Lance Cottrell (der gleichzeitig auch der Gründer und Präsident von Anonymizer Inc. ist). Die Netzwerktopologie entspricht der des Cypherpunk Remailer Netzweks - ein Netz aus gleichgestellten Servern, denen Clients gegenüberstehen. Es gibt keinen zentralen Verzeichnisserver, wodurch eine Informationsasymmetrie über die im Netz vorhandenen Remailer entsteht. Das nicht gleichverteilte Wissen über aktuelle Server kann zur Unterwanderung der Anonymität ausgenutzt werden und stellt eine der Schwächen des Systems dar. Es existiert Client-Software für verschiedene Betriebssysteme und viele Mixmaster-Server können auch Cypherpunk-Nachrichten verarbeiten, indem sie in das Mixmaster-Format 'verpackt' werden.

Typ 3: Mixminion

Mixminion ist eine Weiterentwicklung der Mixmaster Remailer, die die Möglichkeit von anonymen Antworten auf anonyme Nachrichten durch Verwendung von sogenannten Single-Use-Reply-Blocks eröffnet. Weiterhin wird die Sicherheit der Anonymität noch weiter verbessert, und es wird der Informationsasymmetrie bezüglich aktueller Remailer-Server im Netzwerk durch redundante Directory Server begegnet.

Mixmaster Remailer

Mixmaster Remailer ist ein Typ 2 Remailer (und das entsprechende Protokoll), dass inspiriert durch die Ideen und Verbesserungsvorschläge von Lance Cottrell aus dem Cypherpunk Remailer hervorgegangen ist. Die zugrunde liegenden Ideen für anonymisierende Netzwerke aus Remailern stammt von David Chaum. Ein Mixmaster-Netzwerk besteht aus einer Menge gleichgestellter Server (im Folgenden als Remailer bezeichnet) und Clients, die Nachrichten über das Netzwerk versenden und empfangen. Das Netzwerk besitzt keinen zentralen Verzeichnisserver mit der Information über alle aktuell im Netz verfügbaren Remailer, allerdings haben viele Betreiber von solchen Remailern Webseiten mit einer Liste von den ihnen bekannten Servern, deren Adressen und aktuellen Schlüsseln. Das Mixmaster Protokoll ist im Internet seit 1995 verbreitet und es existieren für verschiedene Betriebssysteme entsprechende Software. Viele Mixmaster Remailer können auch Cypherpunk Nachrichten empfangen und weitersenden bzw. zustellen. Beim Weitersenden werden solche Nachrichten in das Mixmaster-Format verpackt, um vom höheren Grad der Anonymität profitieren zu können. Vor dem endgültigen Zustellen werden sie wieder entpackt und wie gewöhnliche Cypherpunk Nachrichten behandelt.

Bei Mixmaster haben alle Packete die gleiche Größe. Bereits die Client-Software zerteilt die Nachrichten in kleine Packete von ca. 20KByte. Wenn die Nachricht kleiner ist, wird sie auf diese Größe aufgefüllt.

Die Public-Key-Verschlüsselung ist fester Bestandteil des Protokolls, so dass der Remailer nur seinen Vorgänger und Nachfolger kennt. Dabei wird jedes Packet vor dem Versenden mit öffentlichen Schlüsseln der Remailer verschlüsselt, die es auf dem Weg passiert. Dadurch legen sich um das Packet Verschlüsselungsschichten ähnlich den Schalen einer Zwiebel. Kommt ein Packet bei einem Remailer an, kann dieser mit seinem privaten Schlüssel nur die oberste Verschlüsselungsschale entfernen. Dabei werden Informationen freigelegt, wohin das Packet als nächstes weitergeleitet bzw. an welche Zieladresse es zugestellt werden soll.

Der Sender legt sich für eine Kette von Remailern fest, wobei verschiedene Packete einer Nachricht über unterschiedliche Ketten versendet werden. Dabei muss jeweils der letzte Remailer gleich sein. Er ist der einzige, der die Zuordnung der verschiedenen Packete zu einer Nachricht treffen kann. Hier wird die Nachricht wieder zusammengesetzt und an den Empfänger zugestellt.

Remailer haben einen Nachrichtenpool einstellbarer Größe, in dem eingehende Packete gesammelt und vor dem Weiterleiten zufällig umsortiert werden. Weiterhin werden Dummy Packete erzeugt bei:

  • zu wenig Datenverkehr
  • Eingang eines neuen Packets
  • beim Weitersenden von Nachrichten

Dummy Packete passieren einige wenige Remailer und werden später von anderen Mixmaster Servern zerstört.

Es ist auch möglich Kopien einer Nachricht über verschiedene Remailer Ketten zu versenden. Der letzte Remailer zerstört nach erfolgreicher Zustellung einer Kopie das Duplikat. Das Duplikat wird anhand einer Nachrichten-ID erkannt.

Remailer merken sich die ID's verarbeiteter Packete in einem Cache. Dadurch wirdden Replay Attacken begegnet (siehe auch Schwächen von Mixmaster). Ursprünglich existierte der Ansatz, die Packete mit Zeitstempeln zu versehen, um Replay Attacken verhindern zu können. Allerdings entstand damit das Problem, dass bei zu kurz in der Zukunft liegenden Zeitstempeln der Timeout-Zeitpunkt überschritten wird, noch bevor das Packet an seinem Zielort ankommt. Bei zu lange in der Zukunft liegenden Zeitstempeln werden im Netzwerk Packete, die kurz vor dem Ablauf ihres Timeouts stehen selten. Nun kann ein Angreifer folgenden Angriff fahren: er hält das Packet, deren Weg durch das Netzwerk er nachvollziehen möchte, eine Zeit lang fest und schickt es anschliessend weiter auf die Reise. Wenn später im Netzwerk ein Packet auftaucht, deren Zeitstempel kurz vor dem Timeout ist, ist die Wahrscheinlichkeit gross, dass es sich um das zu verfolgende Packet handelt.

Ein Packet kann auf seinem Weg durch das Netzwerk maximal 20 Remailer passieren.

Packetaufbau

Ein Mixmaster-Packet besteht aus einem Header, der widerum in Header Sections eingeteilt ist, und einem Body. Jede Header Section ist 512 Byte lang. Allgemein gilt für zwei beliebige Packete, dass alle ihre Felder die gleiche Größe haben. Dadurch werden die Packete anhand dieses Aspekts nicht unterscheidbar. Alle Header Sections (ausser der ersten) sowie der Body sind symmetrisch mit dem sogenannten Session Key verschlüsselt.

Mixmaster Packetaufbau.png


Ein Remailer erhält ein Packet, entschlüsselt die erste Header Section mit seinem privaten Schlüssel und entschlüsselt den encrypted header part. Die Packet-ID wird zu Duplikaterkennung herangezogen (siehe auch Replay Attacken). Der 3-DES-Key wird zur Entschlüsselung der restlichen Header Sections und des Body verwendet.

Der packet type identifier kann folgende Werte annehmen:

  • 0 - Es handelt sich um einen Zwischen-Remailer, der das Packet annehmen und an den nächsten Remailer weiterleiten soll
  • 1 - Es handelt sich um den letzten Remailer in der Kette. Das aktuelle Packet ist bereits die ganze Nachricht.
  • 2 - Es handelt sich um den letzten Remailer in der Kette. Das aktuelle Packet ist nur ein Teil der Nachricht.

message digest ist eine MD5-Checksumme des kompletten vorangegangenen Teils des Headers. Checksumme des nochfolgenden Teils ist nicht möglich, da der Header beim Passieren eines jeden Remailers nach dem Entfernen der äußeren Verschlüsselungsschale mit zufälligen Daten aufgefüllt wird, um seine Größe kostant zu halten und damit keine Rückschlüsse auf die aktuelle Position des Packets innerhalb der Remailerkette zu verraten.


packet information ist vom Inhalt des packet type identifier abhängig:

  • Handelt es sich um einen Zwischenremailer, steht hier die Adresse des nächsten Remailers.
  • Handelt es sich um den letzten Remailer in der Kette, und die Nachricht besteht nur aus diesem Packet, enthält dieses Feld die Message-ID
  • Handelt es sich um den letzten Remailer in der Kette, und die Nachricht besteht aus noch weiteren Packeten, sind hier die Packetnummer, Anzahl der Packete und die Message-ID vermerkt.

Vor dem Weitersenden (durch einen Zwischenremailer) wird die erste Header Section entfernt, alle anderen hochgeschoben und am Ende des Headers Datenmüll angehängt. Dadurch bleibt die Größe des Packets immer gleich und für einen Remailer ist seine Position innerhalb der Kette nicht erkennbar.

Vor dem Weiterleiten (durch einen Zwischenremailer) wird das Packet als Base-64 encodiert.


Es gibt drei Arten von Mixmasternachrichten:

  • E-Mails
  • Usenet Nachrichten
  • Dummy Nachrichten

Aufbau des Packetnutzinhalts (Body):

Mixmaster Packetaufbau Body.png


Das Feld destination field kann folgende Werte enthalten:

  • null - es handelt sich um eine Dummy Nachricht.
  • post - es handelt sich um eine Usenet Nachricht.
  • post:[newsgroup] - es handelt sich um eine Usenet-Nachricht.
  • [email-adress] - es handelt sich um eine E-Mail
  • leer - es handelt sich um eine E-Mail, wobei der Nutzinhalt bereits einen "To:"-Header enthält, in dem die Empfängeradresse steht (siehe Internet Message Format - RFC2822).

Das Feld user data section:

  • kann komprimiert sein (sollte nur genutzt werden, wenn der letzte Remailer es unterstützt)
  • kann Inhalt nach FRC2822 (Internet Message Format) sein (E-Mail oder Usenet-Nachricht)
  • kann beides gleichzeitig sein


Nachrichtenpool und Dummy Nachrichten

Der Remailer sammelt eingehende Packete in einem Nachrichtenpool. Ein Pooling Schema (auch dynamic pooling schema' genannt) wird zur Verhinderung der Zuordnung von eingehenden zu ausgehenden Packeten benutzt. In regelmäßigen Abständen (t) sendet der Remailer zufällige Packete aus dem Pool an andere Remailer oder an einen Endempfänger.

Mixmaster Poolkonfiguration.png


Alle t Sekunden geschieht Folgendes: 1. n := Anzahl der Packete im Pool 2. count := min(n-min, n*rate) (im Extremfall 0) 3. zufällige Auswahl count-vieler Nachrichten aus dem Pool und versendet sie

In der Standardkonfiguration ist t=15 min., min=45 Packete und rate=65%.

Mixminion

Überblick

Mixminion stellt eine Erweiterung vom Mixmaster dar, gewährt dabei Abwärtskompatibilität. Sie werden auch als Typ3-Remailer bezeichnet. Mixnetze können gemischt aus Mixmaster- sowie Mixminionservern bestehen. Beim Typwechsel muss das Paket gegeben geremixed werden.

Unterschiede zu Mixmaster

  • benutzt Directory-Server
  • benutzt TLS anstelle von SMTP
  • besitzt Key Rotation
  • bis zu 32 anstelle von 20 Hops
  • Replymessages mittels Singleusereplyblocks
  • Ununterscheidbarkeit zwischen Forward- und Replymessages

Struktursmall.jpg

Directory Server

Die Directory Server geben Auskunft über die Struktur des Netzwerkes. Sie kommunizieren über eine dedizierte Verbindung (auch: Heartbeat) über welche sie sich gegenseitig über die Stuktur des Netzwerkes aktualisieren.
Möchte ein Benutzer eine anonyme E-Mail versenden, so hat kann er von einem sich Directory Server die Information über die aktuelle Netzwerkstruktur beschaffen. Diese Beschreibnung wird von weiteren Directory Servern signiert um die Authenzität zu sichern.
Andernfalls wäre ein einfacher Angriff möglich, indem ein Angreifer nur Mix-Server listet, welcher unter seiner eigenen Kontrolle laufen. Das Ergebnis wäre die Möglichkeit, augenblicklich sämtliche Hüllen des Headers und der Nachricht dekodieren und erlangt Zugriff auf die Nachricht (falls nicht anderweitig kodiert), als auch Absender und Empfänger.
Es fällt in den Aufgabenbereich der Mixminionserver sich bei bei einem Directory Server zu authentifizieren.

Key Rotation

Während bei Mixmaster die Public Keys der einzelnen Mixserver statisch sind hat ein solcher öffentlicher Schlüssel bei Mixminion eine Gültigkeitsspanne. Die jeweils aktuellen Schlüssel werden durch die Directory Server publiziert. Läuft ein Schlüssel ab, so nimmt ein Remailer nach Ablauf einer zusätzlichen Spanne keine Pakete die mit diesem Schlüssel kodiert sind an bzw. verwirft sie. Dies führt dazu, dass die Headder-ID des Paketes aus den Caches der einzelnen Remailer gelöscht werden kann, da eine Replayattacke nun nicht mehr möglich ist.
Diese gewonnene Sicherheit geht mit Einbußen im Komfort daher und so folgt, dass Replyblöcke im nach gewisser Zeit ihre Gültigkeit verlieren und ein verspätetes Antworten auf eine anonyme Nachricht somit verhindert.


Reply Messages & Single-Use-Reply-Blocks

Single-Use-Reply-Blocks werden vom Versender ausgestellt. Sie sind zwiebelschalenförmig kodierte Header und beschreiben den Weg von einem Eintrittspunkt in das Mixnet zu eben jenem Ersteller. Aufgrund der Key-Rotation ist ihre Gültigkeit zeitlich begrenzt. Dieser Block kann einer Nachricht angehängt und beim Empfänger dazu verwendet werden zu antworten, er kann aus maximal 16 Hops bestehen, sich also nur über die ein "Leg" erstrecken.
Mixminion bietet drei verschiedene Typen von Nachrichten:

  • Forward-Messages
  • Direct-Reply
  • Anonymized Reply

Reply.jpg

Forward-Messages
Hierbei handelt es sich um simple Pakete, bei welchem dem Absender die Kontaktadresse des Gegenübers bekannt ist. Sie bieten keine Option zu antworten. Es können beide Header, H1 und H2, zur Wegbeschreibung durch das Mixnet verwendet werden. Direct-Reply
Erhält jemand eine anonyme Nachricht, welcher ein SURB beigefügt ist, kann er diesen verwenden und in das erste "Leg" seiner Antwort einfügen. Ihm ist hierbei nicht bewusst wem er Antwortet, noch wie der Weg durch das Mixnet aussieht oder wieviele Hops diese Nachricht beschreibt. Sein Kontaktmensch hat ihm diesen Block ausgestellt und nur er weiss, wie der Weg zu ihm aussieht. Anonymized-Reply
Hier wird ähnlich der Direct-Reply verfahren, mit dem Unterschied, dass der SURB in das zweite "Leg" der Nachricht fällt. Das erste "Leg" kann der Antwortende nun selbst bestimmen. Somit wird erst dem von ihm gewünschtem Weg durch das Mixnet gefolgt, ist dieser abgearbeitet wird mit dem SURB weitergearbeitet.
Das Verfahren bietet den Vorteil, dass man sich zusätzliche Sicherheit verschaffen kann, wenn man zum Beispiel dem SURB nicht traut.