die raven homepage
Anonym im Internet mit Anon-Plattformen
Nicht anonyme Namensauflösung

Bei allen Verbindungen zwischen dem Rechner des Anwenders und den Rechnern (Servern), die nachgefragte Dienste und Inhalte anbieten, spielt das Domain Name System bzw. die Namensauflösung eine wichtige Rolle, die auch für die Anonymisierung und einen ungehinderten Zugang zu Informationsquellen im Internet relevant ist.

Was heißt das?

Wenn der Anwender über einen Mail-Server eine E-Mail versendet oder abholt, auf einen FTP-Server zugreift, um Daten herunterzuladen oder eine Webseite auf einem Web-Server aufruft, gibt er dazu den vollständigen Domainnamen des betreffenden Servers an – zum Beispiel hp.kairaven.de für die Raven Homepage.

Da aber alle Rechner im Internet über ihre IP-Adresse angesprochen werden, die auch als Absender- und Empfängerkennung in den Datenpaketen verwendet wird, alle Rechner also über ihre IP-Adresse miteinander kommunizieren, muss vor der Herstellung jeder Verbindung der Domainname in die IP-Adresse übersetzt bzw. aufgelöst werden.

Die IP-Adresse setzt sich bei der Version 4 des Internetprotokolls aus vier Zahlengruppen zusammen, wobei jede Gruppe drei Zahlen enthält und alle Gruppen durch einen Punkt voneinander getrennt sind.

Wenn der Internetnutzer in die jeweilige Internetanwendung den Domainnamen eingibt, sendet der "DNS-Client" bzw. "DNS-Resolver" – per UDP, aber auch per TCP – eine Anfrage, die den nachgefragten Domainnamen enthält, an Nameserver, die Datenbanken führen, in denen die Zuordnung zwischen Domainnamen und IP-Adresse eines Rechners gespeichert sind. Das ist primär der Nameserver des eigenen Internetzugang Providers (wenn keine "fremden" Nameserver manuell festgelegt wurden). Wenn der Nameserver des Providers die Zuordnung bereits gespeichert hat, liefert er dem DNS-Client des Internetnutzers sofort die IP-Adresse zurück. Wenn nicht, befragt der Nameserver in Sekunden weitere Nameserver bis hin zum Nameserver des Hosters bzw. Providers des Diensteanbieters.

Ist die Auflösung durchgeführt, wird der Internetanwendung des Internetnutzers über den DNS-Client in jedem Fall zuerst die übersetzte IP-Adresse mitgeteilt, bevor sie die eigentliche TCP/IP Verbindung zum Server des Diensteanbieters mit dessen IP-Adresse aufnimmt.

Nicht anonyme Namensauflösung

Nicht anonyme Namensauflösung.

Das bedeutet:

Der Internetzugangs-Provider, der die statische oder dynamische IP-Adresse im Rahmen des Vertrages an den Kunden vergibt, verfügt auch über die persönlichen Daten (Bestandsdaten) des Kunden.
Ergeht eine Überwachungsanordnung an den Provider, werden alle an der Namensauflösung beteiligten Stellen abgehört oder wird die Vergabe der IP-Adresse auf Vorrat gespeichert, kann auch die nachträgliche oder aktuelle Zuordnung zwischen einer IP-Adresse und der Identität eines Kundens hergestellt werden – über weitere Protokollierung, welche Verbindungen von dieser IP-Adresse ausgingen – also auch, welche Server ein Kunde kontaktieren wollte.

Das heißt, selbst wenn die eigentliche Verbindung nach der Namensauflösung anonym hergestellt wird, liegen diese Informationen vor. Da die Namensauflösung und die anonyme Verbindung mit minimalem Zeitunterschied auftritt, kann theoretisch auch der Zusammenhang zwischen einer anonymen Verbindung und einer vorangegangenen Namensauflösung hergestellt werden, was die Anonymität der Verbindung aufhebt. Das gilt insbesondere für Anonymisierungsdienste, die ohne oder nur mit minimaler Verzögerung der Weiterleitung von Datenpaketen arbeiten wie das bei Tor der Fall ist.

