Archiv

Archive for 2009-07-04

Gestapo-Archiv vs. heutige Datenbanken

2009-07-04 5 Kommentare

Heute habe ich bei Phoenix kurz einen Ausschnitt über ein Archiv mit Gestapo-Karteikarten gesehen (in der Sendung „Die Gestapo„, Teil 1/3, Samstag 4.7.2009 14:00-14:45). Wenn ich richtig gehört habe war die Rede von 1.5 Millionen Karteikarten von Verdächtigen. Ein ganzer Keller voll verfahrbarer Archivschränke (mit Rad an der Seite zum Verschieben). Wenn man einfach mal so eine Zahl hört, denkt man sich „viel“, ist aber nicht so wirklich beeindruckt. Erst wenn man so ein Archiv sieht, wird einem klar, wie viel das ist.

Als ich den Beitrag gesehen habe, ist es mir kalt den Rücken heruntergelaufen. Jedoch nicht wegen der Abscheulichkeiten, die die Gestapo unter anderem mit Hilfe dieser Akten durchgeführt hat. Sondern, weil mir schlagartig klar wurde, wie das heute aussehen würde. So ein riesiger Archivkeller ist schwer nach Einträgen mit bestimmten Kriterien zu durchsuchen wenn man nicht genau nach dem Kriterium sucht, nach dem die Karten sortiert sind. Man müsste jede Karte einzeln herausnehmen, anschauen und wieder zurücklegen. Ein abartiger Aufwand, man wundert sich, wie es überhaupt möglich war, mit sowas zu arbeiten.

Heute hingegen würde es anders aussehen. Eine microSD(HC)-Speicherkarte ist kleiner als ein Daumennagel und kann z. B. 8 GB speichern. Wieder eine leere Zahl unter der man sich schwer was vorstellen kann. Deswegen drücken wir die doch mal so aus: Das sind 8 Millionen mal ein Kilobyte. Ein Kilobyte (KB) dürfte locker ausreichen, um die Informationen auf so einer Karteikarte zu speichern, wenn man das Bild und die Fingerabdrücke weglässt, also nur den reinen Text speichert. Zum Vergleich: Dieser Artikeltext entspricht ca. 7 KB. 8 Millionen kann man sich vielleicht besser vorstellen, wenn man an „10% der deutschen Bevölkerung“ denkt. Mit etwas Kompression lässt sich das natürlich noch deutlich optimieren. Nebenbei erwähnt, dürften die Kosten für das Papier der Gestapo-„Datenbank“ die Kosten für eine der genanten Speicherkarten natürlich bei weitem übersteigen.

Die microSD-Karte habe ich nur wegen ihrer geringen Größe erwähnt. In der Praxis werden natürlich Festplatten eingesetzt, die wesentlich mehr Speicherplatz bieten. Auf einer einzigen handels- und haushaltsüblichen Festplatte mit 1,5 TB Kapazität könnte man zu jedem Bürger Deutschlands etwa 18 KB speichern. Genug für eine sehr große Menge Text oder einige Seiten Text und ein Passbild in durchaus brauchbarer Qualität!

Der wichtigste Faktor ist jedoch nicht, wie viel Archivraum eine solche Datenbank verbraucht oder welche Kosten für das Material entstehen. Eine elektronische Datenbank kann man durchsuchen. Würde sich heute jemand entscheiden, z. B. alle Nichtchristen einer Stadt beseitigen zu wollen, würde ihm der Computer des Finanzamts die gewünschten Informationen so schnell liefern wie der angeschlossene Drucker das Papier durchziehen kann. Mit Adressen, selbstverständlich.

Eine weitere Gefahr von Datenbanken ist die Verknüpfung. Bereits die Gestapo benutzte das, was in der IT heutzutage unter „relationaler Datenbank“ verstanden wird: Die Karteikarten enthalten Verweise auf weitere Akten. Wenn die Gestapo z. B. die Strafakte einer Person einsehen wollte, musste zunächst die Karteikarte herausgesucht werden, dort stand, wo man die Strafakte findet. Das funktioniert bei computerbasierten Datenbanken genauso, und bis auf den einfacheren (Massen-)Zugriff gibt es zunächst keine großen Unterschiede. Bei Papierdatenbanken konnte man jedoch nur Bezüge herstellen, die von Anfang an vorgesehen waren. Der Auftrag „finde alle Leute, die schonmal wegen Flugblättern auffällig wurden und mehr als ein inzwischen verbotenes Buch bestellt haben“ wäre ziemlich schwer umzusetzen gewesen. Heutzutage ist das eine Sache von einem Arbeitstag für eine IT-Fachkraft.

