Um Sperrlisten sichtbar zu machen habe ich mir heute mal die
Top 13 der Internet Blackholes / Internet Enemies,
http://www.rsf.org/List-of-the-13-Internet-enemies.html
angesehen.
Das Suchen nach DNS-Servern auf www.ungefiltert-surfen.de lieferte ein
mageres Ergebnis: Nur von rund der Hälfte sind funktionierende DNS-Server
bekannt und zu diesen Ländern im Mittel nur 1,5 DNS-Server. Die Suche mit Google und
Metager half nur wenig weiter; nur zu Burma/Myanmar war ein funktioierender
DNS-Sever auffindbar. Als funktionierend wurden die Server gewertet, die
zumindest ibm.com auflösen konnten.
Weil jedes Land eine Top-Level-Domain hat, findet man dazu auch DNS-Server bei
http://www.iana.org/domains/root/db/ und auch bei
http://www.issociate.de/tlds_s.php .
Allerdings lösen diese Server nur für die betreffende TLD auf; die dort
gelisteten DNS-Server eignen sich leider nicht zur Überprüfung der DNS-Zensur.
Wie man in den Ländern die aktuell verwendeten Nameserver/DNS-Server ermitteln kann habe
ich deshalb auf einer eigenen Seite
hier
zusammengefaßt.
Hier ist die Übersicht über der Ergebnisse vom Skript cens_dns_check1.sh:
| Land | funktioniernde DNS-Server von www.ungefiltert-surfen.de, google | x von 9654 Domains (von list2.txt) werden zensiert |
|---|---|---|
| Ägypten | 213.131.65.24 | 124 |
| Burma/Myanmar | -, 203.81.162.45 | 161 |
| China | 218.30.26.68, 202.102.24.35 | 227, 4037 |
| Iran | 217.218.155.105 | 141 |
| Kuba | -, - | - |
| Nordkorea | -, - | - |
| Saudi-Arabien | 212.76.68.201, 212.76.68.200 | 92, 103 |
| Syrien | -, - | - |
| Tunesien | 193.95.122.40, 193.95.93.77 | 95, 160 |
| Turkmenistan | -, - | - |
| Usbekistan | 195.158.7.98 | 1280 |
| Vietnam | -, - | - |
| Weißrussland | -, - | - |
| Land | Filtering Scoring |
|---|---|
| Ägypten | 0 |
| Burma/Myanmar | 13 |
| China | 14 |
| Iran | 15 |
| Kuba | - (schätzungsweise 15) |
| Nordkorea | - (schätzungsweise 15) |
| Saudi-Arabien | 13 |
| Syrien | 12 |
| Tunesien | 14 |
| Turkmenistan | - (schätzungsweise 15) |
| Usbekistan | 7 |
| Vietnam | 9 |
| Weißrussland | 2 |
Getestet habe ich nun auch die weißrussichen DNS-Server ns1.bn.by und ns2.bn.by, aber mit 221 bzw. 243 der 9654 Domains (von list2.txt) wird praktisch nichts zensiert.
Die deutschen Provider blocken Anfragen an ihre Nameserver zunehmend: Von den
15 T-Online-Servern, die auf
http://www.stanar.de/
gelistet sind,
beantwortet keiner Anfragen die nicht aus einem zu T-Online
gehörenden IP-Adress-Bereich stammen. Bei den anderen Providern sieht es
(noch) anders aus: Stichproben bei Arcor und Versatel zeigen das die Nameserver
erreichbar sind und z. B. die IPs zu ibm.com liefern.
Gegen das Problem des Blockens von Anfragen, die aus anderen IP-Adress-
Bereichen stammen gibt es mehrere Lösungen:
A) Man kann sich zu einem Anschluß des betreffenden Providers begeben und
dessen Nameserver testen. Hier hilft ein Bekannter beim betreffenden Provider
oder auch ein Internet-Cafe beim betreffenden Provider,
z. B. mit WLAN um mit dem eigenen Laptop zu
testen, oder auch ein offenes WLAN, mit einem Zugang beim betreffenden
Provider.
B) Man kann auf einem PC eines Kunden des betreffenden Providers einen
Nameserver installieren, der die DNS-Anfragen nur durchleitet (caching-only).
Damit kann man über diesen Nameserver den Nameserver des Providers erreichen.
Mit kostenlosen Diensten wie DynDNS oder DNS2GO stören hierbeich die
meist dynamischen IP-Nummern der Inernet-Zugänge nicht. Mit mehreren PCs
gleichzeitig sind auch Disconnets oder länger abgeschaltete PCs kein Problem.
Zur Sicherheit kann man für die Nameserver auf den PCs auch andere Ports als
53 verwenden; beispielsweise 1337.
Juristisch sind alle Lösungen problemlos: DNS-Einträge sind öffentlich, wie
Einträge im Telefonbuch, und
die wenigen Anfragen von Externen gehen im statistischen Rauschen unter.
Heute habe ich die deutlich zensierenden Server aus der ersten Liste oben,
also 195.158.7.98 (Usbekistan) und 202.102.24.35 (China) getestet, aber
praktisch keine Zensur gefunden: Es zeigten sich nur 91 bzw. 219 Unterschiede,
bei 9654 Einträgen in list2.txt.
Diese Unterschiede sind sehr gering, auch weil einige Seiten so gehostet sind, dass sie je
nach geographischer Region auf andere IPs verweisen und weil weit auseinander liegende
Nameserver verwendet wurden.
Die DNS-Zensur versteckt sich offenbar immer besser und erfordert zunehmend ein Ermitteln vor Ort,
das man aber auch mit einem dortigen Root-Server vornehmen kann.
Nebenbei habe ich auch die Redundanz der Nameserver-Antworten untersucht, denn
die Anzahl der Unterschiede zwischen einem zensierten und einem unzensierten Nameserver
ist zwar aussagekräftig, aber hat zwei Nachteile: a) setzt sie einen unzensierten Nameserver zum
Vergleichen voraus und hängt etwas von diesem ab und c) hängt sie von den Standorten der Nameserver ab,
weil einige Seiten so gehostet sind, dass sie je nach geographischer Region auf andere IPs verweisen.
Sinnvoll ist daher eine zweite Kennzahl, mit der man auch mit nur einem Nameserver sofort einschätzen
kann wie stark er zensiert, unabhängig vom Standort.
Eine mögliche Kennzahl ist die Redundanz der Antworten: Zu zensierten Einträgen liefern die Nameserver
sehr ähnliche Antworten, normalerweise die gleiche Antwort, und dies bedeutet mehr Redundanz.
Dies bedeutet das die Nameserver-Antworten weniger Entropie enthalten.
Als einfache Maßzahl für die Redundanz verwende ich deshalb nicht die byteweise Entropie sondern
einfach:
Redundanz = Anzahl der Duplikate / Gesamtzahl
kurz
R = y/x
und die Angabe als Prozent-Zahl, die einen Wert von 0 bis 100 anehmen
kann, wobei kleiner besser ist.
Der Wert ist in der Praxis immer deutlich größer als 0, unter Anderem weil die
Zensur-Listen häufig mehrere Seiten einer Domain aufgelistet
haben und so auf die gleich IP verweisen, weil verschiedene
Domains sich nicht selten auf dem gleichen Web-Server befinden,
also nur Aliase sind, und weil auf Servern meist mehrere Domains
gehostet werden, so das auch ganz verschiedene Domains manchmal
die gleiche IP haben (Virtual hosting).
Die Anwendung der Redundanz erfolgt mit einem Programm zum Auffinden von Duplikaten, z. B. dupmerge, in dem Verzeichnis,
in dem die Nameserver-Antworten vom Skript abgelegt werden (Verzeichnis ./dns/backup/<Nameserver-Name/IP>).
Beim dupmerge muß man beachten das die Anzahl der gefundenen Duplikate
im nodo-Modus (noch) nicht stimmt; das dupmerge muß die Duplikate (hart) verlinken um die Anzahl korrekt
anzuzeigen. Allerdings verlinkt dupmerge keine Dateien der Größe 0, also leere
Nameserver-Antworten und der so ermittelte Wert ist mehr oder minder kleiner
als R. Trotzdem sollte die so in erster Näherung ermittelte Redundanz
ausreichen. Wenn nicht, kann man mittels
find ./dns/backup/<Nameserver-Name/IP> -type f -size 0 | wc -l
auch die leeren Nameserver-Antworten hinzuzählen.
Deshalb bezeichne ich im Folgenden die Redundanzen als einfache bzw. komplette
Redundanz.
Zum Bewerten der Redundanz benötigt man in jedem Fall genau genommen indirekt
doch einen unzensierten Nameserver, mit
dem die Redundanz ohne Zensur gemessen wurde, aber da sich die Redundanz nur
langsam mit der Zeit ändert,
kann man den Vergleichswert auch Wochen vorher woanders ermitteln.
Nach dieser Vorarbeit benötigt man aber wirklich nur noch einen Nameserver.
Bei meinem lokalen forwarding-only (auch caching-only genannt) Nameserver,
mit
forwarders {
87.118.100.175 port 110;
85.25.251.254 port 110;
94.75.228.29 port 110;
85.25.149.144 port 110;
87.106.37.196 port 110;
};
beträgt die einfache Redundanz der Antworten zur list2.txt
48,71 %, während sie beim chinesischen Nameserver 202.102.24.35 mit 53,05 %
und beim Usbekischen Nameserver 195.158.7.98 mit 52,83 % deutlich höher ist.
Ein weiterer Grund für diese Redundanz-Messung ist das der Vergleich der
Namensauflösungen eine Fehlerrate von um 1 % hat: Bei einer Liste von 10.000 Domains kann man die
100 Fehlmeldungen noch in wenigen Minuten überprüfen durch Nachsehen wohin denn aufgelöst wird
(mit dem Browser), aber mit einer Liste nahezu aller Domains, aufgerundet 200 Millionen, ist das
nicht mehr möglich; eine Zensurliste von 10.000 Einträgen würde bei den 2.000.000 normalen Unterschieden
bei der Namensauflösung quasi im statistischen
Rauschen verschwinden. Der Vergleich der Namensauflösungen allein skaliert linear und damit zu schlecht
für sehr viele Domains.
Der Vergleich der Namensauflösungen ist aber bei sehr vielen Domains nicht
nutzlos zum Auffinden von zensierten Domains, denn damit kann eine sehr
schnelle Vorauswahl getroffen werden.
Nach dieser Vorauswahl können die Domains dann genauer/aufwendiger untersucht werden
auf Anzeichen von Zensur, z. B. durch Downloaden der Startseite der
betreffenden Domains und Auswerten der Texte, Bilder und Links auf Anzeichen
von Zensur.
Inzwischen fand ich heraus das das Suchen nach "<Landeshauptstadt> Nameserver"
deutlich effizienter ist als nach "<Land> Nameserver".
Allerdings hilft das
meist nur wenig weiter: Die Suche nach "Damascus Nameserver" lieferte von der
ersten Seite der Treffer bei Google zwar
dns1.net.sy
dns2.net.sy
ns1.scs-net.org
ns2.scs-net.org
ns5.syrianobles.net
ns6.syrianobles.net
und die Nameserver sind noch aktiv, aber keiner von denen löst ibm.com auf.
Zumindest kann man mit einer gezielten Suche mit einer Suchmaschine
wie Google oder einer Meta-Suchmaschine wie Metager für die
allermeisten Länder Nameserver finden, auch wenn die Nameserver nicht auf
Anfragen aus dem Ausland antworten.
Wie ich mir im Iran kürzlich ansehen konnte, sind die DNS-Server dort
unzensiert, auch wenn man sie über ein offenes WLAN eines
Einheimischen abfragt!
Das erklärt wieso viele in stark zensierenden Staaten stehende
DNS-Server praktisch keine Zensur zeigen.
Die Zensur geschieht dort stattdessen über (Core-)Router mittels Deep
Packet Inspection (kurz DPI) und zwar mal durch
endloses Verzögern des Verbindungsaufbaus, was einen Timeout-Fehler
bewirkt und mal durch "Zensiert-Seiten", meist in Farsi (Persisch), aber einige
wenige auch in Englisch.
Bei der Zensur im Internet ist es daher zu stark vereinfachend nur
Zensur-Eskalationsstufen zu verwenden weil die Zensur auch technisch
nicht einfach mit Stufen (Zahlen) beschrieben werden kann.
Stattdessen braucht man zumindest eine Matrix, in der man zu jeder
Zensur-Art (DNS-Zensur, DPI, ...) eine Zensur-Eskalationsstufen verwenden kann.
Deshalb habe ich ein Skript angefangen, das auch DPI erkennt,
durch Downloaden einzelner Seiten und Testen ob sie zensiert sind,
also Anzeichen von Zensur zeigen.
Aber auch damit ist die Zensur über das Internet nur teilweise
sichtbar, denn zur Zensur gehört auch die Überwachung des Traffics auf
"Verdächtiges" und sowas wie ein Postgeheimnis gibt es in stark
zensierenden Staaten wie dem Iran praktisch nicht. Hinzu kommt,
das in solchen Staaten auch Datenschutz z. B. durch Kryptografie oder
Steganografie fast immer illegal ist.
Allerdings ist das rein theoretisch, denn richtig angewandte moderne
Kryptografie wie Steganografie ist nicht
nachweisbar und ein Verbot daher praktisch sinnlos.
Zensiert wird vom Iran ziemlich viel: Sogar ca. ein Drittel der Nachrichten auf
web.de, auch wenn es keinen Bezug zum Iran, Sex oder auch nur irgendwie
anstößiges gibt! Offenbar ist ein Bestandteil der Zensur auch eine
fehlerträchtige Deep Packet Inspection.
Man kann diese Zensur aber relativ leicht und vor allem kostenlos
umgehen, z. B. mit Torpark.
Im Gegensatz zum Iran betreibt China zusätzlich zur Zensur mit
Deep Packet Inspection auch DNS-Zensur:
http://cyber.law.harvard.edu/filtering/china/appendix-tech.html#dns
und daher könnt auch im Iran in Zukunft DNS-Zensur eingesetzt
werden, die aber schon mit unzensierten DNS-Servern,
insbesondere auf anderen Ports als dem Standard-Port (53) meist
problemlos umgangen werden kann.
Die Zensur mit Deep Packet Inspection wird auch von anderen Stellen bestätigt,
beispielsweise im Vortrag "Eine Zensur findet statt":
http://anonymitaet-im-inter.net/wiki/_media/zensur-findet-statt-ds.pdf,
sowie im AnonWiki:
http://anonymitaet-im-inter.net/wiki/zensur.
Pikant dabei ist auch, das die Exporte der verwendeten Hard- und Software
für die Zensur im Iran fast immer illegal ist, weil damit
gegen Embargos verstoßen wird. Beispielsweise dürfen nicht einmal
aktuelle PC-Prozessoren wie gewöhnliche AMD Opterons (von denen
ich in meinem PC vier habe) in den Iran exportiert werden:
http://www.computerwoche.de/hardware/data-center-server/1898552/.
Die kurze Auswertung der gesammelten Daten ergab einige DNS-Server:
In Teheran: 80.253.128.5 und 80.253.128.29 = fe0.svr.NS2.HFT.azadnet.net
In Isfahan u. Shiraz: 4.2.2.4 = vnsc-pri.sys.gtei.net
Khomeni Airport: 62.220.100.202 = ns2.takta.net
Bei diesen IPs, wie auch den IPs der Internetzugänge gibt es keine
besondere Auffälligkeit bis auf das whois (in Deutschland) zum 4.2.2.4
die Firma Level 3 Communications, Inc. in USA anzeigt.
Zudem zeigt in Deutschland ein nslookup der Nameserver-IPs den
gleichen Namen, bis auf den für 4.2.2.4: In D wird
vnsc-pri-dsl.genuity.net (laut whois ebenfalls in USA) angezeigt.