Deshalb ist eine anonyme Namensauflösung wichtige Voraussetzung für eine effektive Anonymisierung. Anonyme Namensauflösung heißt, dass der DNS-Client des Rechners bzw. die Internetanwendungen des Internetnutzers in keinster Weise direkt an der Namensauflösung beteiligt sind, sondern die Namensauflösung stellvertretend für den Internetnutzer über den jeweiligen Anonymisierungsdienst durchgeführt wird.

Anonyme Namensauflösung über Tor

Mit Tor ist es möglich, DNS Anfragen zur Auflösung von Hostnamen in IP-Adressen anonym über das Tor Netz zu leiten und von Tor Ausgangsroutern ausführen zu lassen. Für die Anfragen wird wie für alle Verbindungen zum lokalen Tor Onion Proxy das SOCKS Protokoll verwendet. Tor unterstützt dabei alle SOCKS Protokollversionen, bevozugt aber das SOCKS 4A Protokoll.

Das SOCKS Protokoll

SOCKS ist ein Protokoll (in den Versionen 4, 4A und 5), definiert im IETF RFC 1928, das von SOCKS Proxys verwendet wird, mit denen Internetnutzern bzw. deren Netzanwendungen die Nutzung verschiedener externer Internetdienste durch eine Firewall ermöglicht wird.

Bei Nutzung eines SOCKS Proxys ist für alle Netzanwendungen und -dienste der SOCKS Proxy der "Ansprechspartner", die Netzanwendungen verbinden sich immer zum SOCKS Proxy und dessen Port, der die Anfragen durch die Firewall zum Zielrechner weiterleitet und umgekehrt die Antworten an die Netzanwednungen zurückleitet. D. h. über einen Proxy und einen Kommunikationskanal können alle Anfragen geleitet werden, was Anfragen an Nameserver zur Namensauflösungen einschließt.

Die verschiedenen SOCKS Protokollversionen wirken sich auf Namensauflösungen wie folgt aus:

SOCKS 4 Proxyakzeptiert nur IP-AdressenNetzanwendung bzw. DNS-Client löst zuvor direkt Hostnamen über Nameserver auf
SOCKS 4A Proxyakzeptiert immer Hostnamen(Keine) Namensauflösung durch Netzanwendung. Hängt davon ab, wie SOCKS 4A implementiert ist
SOCKS 5 Proxyakzeptiert Hostnamen oder IP-AdressenNetzanwendungen lassen meistens Hostnamen zuvor über DNS-Client auflösen

Das bedeutet für die Nutzung von Tor zur anonymen Namensauflösung und für alle Internetanwendungen:

  • Die Internetanwendungapplikation verfügt über eine SOCKS Proxy Schnittstelle.
  • Verfügt die Internetanwendung über eine SOCKS Proxy Schnittstelle, ist nicht garantiert, dass sie so für SOCKS 4A oder 5 ausgelegt ist, dass die Namensauflösung immer über den SOCKS Proxy läuft.
  • Für Internetanwendungen ohne SOCKS Schnittstelle müssen alle ausgehenden Verbindungen durch "SOCKS-Wrapper" oder Proxy Programme mit SOCKS Schnittstelle abgefangen und durch diese an den Tor Proxy übergeben werden.
  • Wenn möglich, wird auch für die Funktionen des Betriebssystems zur Namensauflösung Tor genutzt.
  • Statt der Übergabe eines Hostnamens an die Internetanwendung kann zuvor die manuelle anonyme Auflösung über Tor erfolgen und anschließend der Internetanwendung direkt die erhaltene IP-Adresse übergeben werden.

Tor Namensauflösung bei Internetanwendungen mit SOCKS
Beispiel Firefox Webbrowser
  1. Im Fenster Verbindungs-Einstellungen (über Menü Extras / Einstellungen / Erweitert / Netzwerk / Verbindung / Einstellungen) nimmt man folgende Einträge vor:

    Firefox SOCKS Option

    Mit dieser Einstellung wird Tor von Firefox als Netzwerkproxy für alle Verbindungen und Protokolle verwendet.
  2. Über die Eingabe von about:config in die Adresseingabezeile wird die erweiterte Konfiguration aufgerufen und als Filterbegriff socks eingegeben:

    Firefox SOCKS Proxy Konfiguration

    Für den Einstellungsnamen network.proxy.socks_remote_dns wird der Wert über das Kontextmenü auf true umgeschaltet. Damit verwendet Firefox den SOCKS Proxy (in diesem Fall Tor) zur Namensauflösung.

