Der Bundesfilter durchdekliniert
Posted by Jesco Freund at Feb. 16, 2009 6:34 p.m.
Nachdem André schon einen Beitrag zum Thema verfasst hatte, wollte ich eigentlich Zurückhaltung üben und mich nicht weiter darüber auslassen (das schadet nur meinem Blutdruck und anschließend den Leberwerten…). Allerdings geistert in meinem Hirn schon eine ganze Weile die Idee herum, das Thema einmal ganz sachlich und nüchtern von der technischen Seite aufzubereiten – was ich mit diesem ersten (und hoffentlich auch gleichzeitig letzten) Artikel in Angriff nehme.
Um es gleich vorweg zu nehmen: Mir geht es nicht um die Verharmlosung von Tat und Tätern; Kinderpornographie ist ein grausames Verbrechen, die Opfer oft Zeit ihres Lebens gezeichnet. Ich habe nicht das geringste Verständnis für solche Taten (und noch weniger für Täter, die aus kommerziellem Interesse handeln), und meinethalben können das Mindest- und Höchststrafmaß gerne nach oben angepasst werden.
Bestandsaufnahme
Bundesfamilienministerin von der Leyen möchte die (bereits heute strafbare, siehe §§ 184b, 184c StGB) Beschaffung und Verbreitung von kinderpornographischen Schriften über das Internet unterbinden oder zumindest erschweren. Insbesondere wird hierbei angestrebt, kommerziellen Verwertern die Einkommensgrundlage zu entziehen, indem der Zugriff auf ihre (kostenpflichtigen) Seiten unterbunden wird.
Dazu sollen die deutschen Provider eine Infrastruktur aufbauen, die es ermöglicht, den Zugriff auf bestimmte URLs technisch zu unterbinden. Die Liste der zu sperrenden URLs wird von der Bundesregierung vorgegeben; allerdings ist mir derzeit noch nicht bekannt, welches Ministerium hier die Federführung hat und welche Behörden die Liste „füttern“ dürfen.
Technische Grundlagen
Im folgenden gehe ich davon aus, dass die illegale Verbreitung vornehmlich über das HTTP-Protokoll stattfindet, und genau diese wäre auch Ziel der oben beschriebenen Filterung. Andere Protokolle mit zentraler Infrastruktur sind zwar ebenfalls denkbar (etwa FTP), aber wenig wahrscheinlich, wenn ein kommerzieller Hintergrund unterstellt wird. Eine dezentrale Verbreitung findet mit an Sicherheit grenzender Wahrscheinlichkeit ebenfalls statt (etwa per E-Mail); hiergegen lässt sich mit zentral gesteuerten Filtern aber kaum angehen.
Konzentrieren wir uns also auf HTTP. Ein URL für das HTTP-Protokoll besteht aus der Protokollangabe, dem Hostnamen, optional dem TCP-Port und der Anfrage (letztere kann noch in Pfad und Query unterteilt werden, aber diese Unterscheidung ist in desem Kontext irrelevant). Ein Request an einen HTTP-Server läuft so ab, dass der Client zunächst den Hostnamen in eine IP-Adresse übersetzt (z. B. per DNS-Abfrage), anschließend eine TCP-Verbindung zum Zielport auf dem ermittelten Host aufbaut und nach erfolgtem Handshake dem Server den Anfrage-Teil des URL übermittelt.
Wie filtert man denn jetzt?
Übersetzt man das eben geschriebene in Netzwerk-Sprech, liest sich das so: Die Abbildung eines URL für das HTTP-Protokoll erstreckt sich über die OSI-Schichten drei bis sieben. Während Hostname, Port und Transportprotokoll in die Schichten 3 und 4 gehören, ist der Anfrage-Teil erst in Layer 7 abgebildet.
Filterung auf Layer 3 und 4 (IP-Adresse, Transportprotokoll und Port) ist technisch gesehen ein relativ geringes Problem. So gut wie jeder Router beherrscht diese Technik oder ließe sich damit nachrüsten. Unter Ressourcengesichtspunkten ist ein solcher Filter recht günstig, da nur numerische Vergleiche durchgeführt werden müssen; auch bliebe der über eine Verbindung ausgetauschte Inhalt unangetastet.
Dummerweise greift diese weit verbreitete Filtertechnik („Paketfilter“) zu kurz, da der Anfrage-Teil eines HTTP-URL nicht mit ausgewertet werden kann. Nicht so schlimm, mag sich mancher denken – das betrifft ja nur weitere Unterseiten der ohnehin illegalen Kinderporno-Website. Doch stimmt das so?
Das Problem liegt im Massenhosting von Webseiten (Stichwort „virtueller Host“). Dabei verweist die DNS-Auflösung vieler verschiedener Hostnamen auf ein und dieselbe IP-Adresse. Erst der HTTP-Server, der unter dieser IP-Adresse erreichbar ist, entscheidet anhand der im Layer-7-Protokoll übertragenen Informationen, welcher virtuelle Host den übergebenen Anfrage-Teil weiterverarbeiten und eine passende Antwort generieren soll. Dieses Vorgehen ist bei großen Webhosting-Anbietern absolut üblich; es spart IP-Adressen und Rechner-Ressourcen. Würde auf Layer 3-4 gefiltert, würde der gesamte Server unerreichbar und somit u. U. tausende legaler Seiten gleich mit.
Die Lösung: Transparente Proxies
Technisch lässt sich das Dilemma also nur lösen, wenn der Anfrage-Teil aus Layer 7 mit in den Filter einbezogen wird. Ein Paketfilter reicht dazu nicht mehr aus; es muss ein anderer Filtertyp zum Einsatz kommen: der (transparente) Proxy (transparent bedeutet, dass der Proxy automatisch von einem Router zwischengeschaltet wird, ohne dass der Endanwender die Konfiguration seines Clients dafür ändern müsste).
Ein HTTP-Proxy ist technisch ohne weiteres in der Lage, alle URL-Bestandteile bei der Filterung zu berücksichtigen. Allerdings ist eine Filterung auf Layer 7 sehr viel teurer als auf Layer 3 und 4, da hierfür Textmustervergleiche durchgeführt werden müssen, was einen deutlich höheren Rechenaufwand und Speicherverbrauch impliziert, als dies bei numerischen Vergleichen der Fall wäre.
Aus diesem Grund setzt man in der Regel einen Layer 3-4-Filter ein, der anhand der angewählten Portnummer entscheidet, ob eine Verbindung an den transparenten Proxy oder direkt an den Zielhost weitergeleitet wird. Dabei muss sich der Admin des Filters allerdings darauf verlassen, dass sich die Dienstebetreiber an die well known ports halten (also z. B. 80 für HTTP, 25 für SMTP, etc.). Kommen die Kinderporno-Händler auf die Idee, ihren Webserver auf einem anderen Port lauschen zu lassen (das ließe sich wieder in einschlägigen Boards kommunizieren), müsste der Proxy tatsächlich jeglichen Verkehr vorgelegt bekommen, um dann zu entscheiden, ob es sich hierbei überhaupt um eine HTTP-Verbindung handelt oder nicht (völlig unrealistisch angesichts des enormen Ressourcenbedarfs und der zu erwartenden Anfälligkeit einer solchen Erkennungsheuristik).
Darüber hinaus muss ein Proxy nicht nur einmalig bei Verbindungsaufbau filtern, sondern die komplette Abwicklung des Requests übernehmen, also auch die Antwort vom angefragten Server entgegennehmen und diese an den Client zurücksenden. Damit erhält ein solcher Filter – anders als ein reiner Layer 3-4-Filter – vollen Zugriff auf den Inhalt der Kommunikation und damit auf deutlich mehr, als zur Filterung einer bestimmten URL eigentlich notwenig wäre.
Die Konsequenz: Gläsernes Surfen
Bei statischen Seiten lässt sich daraus „nur“ ableiten, welcher Netzteilnehmer welche Inhalte abgerufen hat – diese Information ließe sich auch bereits aus dem URL-Aufruf rekonstruieren. Kommen aber dynamische Inhalte ins Spiel, erhält der Filter auch Zugriff auf individuell eingegebenen Content (etwa Foren-Postings, E-Mails in einer Webmail-Oberfläche, etc.), was aus Datenschutzsicht zumindest bedenklich ist.
Denn gehen wir einmal davon aus, dass besagte Proxies tatsächlich nur zur URL-Filterung vorgesehen sind, bleibt immer noch die Tatsache, dass ein solcher Proxy POST- und GET-Daten (eben jene aus Eingabeformularen, auch Benutzernamen und Kennwörter) zu neuen Requests umformen muss. Dazu müssen diese Daten zumindest temporär im Speicher gehalten werden. Selbst wenn der Betreiber der Filter-Proxies dort nicht hineinschaut und auch nicht protokolliert (glaubwürdig in Zeiten der Vorratsdatenspeicherung?), wären diese Informationen in Gefahr, in die falschen Hände zu gelangen – eine lohnendere Beute für böswillige Zeitgenossen kann man sich kaum vorstellen.
Der Hack eines solchen Proxy käme einer Goldmine gleich: Zugangsdaten für den Identitätsdiebstahl, Zuordnung peinlicher Postings zu natürlichen Personen, böswillige Manipulation von Requests – kurz: ein erfolgreicher Angreifer hat genug Schadenspotenzial, um entweder Deutschland aus dem Internetzeitalter rückwärts herauszukatapultieren, oder die Provider zu Schutzgeldzahlungen zu „ermuntern“, um genau dies zu verhindern.
Problemfall SSL
SSL-Verschlüsselung stellt einen Proxy vor Probleme. Bei einer SSL-verschlüsselten HTTP-Verbindung läuft der Verbindungsaufbau etwas anders ab als oben beschrieben. Zunächst stellt der Client wieder eine TCP-Verbindung zum Server her. Dann wird ein Sitzungsschlüssel ausgehandelt, der verschlüsselt übertragen wird; der Server muss sich gegenüber dem Client mittels eines Zertifikats ausweisen, dass er tatsächlich der Server ist, der er zu sein vorgibt. Erst dann sendet der Client den HTTP-Request.
Das bedeutet, dass der Anfrage-Teil des URL erst zum Server übertragen wird, wenn bereits eine verschlüsselte Verbindung aufgebaut wurde. Ein wie auch immer gearteter Filter hat so zunächst keine Chance mehr, bestimmte URLs auszufiltern. Können denn die Betreiber von Kinderporno-Seiten dem großen Bundesfilter so einfach ein Schnippchen schlagen, indem sie ihre Seiten einfach SSL-verschlüsselt anbieten?
Nun, im Prinzip kann auch hier durch einen Proxy eingegriffen werden, der sich gegenüber dem Client als Endpunkt der SSL-Verbindung ausgibt und dann selbst wiederum eine SSL-gesicherte Verbindung zum Zielhost aufbaut. Mit dieser Technik kommt der Proxy in den Genuss des mitlesens, was auf der ansonsten verschlüsselten Verbindung an Datenaustausch stattfindet (im Prinzip ein Man-in-the-middle Angriff).
Die Sache hat aber auch einen Haken: Der Proxy kann sich nicht ausweisen. Zumindest nicht als Online-Shop-Server oder Online-Banking-Server. Mit der Transparenz ist es dann vorbei; selbst die Bevorratung aller Server-Zertifikate (realistisch?) ist technisch nicht möglich, da zu jedem Zertifikat auch eine dedizierte IP-Adresse benötigt wird. Ohne Mitarbeit jedes einzelnen Surfers (im Browser einen Bundes-Proxy für SSL-Verbindungen eintragen) besteht bei SSL-Verbindungen keine Chance für den Filter.
Mal abgesehen davon: greift ein Content-Filter in so sensible Transaktionen wie Online-Banking oder die Übermittlung von Kreditkartendaten (Online-Shopping) ein, ist das Internet als Geschäftsraum unbrauchbar. Der Hack eines Proxies hätte immense wirtschaftliche Schäden zur Folge, vom Vertrauensverlust und anschließenden Absturz einer ganze Branche ganz zu schweigen.
Mit Proxies kommt man bei SSL-Verschlüsselung also nicht wirklich weiter. Da SSL-Verschlüsselung IP-gebunden arbeitet, könnte man aber von der Annahme ausgehen, dass sich hinter einer identifizierten IP auf Port 443 tatsächlich ausschließlich ein Kinderporno-Anbieter verbirgt. Mit dieser Information ließe sich dann wieder eine Layer 3-4-Filterung organisieren, womit das betreffende Angebot in Deutschland wohl vom Netz wäre. Allerdings ist bei solchem Vorgehen mit Kollateralschäden zu rechnen: Die Zuordnung von IP-Adressen kann sich ändern, und einige Provider arbeiten bei ihren Billig-Angeboten mit SSL-Proxies, womit sich wieder viele Seiten hinter einer IP verbergen können.
Tunnel: Die Wurmlöcher im System
Kann man einen transparenten Proxy umgehen? Ja, man kann. SSL allein macht die Sache schon schwierig, aber anhand der IP-Adresse und Portnummer kann ein Layer 3-4-Filter immerhin noch unter Inkaufnahme von Kollateralschäden blockieren oder die Verbindung zum „aufknacken“ an einen Filterproxy überweisen. Völlig unmöglich hingegen wird dies, wenn eine andere Technik eingesetzt wird: Tunnel. Bei einer getunnelten Verbindung wird zwischen zwei Rechnern eine verschlüsselte Verbindung aufgebaut (meist mit gegenseitiger, nicht nur einseitiger Identitätsüberprüfung). Durch diese verschlüsselte Verbindung wird der Inhalt einer anderen Verbindung geschleust, so dass Außenstehende keinen Einblick in die Kommunikation erlangen.
Eine Technik für Spione und Bösewichter? Weit gefehlt, die Technik des Tunnelns in ihren verschiedenen Ausprägungen ist aus dem IT-Alltag vieler Firmen nicht mehr wegzudenken. Über sogenannte Virtuelle Private Netzwerke (kurz: VPN, eine spezielle Form des Tunnelns, in der jedes beliebige Netzwerk-Protokoll gekapselt werden kann) lassen sich Außenstellen kostengünstig an das Firmennetz anbinden, und Außendienstmitarbeiter erhalten einen sicheren Zugriff auf die IT-Infrastruktur. Aus den Layer 3-4-Daten einer solchen Verbindung lassen sich keinerlei Rückschlüsse auf Art und Inhalt der Kommunikation innerhalb des Tunnels ziehen.
Transparentes Mithören (Man-in-the-Middle Angriff) ist bei solchen Verbindungen (ähnlich SSL) so gut wie ausgeschlossen; allerdings lassen sich Ausgangs- und Zielhost noch bestimmen. Bestimmte Dienste gehen aber noch eine Stufe weiter: Sie leiten Verbindungen innerhalb von verschlüsselten Tunneln über mehrere Server („Hops“). Der jeweilige Knoten kennt nur Vorgänger und Nachfolger, nicht aber Ursprung und Ziel der Verbindung. Schon bei drei Hops lässt sich so effektiv verschleiern, woher die Verbindung kommt und an wen sie gerichtet ist (der Inhalt ist ohnehin nur für die Betreiber der Knoten ersichtlich).
Ein solcher Anonymisierungsdienst ist etwa Tor. Tor-Nodes finden sich rund um die Welt, auch in Ländern, in denen derzeit keine Filterung von URLs stattfindet. Entsprechend ist es kein Problem, die Filter in Deutschland und Skandinavien komplett zu umgehen und so auch auf Anbieter-Seiten zuzugreifen, die nicht willens oder fähig sind, ihre Angebote per SSL zu verschlüsseln oder gleich mit Tor auch ihr Angebot zu anonymisieren.
Fazit
Fassen wir also einmal zusammen, was der Bundesfilter zu leisten vermag. Mit Hilfe transparenter Proxies kann der Zugriff auf URLs unterbunden werden, so lange der Netzwerkverkehr unverschlüsselt übertragen wird und die Standard-Ports genutzt werden. Kommt Verschlüsselung ins Spiel (SSL oder sonstige Tunnel), ist eine wirksame Filterung technisch nicht mehr möglich. Mit Hilfe weltweit arbeitender Anonymisierungdienste wie Tor ist es sogar möglich, an den Filtern vorbei auch auf unverschlüsselte Webseiten zuzugreifen oder die Angebote gleich zu anonymisieren.
Um das ursprüngliche Ansinnen Frau von der Leyens steht es also schlecht bestellt: Mit technischen Mitteln ist es so gut wie unmöglich, den Handel mit kinderpornographischen Schriften im Internet wirksam zu unterbinden. Dazu müsste wohl der klassische Computer mit austauschbarer Software in Deutschland verboten und durch regierungskontrollierte Endgeräte mit fest verlöteter Software und Konfiguration ersetzt werden. Aber wer genügend kriminelle Engergie besitzt, sich bei Strafe verbotene Inhalte zu besorgen oder sie gar zu verbreiten, wird auch um diese Hürde herum einen Weg finden (dieser Nachsatz nur für den Fall, dass irgendjemand den Sarkasmus im vorangeganenen Satz nicht wahrgenommen hat).
Was bleibt, ist die bittere Erkenntnis, dass Kinderpornographie wirksam nur an der Quelle bekämpft werden kann. Sicherlich ein schwerer Job, zumal die Szene international agiert und längst nicht in allen Ländern dieselbe Rechtsauffassung wie hierzulande herrscht. Dennoch bleibt es wohl der einzige Weg, um den Opfern dieser Verbrechen zu helfen und potenzielle Opfer zu schützen.
Und Deutschland? Deutschland wird wohl mit dem nächsten unnützen Überwachungswerkzeug ausgestattet werden. Seinen vorgeschobenen Zweck erfüllt der Bundesfilter jedenfalls nicht; bleibt also abzuwarten, wofür er am Ende dann tatsächlich eingesetzt wird. Offenbar gibt es in der Regierung nicht nur alte Männer, sondern auch Frauen mit Kugelschreibern…
2 comments | Defined tags for this entry: freedom, paranoia, politics, privacy, proxy, security

Content is subject to the conditions of the
Das soll ja nicht übernen proxy gemacht werden, sondern die DNS Abfragen an den Provider liefern einfach ne falsche IP zurück hinter der nen Server mit ner "Stop"-Page sitzt.
Man muss nur nen Anderen DNS benutzen und zack geht alles wieder.
Links:
http://blog.fefe.de/?ts=b76a973f
aeehm on Feb. 16, 2009 19:54 CET
Das besonders fiese an der Methode ist, dass das BKA die Liste erstellt und die Provider verpflichtet, die Listen nicht zu veröffentlichen. Man hat also nicht die Möglichkeit dagegen vorzugehen, wenn man zu Unrecht geblockt worden ist.
Das widerspricht ganz eindeutig unserer allgemeinen Auffassung eines demokratischen Rechtsstaats.
bed on Feb. 17, 2009 08:48 CET