Eine weitere Gefahr ist der Diebstahl von Daten. Unbemerkt mal eben die Gestapo-Kartei zu kopieren und die Kopien mitzunehmen wäre undenkbar. Eine heutige Datenbank hingegen, auf die man einmal kurz Zugriff hat, kann innerhalb von Stunden (bei sehr umfangreichen Datenbanken) auf einen USB-Stick, eine externe Festplatte oder vielleicht sogar auf eine der erwähnten fingernagelgroßen handelsüblichen microSD-Karten kopiert werden. In vielen Fällen dürfte das nicht einmal bemerkt werden.

Die Gefahren werden dadurch verstärkt, dass heutzutage über alles und jeden Daten gespeichert werden. Webshops speichern oft nicht nur, welche Bücher man kauft, sondern auch, welche man angesehen hat, Videoportale speichern welche Videos der Nutzer angesehen hat, Social Networking-Plattformen erstellen (wie der Name schon sagt, obwohl die wenigsten sich das klar machen) Abbildungen von sozialen Netzen, also Bindungen zwischen Menschen. Einzeln mögen die Datenbanken harmlos erscheinen. Verknüpt stellen sie eine große Gefahr dar. Man stelle sich beispielsweise eine Verknüpfung der Amazon-Daten mit den StudiVZ-Daten vor – schon bekommt man nicht nur eine Antwort auf „wer beschäftigt sich mit politisch kritischen Büchern“, sondern auch „wer kennt auffällig viele Leute die sich mit solchen Büchern beschäftigen“. Und das sind noch eher harmlose Beispiele, die auf richtiges Data Mining verzichten – es geht noch deutlich schlimmer, feine (Verhaltens-)Muster, die von Menschen nie wahrgenommen würden, können recht einfach ermittelt werden.

Nicht vergessen sollte man natürlich auch, dass allein schon in den offiziell öffentlich bekannten Datenbanken der Ermittlungsbehörden unglaubliche Datenhalden schlummern, die nur darauf warten, zu beliebigen Zwecken verwendet zu werden. Was an Datenbanken bei Geheimdiensten und nicht öffentlich bekannten Datenbanken bei Ermittlungsbehörden existiert, will ich glaube ich lieber gar nicht erst wissen.

Ich denke, jetzt wird deutlich, warum gerade Informatiker und sonstige IT-affine Personen gegen viele neue, tolle Technologien sind, obwohl man das Gegenteil erwarten würde. Sie kennen die Möglichkeiten und die Gefahren nur zu gut.

Fest steht, dass wenn (nicht „falls“, leider) irgendwann eine neue Diktatur mit „Stasi 2.0“ oder „Gestapo 2.0“ entsteht, diese durch die neuen Möglichkeiten unglaublich viel schlimmer wird als alles, was wir bisher erlebt haben. Es dürfte sehr, sehr lange dauern, bis sie gebrochen werden kann. Und wenn es einmal soweit ist, wird die Nachwelt wenig von den Datenbanken erfahren. Die Stasi hat versucht, ihre Unterlagen zu vernichten, was aufgrund der gigantischen Menge zum Glück nicht gelang. Während einmal öffentliche Daten nur sehr schwer restlos zu tilgen sind, dürfte eine zentrale, geheime, nur einem beschränkten Personenkreis zugängliche Datenbank bei Bedarf innerhalb von Minuten zuverlässig zerstört sein, beispielsweise indem der Verschlüsselungsschlüssel gelöscht wird. Es werden zwar vermutlich Spuren wie die Bezeichnungen von Datenfeldern zu retten sein, vom wahren Umfang des Inhalts wird die Öffentlichkeit jedoch nie etwas mitbekommen.

UPDATE: Die Auswirkungen der neuen Technologien kann man schön im Iran beobachten. Nachdem sie zunächst eher den Demonstranten genutzt haben, wendet sich jetzt das Blatt, und die social networks nutzen den Geheimdiensten und werden Demonstranten zum Verhängnis.