Für die Einstellungen und zur Steuerung der Tor Nutzung bietet sich die Installation der Torbutton oder FoxyProxy Erweiterung an.

Ein weiteres Beispiel, das die Nutzung von Tor als SOCKS Proxy für den Jabber Client Psi vorstellt, findet sich im Kapitel Verbindung zum Jabber Server per Tor / Proxy der Jabber Anleitung.

Tor Namensauflösung mit SOCKS Wrapper und Proxy

Für alle Internetanwendungen, die per HTTP und HTTPS mit Webservern kommunizieren (z. B. Feedreader, Downloadmanager, Webbrowser) und eine HTTP(S) Proxy Schnittstelle aufweisen, aber keine SOCKS Schnittstelle, die sich zur anonymen Namensauflösung per Tor eignet, bieten sich lokal betriebene Proxys wie Privoxy oder Polipo an. Wird Privoxy als Proxy verwendet, nimmt Privoxy die Anfragen zur Namensauflösung entgegen und leitet sie an Tor als SOCKS 4A Proxy weiter.

Beispiel Feedreader RSSOwl
  1. In der Privoxy Konfigurationsdatei config.txt wird die Weiterleitung an Tor mit folgender Zeile aktiviert:

    forward-socks4a / localhost:9050 .
  2. In den Verbindungseinstellungen des Feedreaders wird die Verwendung von Privoxy als Proxy für alle Verbindungen festgelegt (laut Voreinstellung nimmt Privoxy Verbindungen auf Port 8118 entgegen):

    RSSOwl Proxy

Bei Internetanwendungen, die keine SOCKS oder HTTP Proxy Schnittstelle aufweisen, müssen die Verbindungen über einen SOCKS-Wrapper abgefangen und an Tor weitergeleitet werden, was als "Socksifizierung" oder "Torifizierung" bezeichnet wird.

Bei unixoiden Betriebssystemen kann man dazu socat einsetzen. Informationen dazu gibt es im Torifying software HOWTO, das auch weitere Beispiele zur Torifizierung verschiedenster Internetanwendungen enthält.

Unter Windows können für diesen Zweck die SOCKS-Wrapper FreeCap, SocksCap oder TorCap2 eingesetzt werden.

Dabei ist zu beachten das SocksCap propietär ist und eine limitierte Laufzeit hat, während FreeCap Open Source / GPL Software ist, aber nicht alle Programme mit beiden Socksapplikationen laufen.

Beispiel FreeCap
FreeCap

Das FreeCap Programm nach der Installation

FreeCap

In den Proxyeinstellungen wird Tor als Socks 5 Server eingetragen.

FreeCap

Wichtig ist die Option, dass auch die Namensauflösung remote erfolgt, sprich durch Tor.

FreeCap

Ein Programm wird schnell durch die Anlage eines neuen Profils in FreeCap eingebunden. Hier als Beispiel dPilot, eine einfache Oberfläche für das Downloadprogramm wget.

FreeCap

Zukünftig wird dPilot direkt aus FreeCap heraus gestartet und präsentiert wie bisher die gewohnte Programmoberfläche:

FreeCap

FreeCap

Mit eingeschaltetem Log sieht man im FreeCap Fenster, dass für den Datenverkehr Tor auf localhost:9050 verwendet und eine Verbindung über Tor zum Downloadserver hergestellt wurde.
Beispiel TorCap2
TorCap2

Nach dem Entpacken der TorCap2.exe und TorCap2.dll wird in der TorCap2 GUI Adresse und Port zum Tor Proxy sowie die Anwendung eingetragen.
Tor Namensauflösung für das Betriebssystem

Zusätzlich zur anonymen Namensauflösung über Tor, die an den Internetanwendungen ansetzt, kann man auch die Funktionen des jeweiligen Betriebssystems zur Namensauflösung so ändern, dass zumindest zur Namensauflösung per UDP Tor verwendet wird.

Dazu wird ein lokaler DNS Proxy installiert, der vom Betriebssystem als primärer Nameserver angesprochen wird. Der DNS Proxy fängt alle Anfragen zur Namensauflösung per UDP auf Port 53 ab und leitet sie an den Tor Onion Proxy weiter.