BitTorrent-Mirrors einfach erstellen

2009-07-04 4 Kommentare

Heute wieder mal etwas Technisches: Manchmal steht man vor dem Problem, dass man eine oder mehrere große Dateien anbieten möchte, die dann von vielen Leuten heruntergeladen werden. Ein normaler Webserver macht das unter Umständen nicht mit oder wird zumindest langsam, weil er überlastet wird, zudem entstehen große Mengen an Traffic und damit verbundene Kosten.

Eine Alternative ist die Verbreitung der Dateien über ein Peer-to-Peer-System wie BitTorrent, bei welchem die Downloader die Daten selbst an andere Downloader weiterverteilen. Das Problem dabei ist jedoch, dass nur Nutzer mit einem BitTorrent-Client an die Dateien kommen, und es auch für den Anbieter zunächst aufwendig zu sein scheint, schließlich braucht man Tracker und Seeds – denken viele. Zudem haben torrent-Downloads den Ruf, oft langsamer als gute HTTP-Downloads zu sein, weswegen auch mit entsprechender Software ausgestattete Nutzer oft den Bittorrent-Download zugunsten des HTTP-Downloads verschmähen. Hier versuche ich zu zeigen, dass das nicht (mehr) stimmt und wie man in wenigen Minuten ohne großen Aufwand einen BitTorrent-Download zusätzlich anbieten kann.

Jeders halbwegs moderne BitTorrent-Programm („client“) unterstützt inzwischen sogenannte Webseeds, und es gibt zahlreiche offene Tracker – diese weitgehend unbeachteten Punkte lassen die oben genannten Nachteile wegfallen. Sobald man einen HTTP-Download anbietet, kann dieser auch gleichzeitig als Seed benutzt werden. Ein Nutzer, der BitTorrent nutzt, wird also nicht gegenüber Nutzern benachteiligt, die nur über HTTP herunterladen, weil ihm HTTP zusätzlich zum BitTorrent-Download gleichzeitig zur Verfügung steht. Das erhöht die Motivation der Nutzer, auf den bequemen HTTP-Download zu verzichten und den schnelleren, aber Serverressourcen schonenden BitTorrent-Download zu nutzen. Ein gesonderter Seed muss nicht angeboten werden, serverseitig wird also keine spezielle Software benötigt!

Auch einen eigenen Tracker benötigt man nicht: Es gibt zahlreiche öffentliche Tracker, welche man einfach in die .torrent-Kontrolldatei, die man erstellt, eintragen kann. Man muss die Datei nicht einmal bei den Trackern anmelden! Man kann auch mehrere Tracker eintragen, sodass ein Ausfall eines Trackers nicht weiter stört. Selbst bei einem Ausfall aller Tracker können die meisten Clients mit ihren DHT-Systemen weiter funktionieren.

Sinn macht so etwas natürlich nur bei größeren Dateien und wenn man davon ausgehen kann dass zumindest ein nennenswerter Anteil der Nutzer BitTorrent nutzen wird. Viele Internetnutzer haben schon BitTorrent-Clients installiert, um sich illegal aber kostenlos mit aktuellen Kinofilmen zu versorgen, sodass die Akzeptanz guter BitTorrent-Downloads auf Seiten mit internetaffinem Publikum überraschend gut sein dürfte. Auf jeden Fall sollte man auf den Webseed hinweisen und darauf dass BitTorrent schneller ist, also z. B. indem man zwei Download-Links anbietet „Direkt herunterladen (HTTP, langsam)“ und „Über BitTorrent herunterladen (mit WebSeed, schnell, BitTorrent-Client erforderlich)“. Insbesondere für Videoaufzeichnungen von Veranstaltungen mit netznahen Zielgruppen bietet sich so etwas an.

Nun also zur Kernfrage: Wie bietet man einen BitTorrent-Download an? Man muss eine sogenannte .torrent-Kontrolldatei („das Torrent“) erstellen und zum Download anbieten. Diese Datei wird mit einem speziellen Programm erzeugt (siehe unten), ist wenige KB groß und wird ganz normal statt bzw. neben der eigentlichen Datei zum Download angeboten. Ein Nutzer der die Datei (z. B. ein Video) herunterladen möchte, lädt nun stattdessen diese kleine .torrent-Datei. Dadurch öffnet sich sein BitTorrent-Client, welcher dann die eigentliche Datei herunterlädt.