Als sekundären Nameserver, der verwendet wird, wenn die Namensauflösung über den primären Nameserver ausfällt und den man ebenfalls in der Konfiguration der Netzwerkschnittstelle bzw. eines Hardware-Routers angeben kann, bietet sich ein frei zugänglicher, alternativer Nameserver an, der nicht zum Netzwerk des eigenen Internetproviders gehört und möglichst nicht im Herkunftsland des Anwenders steht.

Anlässlich der Einführung der Zensur und Überwachung der WWW-Nutzung in Deutschland im Frühjahr 2009 hatte der FoeBuD e. V. den freien Nameserver mit der IP-Adresse 85.214.73.63 geschaltet. Auch der CCC betreibt einen freien Nameserver, dessen Adresse neben weiteren Informationen zur Rolle der Namensauflösung für Zensur und Überwachung in der Anleitung zur Konfiguration der DNS-Einstellungen enthalten ist.

Der verwendete Nameserver sollten auf jeden Fall vertrauenswürdig sein, da Betreiber von Nameservern nicht nur die Zugriffe protokollieren, sondern auch Manipulationen durchführen können, die zur Blockierung des Zugangs zum Zielrechner oder Umleitung auf falsche Zielrechner beitragen. Die gleichen Manipulationen können aber auch von böswilligen Tor Ausgangsroutern durchgeführt werden, wenn die Namensauflösung vollständig über Tor läuft.

Werden unter Windows neben dem primären weitere Nameserver verwendet, benutzen sie auch verschiedene Internetanwendungen. Bei Windows ist deshalb eine anonyme Namensauflösung nicht garantiert, wenn weitere Nameserver eingetragen sind. Will man sicherstellen, dass ausschließlich der lokale DNS Proxy bzw. Tor verwendet wird, sollte man nur ihn als primären Nameserver verwenden.

Damit ist man aber auch auf die ständige und zuverlässige Funktionalität des lokalen DNS Proxy und der Namensauflösung über Tor abhängig. Fällt diese aus, kommt keine Namensauflösung zustande und damit auch keine Verbindung zum Zielrechner.

DNS Proxy dns-proxy-tor

dns-proxy-tor ist ein mit der Programmiersprache Perl geschriebener "Nameserver", der nur die oben beschriebene Aufgabe wahrnimmt.

Installation unter Windows
  1. Aktuelle Perlversion herunterladen und als Administrator installieren. Dabei bestätigen, dass Perl in den Suchpfad aufgenommen wird.
  2. Windows neu booten
  3. Das trans-proxy-tor Ziparchiv herunterladen und in ein eigenes Verzeichnis entpacken
  4. Mit Adminrechten dns-proxy-tor als Systemdienst aktivieren:
    1. Eingabeaufforderung (cmd) öffnen
    2. In das LW:\trans-proxy-tor-vesion\win32 Verzeichnis wechseln
    3. Das Kommando dns-proxy-tor -install absetzen
      (Deinstallation mit dns-proxy-tor -uninstall)
  5. In den "Internetprotokoll (TCP/IP)" Optionen zur Netzwerkverbindung 127.0.0.1 als "Bevorzugten DNS-Server" einsetzen:

    Tor DNS

Linux und *BSD Benutzer können darüber hinaus den im Archiv enthaltenen trans-proxy-tor Proxy in Verbindung mit iptables bzw. Paketfilter mit dns-proxy-tor nutzen. Erläuterung und Anwendungsbeispiel finden sich in dem Beitrag Von Kopf bis Fuß auf Tor eingestellt von Fabian Keil.

Der Raven Wiki Beitrag Namensauflösung ohne Zensur und Überwachung enthält Anregungen, wie man die Namensauflösung über Tor und weitere Nameserver in Verbindung mit pdnsd oder bind umsetzt.

Links
TorDNS

TorDNS ist ein weiterer lokaler Tor DNS Proxy für Windows. Einmal in der "localhost" Variante installiert, lauscht TorDNS auf der internen IP-Adresse 127.1.2.2 und Port 53 auf UDP Anfragen zur Namensauflösung. Die gleiche IP-Adresse wird als "bevorzugter DNS-Server" für die Netzwerkschnittstelle in der Konfiguration der Netzwerkverbindung festgelegt. Danach wird bei gestartetem Tor Onion Proxy jede Anfrage zur Namensauflösung per UDP, die von Anwendungen ausgehen, von TorDNS abgefangen, dem Tor Onion Proxy auf Port 9050 übergeben und von einem Tor Exit Node anonym ausgeführt. Die IP-Adressen bereits aufgelöster Hostnamen speichert TorDNS während seiner Laufzeit in einem eigenen Zwischenspeicher.

TorDNS in Betrieb nehmen
  1. Tor in der Konfigurationsdatei torrc auf 127.0.0.1:9050 für SOCKS Verbindungen festlegen:

    SocksPort 9050
    SocksListenAddress 127.0.0.1
  2. Das TorDNS ZIP-Archiv in ein eigenes Programmverzeichnis für TorDNS entpacken
  3. Über Systemsteuerung / Verwaltung / Dienste mit Administratorrechten den DNS-Client Dienst stoppen und entweder deaktivieren oder auf manuell setzen. Wird eine statische IP-Adresse verwendet, kann auch der DHCP-Client Dienst abgeschaltet werden:

    Windows DNS Dienst
  4. Über Systemsteuerung / Netzwerkverbindungen die Eigenschaften der entsprechenden Verbindungsverknüpfung aufrufen und TorDNS als "bevorzugten DNS-Server" festlegen:

    TorDNS Konfiguration

    Eigenschaften des Internetprotokolls (TCP/IP) aufrufen:

    Tor als DNS Server in Netzwerkkonfiguration

    "127.1.2.2" als bevorzugten DNS-Server eintragen.

Nach dem Tor und anschließend TorDNS gestartet wurde, kann man im TorDNS Fenster, das man über das Systray-Icon von TorDNS aufruft, direkte Anfragen zur Namensauflösung verfolgen, die durch TorDNS umgesetzt wurden:

TorDNS Logfenster

Tor und TorDNS kann man zum Beispiel automatisch über folgende einfache Batchdatei mit Verknüpfung im Autostart Ordner starten lassen:

@echo off
start "Tor" /d LW:\tor LW:\tor\tor.exe -f LW:\pfad\torrc
start /d LW:\tordns /b LW:\tordns\tordns.exe
exit
Links
Manuelle Tor Namensauflösung

Dazu verwendet man das Tor-Programm tor-resolve bzw. tor-resolve.exe unter Windows.

Syntax:

tor-resolve / tor-resolve.exe -v hostname [sockshost:socksport]
[sockshost:socksport] kann wegfallen, wenn Tor standardmäßig auf 127.0.0.1:9050 läuft

Beispiel:

tor-resolve / tor_resolve.exe -v www.torproject.org

Oct 27 07:45:42.687 [debug] main(): defaulting to localhost:9050
86.59.21.36

Anschließend übergibt man der Anwendung direkt die IP Adresse.

Überprüfung mit Netzwerk- bzw. Paket-Sniffer

Wer sichergehen und genauer überprüfen will, welche Daten und insbesondere Anfragen zur Namensauflösung über die Netzwerkschnittstelle abgehen, kann einen Paket-Sniffer wie Wireshark installieren.

Auf der Homepage wird unter Verifying Downloads eine OpenPGP signierte Datei angeboten, die Prüfsummen der Programmdateien enthält. Die Signatur und die Prüfsummen sollten vor der Installation mit GnuPG überprüft werden.

Der Wikipedia Artikel zu Wireshark enthält Links zu Wireshark Anleitungen.

Mit Sniffern kann man alle Datenpakete mitprotokollieren, die über die Netzwerkschnittstelle abgehen und eingehen. Nach oder während der Protokollierung werden über Filter die Datenpakete hervorgehoben, die von Interesse sind.

Wireshark

Oben sieht man den Datenverkehr über eine Realtek Netzwerkkarte, der von Wireshark mitgeschnitten wurde. Ein Filter, der die TCP und UDP Datenpakete mit Quell- und Zielport 53 für Anfragen zur Namensauflösung hervorhebt, gibt wieder, welcher und ob ein Nameserver von einem Internetprogramm zur direkten Namensauflösung ohne Tor verwendet wurde (in diesem Fall der OpenDNS Namserver 208.67.222.222).

[ Inhalt | Top | Zurück | Weiter ]