Um Webseeds nutzen zu können, muss man die Torrent-Datei richtig erstellen. Die meisten Tools zum Erstellen von Torrents unterstützen Webseeds nicht oder nicht richtig, weswegen man etwas wählerisch sein muss. Ich stelle hier exemplarisch zwei Tools vor. Das graphische Tool ist für unerfahrene Windows-Nutzer, die nur wenige Torrents erstellen wollen vielleicht einfacher, doch wer (womöglch automatisch) viele Torrents erstellen will, ist mit dem Konsolentool besser dran – es scheint komplizierter, ist aber viel schneller. Nun denn:

Option 1: Vuze (ehemals Azureus)
Man installiere sich die kostenlos verfügbare Software „Vuze„. Dabei handelt es sich um einen sehr mächtigen, aber ressourcenfressenden BitTorrent-Client mit vielen Zusatzfunktionen. Im Hauptfenter kann man nun über „Datei->Torrent ersetellen“ den Assistenten starten. Im ersten Dialog wählt man: „Benutze einen externen Tracker“, „Füge Informationen für mehrere Tracker hinzu“ (sofern man mehrere Tracker wünscht), „Füge HTTP-Quellen hinzu“ aus und je nachdem, ob man ein Verzeichnis oder eine einzelne Datei anbieten möchte, wählt man das entsprechende Feld (in der Regel also „Datei“). Den ersten Tracker (siehe unten) trägt man bereits mit seiner Ankündigungs-URL ein.

Auf der nächsten Seite erstellt man ein neues Trackerset, gibt ihm einen Namen und trägt alle gewünschten Tracker ein. Beim nächsten Mal kann man das Set dann wiederverwenden. Auf der nächsten Seite muss man die HTTP-Adresse eintragen, wo die Datei heruntergeladen werden kann, und zwar unter „getright“, nicht „webseed“ (!). Also eine neue HTTP-Quellenkonfiguration erstellen, Namen geben, per Rechtsklick auf getright die Quelle(n) einfügen (nicht verwirren lassen wenn „Tracker“ da steht). Mehrere Adressen können eingegeben werden, wenn exakt die gleiche Datei auf mehreren Servern verfügbar ist.

Auf der nächsten Seite wählt man die Datei aus, die man zum Download anbieten möchte. Diese muss lokal gespeichert sein, wird aber nur für die Erstellung des Torrent gebraucht, danach kann man sie löschen. Auf der folgenden Seite gibt man an, wo die fertige Torrent-Datei hin soll, „Größe der Teile“ lässt man besser auf „Auto“, und stellt „Öffne den Torrent“ aus, „Privater Torrent“ aus, „Erlaube dezentralisiertes Tracken“ ein, und klickt auf fertig. Je nach Dateigröße muss man dann etwas warten und erhält die fertige Torrent-Datei. Diese lädt man nun wie eine ganz normale Datei auf den Server, verlinkt sie (siehe oben) und ist fertig! Ich weiß, dass es kompliziert klingt, aber wenn man es einmal gemacht hat geht es schneller zu machen als diesen Text zu lesen.

Option 2: mktorrent
Mit dem Konsolen-Tool „mktorrent“ kann man mit einer einzigen Befehlszeile ein Torrent erstellen. Das Problem ist, dass mktorrent leider nur als Quellcode angeboten wird, und man es somit selbst kompilieren muss (siehe unten).

Wenn mktorrent lauffähig installiert ist, wechselt man in das Verzeichnis, in dem die Datei liegt, die man anbieten möchte. Dann gibt man folgenden Befehl ein (eine Zeile), wobei man [URL] durch die HTTP-URL wo man die Datei herunterladen kann und [DATEINAMEN] durch den Namen der anzubietenden Datei ersetzt:

mktorrent -a http://open.tracker.thepiratebay.org/announce,http://www.torrent-downloads.to:2710/announce,http://denis.stalker.h3q.com:6969/announce,udp://denis.stalker.h3q.com:6969/announce,http://www.sumotracker.com/announce,http://tracker.publicbt.com:80/announce,udp://tracker.publicbt.com:80/announce,http://tracker.openbittorrent.com:80/announce,udp://tracker.openbittorrent.com:80/announce -w [URL] [DATEINAME]

Der Parameter -a gibt eine Liste der zu verwendenden Tracker an (announce-URLs, getrennt durch Kommata). Man kann mit mehreren -w Parametern auch mehrere URLs (Webseeds) angeben, von denen die Datei heruntergeladen werden kann. Für weiterführende Optionen (festlegen der Chunkgröße etc.) sei auf die Hilfe des Programms (mktorrent -h) verwiesen. Die Torrent-Datei wird direkt erstellt und kann wie oben beschrieben hochgeladen werden. Fertig! (Jeder darf raten welche Variante ich bevorzuge, ewiges Klicken durch Menüs oder eine Zeile anpassen und ausführen…)

Die Schwierigkeit bei der Verwendung von mktorrent ist, dass man es selbst kompilieren muss. Es ist zwar vergleichsweise einfach und sogar ich habe es geschafft unter Linux eine Windowsversion zu kompilieren, aber wem „kompilieren“ nichts sagt, kann ich davon nur abraten. Für die anderen tut es ein Blick in die README, ggf. muss man Funktionen deaktivieren (Threads, Benutzung einer externen OpenSSL-Libraray). Auf Anfrage kann ich notfalls meine Linux- und Windows-Binaries zur Verfügung stellen.

Welche Tracker?
Welche Tracker sollte man eintragen? Ich habe irgendwo folgende Tracker empfohlen bekommen und nutze die, wer bessere kennt, darf sie gerne nennen:

http://open.tracker.thepiratebay.org/announce
http://www.torrent-downloads.to:2710/announce
http://denis.stalker.h3q.com:6969/announce
udp://denis.stalker.h3q.com:6969/announce
http://www.sumotracker.com/announce
http://tracker.openbittorrent.com:80/announce
udp://tracker.openbittorrent.com:80/announce
http://tracker.publicbt.com:80/announce
udp://tracker.publicbt.com:80/announce

Vorteile dieser Lösung
Warum sollte man sich die Mühe machen, was hat man davon? Nun, durch BitTorrent werden die Downloads beschleunigt und der Server wird entlastet. Dadurch spart man auch oft teuren Traffic. Das Beste jedoch: Wenn der Server (z. B. wegen Überlastung) abstürzen sollte, können angefangene Downloads erfolgreich zu Ende geführt werden, sofern einer der über BitTorrent herunterladenden Nutzer die Datei komplett hat und seinen Client laufen lässt.

Falls es niemandem aufgefallen ist: Man kann auch für Dateien auf einem fremden (überlasteten) Server ein .torrent erstellen, allerdings sollte man beachten, dass wenn jeder ein eigenes Torrent erstellt, der Nutzen gering ist – nur die Clients die das selbe Torrent nutzen helfen sich gegenseitig beim Download. Wenn man es dennoch tun will, lädt man einfach die fragliche Datei herunter (ohne geht es nicht!) und verfährt wie oben angegeben. Das fertige Torrent kann man dann feierlich dem Administrator der Seite überreichen oder selbst irgendwo anbieten. (Bitte selbst informieren wie es rechtlich aussieht, wenn man das bei Seiten macht wo der Admin nicht einverstanden ist.)

Die fertigen Torrent-Dateien kann man natürlich auch bei diversen Portalen hochladen, wenn die Inhalte auch ohne die Originalwebsite auffindbar sein sollen.

Ein weiterer positiver Nebeneffekt ist, dass die Torrent-Datei einen Fingerabdruck der herunterzuladenden Datei enthält. Wenn man also die Torrent-Datei auf sicherem Weg (https, mit Signatur, …) anbietet, kann ein herunterladender Nutzer sicher sein, die richtige Datei zu erhalten, selbst wenn der Download von nicht vertrauenswürdigen Mirrors erfolgt.

Nicht ohne Grund wird übrigens quasi genau dieses BitTorrent-Verteilsystem beim Online-Rollenspiel World of Warcraft seit Jahren erfolgreich dafür eingesetzt, die oft sehr großen Updates zu verteilen.

Feedback und Erfahrungsberichte sind willkommen!