Das Putzlowitsch Test- und SEO-Blog

IP-Adresse anonymisieren – warum MD5 nicht geeignet ist

Grundlagen zu IP-Adressen und Datenschutz überspringen

Die IP-Adresse

Damit das Internet überhaupt funktioniert, bekommt jeder Teilnehmer eine weltweit eindeutige Adresse zugeordnet. Derzeit ist das nach IPv4 eine 32-Bit Zahl, somit gibt es etwa 4,3 Milliarden mögliche Adressen im Internet. Diese 32-Bit werden üblicherweise in Gruppen zu 8 Bit (Oktett) aufgeteilt und die sich daraus ergebenden 4 Oktette mit einem Punkt getrennt als Zahlen von 0 bis 255 notiert.

Über die IP-Adresse 81.169.145.149 ist z.B meine Schnurpsel-Seite auf einem Web-Server bei Strato erreichbar. Wenn nun jemand meine Webseite aufruft, wird dem Webserver auch die IP-Adresse des Aufrufers mitgeteilt. Klar, der Server muß ja wissen, wo er die angeforderte Webseite als Antwort hinschicken soll.

Nebenbei legt der Webserver aber auch eine sogenannte Logdatei an, in welcher alle Zugriffe protokolliert werden und stellt die IP-Adresse auch dem für die Erstellung der Seite zuständigen Programm zur Verfügung. So speichert WordPress z.B. zu jedem Kommentar auch die IP-Adresse des Kommentators in der Datenbank.

IP-Adressen verwenden

Mit den gespeicherten IP-Adressen kann man so allerlei anstellen. Zum einen sind sie hilfreich, um unerwünschte Zugriffe abzuwehren. Wenn z.B. von einer bestimmten IP-Adresse regelmäßig viel Kommentarspam kommt, kann man den Webserver anweisen, einfach alles zu ignorieren, was von dieser IP-Adresse kommt.

Interessant ist auch die Möglichkeit, mit der IP-Adresse und weiteren Daten eine Statistik zu erstellen. So kann man herausfinden, wieviele Besucher wann welche Seiten aufrufen, woher so kommen und wohin sie gehen. Dazu ist es erforderlich, die Benutzer unterscheiden zu können, unter anderem durch ihre unterschiedlichen IP-Adressen. Wenn jemand mit der IP-Adresse 10.48.80.4 auf meine Seite zugreift, weiß ich zwar nicht, wer das ist, aber ich kann davon ausgehen, daß es jemand anderes war, als der mit der IP-Adresse 10.130.1.247.

Die personenbezogene IP-Adresse

Zwar kann ich nicht wissen, welcher konkrete Benutzer hinter einer IP-Adresse steckt, wohl aber der Internet-Service-Provider (ISP). Wenn ich über meinen Internetzugang per DSL mit dem Internet verbunden bin, bekomme ich eine IP-Adresse von meinem Provider 1&1 zugeteilt. Der Internetanbieter speichert diese Zuordnung technisch bedingt zumindest für die Dauer der Verbindung, schließlich muß auch er wissen, zu welchem Kunden (DSL-Anschluß) er die Daten für die IP-Adresse schicken muß.

Für Abrechnungszwecke wird diese Verknüpfung eines Kunden mit einer IP-Adresse zu einem bestimmten Zeitpunkt möglicherweise auch länger gespeichert. Seit einiger Zeit ist diese Vorratsdatenspeicherung per Gesetz sogar unabhängig davon für mindestens 6 Monate vorgeschrieben.

Somit kann meine IP-Adresse durch den ISP mir als Kunden, und damit einer Person zugeordnet werden. Für sich allein genommen ist die IP-Adresse keine personenbezogenes Datum, sie wird es aber durch die beim Internetanbieter gespeicherten Informationen.

Speicherung personenbezogener Daten

Da der Schutz der Privatsphäre und persönlicher Daten ein hohes Gut ist, darf nicht jeder einfach ohne Einwilligung personenbezogene Daten speichern. Auch hier gibt es entsprechende gesetzliche Regelungen, einerseits im Bundesdatenschutzgesetz und andererseits im Telemediengesetz.

Wenn man nun eine IP-Adresse als personenbezogenes Datum betrachtet und andererseits solche Daten, insbesondere ohne Einwilligung des Betroffenen, nicht gespeichert werden dürfen, ist das Speichern der IP-Adresse, wie es bisher gehandhabt wird, nicht zulässig.

Der einfachts Ausweg ist, die IP-Adresse nicht zu speichern. Solange das im eigenen Einflußbereich liegt, ist das die radikalste und einfachst Lösung. Damit hat man aber keine Möglichkeit mehr, eine IP-Adresse für die Abwehr unerwünschter Zugriff oder edie Webseiten-Statistik zu verwenden.

Die zweite Möglichkeit ist, die IP-Adresse in anonymisierter Form zu speichern. Damit geht die Zuordnung der IP-Adresse zu einer Person verloren, die Unterscheidbarkeit bleibt aber idealerweise weitestgehed erhalten.

Wie anonym ist eine Anonymisierung wirklich?

Ich war ja dem Irrtum auch erlegen, daß man mit einer kryptographischen Hashfunktion wie MD5 eine IP-Adresse anonymisieren kann. Auch wenn MD5 mittlerweile als kryptographisch nicht mehr wirklich sicher gilt, sollte es doch für eine Anonymisierung reichen. Das tut es prinzipiell auch, aber nur dann, wenn die zu anonymisierenden Daten nicht aus einer überschauberen Datenmenge mit bekannter Struktur bestehen.

IP-Adressen haben aber eine wohlbekannte Struktur und auch wenn 4,3 Milliarden Möglichkeiten erstmal nach viel klingt, ist es eine gut überschaubare und handhabbare Größenordnung. Bei mit MD5 „anonamisierten“ IP-Adressen ist es einfach möglich, die zu einem MD5-Wert gehörende Adresse durch probieren herauszufinden. Man bildet einfach von alle IP-Adressen den MD5-Wert und vergleicht ihn mit dem unbekannten Wert. Dann ist es nur eine Frage der Zeit, bis man die passende IP-Adresse gefunden hat.

md5 to ipUm mal ein Gefühl dafür zu bekommen, wie schnell das geht, habe ich eine kleines PHP-Programm geschrieben und hier auf dem Server laufen lassen. Um den Server nicht zu sehr zu belasten und auch das 30 Sekunden-Zeitlimit nicht zu überschreiten, lasse ich das erste Oktette nicht berechnen, beleiben theoretisch gut 16 Millionen Versuche.

Kurz und gut, meine verkürzte IP-Adresse war nach gut 9 Millionen Versuchen und in etwa 13 Sekunden ermittelt. Im ungünstigsten Fall und mit der kompletten IP-Adresse dürfte das etwa 2 Stunden dauern. Wobei PHP als nicht besonders schnell gilt und das zudem auf einem Webserver läuft, den ich mir mit vielen anderen Kunden teile. Damit ist klar, eine mit MD5 anonymisierte IP-Adresse ist nicht anonym, da sie in relativ kurzer Zeit rekonstruiert werden kann.

So eine MD5-IP-Adresse hat noch eine anderen Nachteil, sie sieht nicht mehr wie eine IP-Adresse aus. Statistikprogramme könnten darüber möglicherweise stolpern.

Und nun?

Anonymisierung durch Weglassung

Die einfachst Möglichkeit ist, wenn eine IP-Adresse gespeichert werden soll, diese komplett auf Null zu setzen, also 0.0.0.0. Das ist dann wunderbar anonym, allerdings sind alle IP-Adressen identisch. So wird das nichts mit der Statistik und der Spamabwehr.

Aber vielleicht genügt es ja schon, nur einen Teil der IP-Adresse wegzulassen bzw. mit einem festen Wert zu belegen. Aber was und wieviel kann man weglassen, so daß kein zu großer Fehler entsteht, die Anonymität aber trotzdem gewahrt wird. Meine erste Idee war, das am weitesten links (höchstwertige) Oktett zu anonymisieren, anderenorts habe ich gelesen, daß das am weitesten rechts liegende (niederwertigste) Oktett genommen wird. Um zu sehen, wie sich die verschiedenen Möglichkeiten auswirken, habe ich die nicht anonymisierten Logdaten einer Woche genommen, und die Anzahl der unterschiedlichen IP-Adressen mit der Anzahl nach der Anonymisierung verglichen:

Methode Anzahl Abw. abs Abw. rel
Original 19429 0 0.00%
1. Oktett 19416 13 0.07%
1. und ¼ 2. Oktett 19381 48 0.25%
1. und ½ 2. Oktett 19252 177 0.91%
1. und ¾ 2. Oktett 18712 717 3.69%
1. und 2. Oktett 16819 2610 13.43%
4. Oktett 17080 2349 12.09%

 
Insgesamt gab es in der betrachteten Woche 145636 Zugriffe von 19429 unterschiedlichen IP-Adressen (7.50 Requests/IP). Den nicht anonymisierten Wert findet man in der ersten Zeile, alles bleibt erhalten, Fehler 0%. In der zweiten Zeile habe ich das 1. Oktett mit einer 10 ersetzt. Damit landen die IP-Adressen im Bereich der privaten IP-Adresen, die so in freier Wildbahn nicht anzutreffen sind. In den weiteren Zeilen habe ich zum auf 10 gesetzten ersten Oktett noch jeweils zwei, vier und sechs Bit des zweiten Oktetts auf 0 gesetzt, um den Anonymisierungsgrad zu erhöhen. In der letzten Zeile wurde schließlich nur das 4. Oktett auf Null gesetzt.

Der Fehler ist bis zu „1. und ¼ 2. Oktett“ oder sogar „1. und ½ 2. Oktett“ aus meiner Sicht akzeptabel. Mit so einem Fehler könnte man für statistische Auswertungen gut leben. Bei der Variante mit dem 4. Oktett ist der Fehler schon recht hoch, vor allem deutlich höher als beim „nur 1. Oktett“, obwohl ja die anonymisierte Datenmenge von 8 Bit gleich ist. Der Unterschied ist wohl damit zu erklären, daß meine Webseite nur vorwiegend regionales Publikum hat. So kommen die meisten Besucher aus Deutschland und damit habe diese vorwiegend IP-Adressen aus dem Pool einiger, weniger Internetanbieter. Diese unterscheiden sich dann halt oft nur in der letzten Stelle der IP-Adresse.

Wirklich anonym?

Das eine „Anonymisierung“ mittels MD5 nicht funktioniert ist klar, inwieweit das teilweise Weglassen von Daten der IP-Adresse als Anonymisierung reicht, kann ich nicht beurteilen. Zumindest läßt sich die IP-Adresse nicht mehr unmittelbar zurückrechnen, da die Daten teilweise gelöscht werden. Vielleicht kann sich ja hier jemand dazu äußern, der sich mit sowas auskennt.

5 Kommentare »

Webmasterfriday aktuell – SEO/SEM und Fußball

Euroscheine  5 bis 50Na das ist mal ein passendes Thema für mich. Searchengine-Optimization bzw. -Marketing und Fußball, zwei Sachen, von denen ich nicht wirklich Ahnung habe. Wenn ich davon schon keine Ahnung habe, dann bringe ich gleich mal noch einen Themenkomplex ins Spiel, bei dem mich meine Ahnunglosigkeit sogar einiges an Geld gekostet hat, „Aktien und Börse“.

Bei allen drei Themen geht es ums Geld, zumindest wenn man ganz oben mitspielen und erfolgreich sein will. Wenn man Bundesliga und nicht Kreisklasse spielen will. Wenn man Platz 1 in den Suchmaschinen erreichen will, und nicht schon damit zufrieden ist, auf Seite 23 überhaupt mal aufzutauchen. Wenn man an der Börse 100.000 Euro Gewinn und nicht nur 100 Euro machen will.

Geld und Talent

Um ganz oben dabei zu sein, muß man erstmal auch Geld in die Hand nehmen. Aber das allein reicht nicht. Man muß auch eine Begabung für das haben, was man tun will. Gut, mit viel Fleiß und viel Arbeit kann man auch ohne besonderes Talent einiges erreichen, aber irgendwann ist dann Schluß. Das ist wie in der Malerei, Musik oder im Sport, man braucht Talent. Das sehen wohl die meisten ein, ja klar, wenn man unmusikalisch ist, wird man wohl kaum ein guter Musiker werden können. Aber das gilt genauso für andere Bereiche. Man braucht ein Gespür für die Aktienentwicklung oder muß halt die nüchternen Zahlen einer SEO-Analyse auch richtig interpretieren können.

Technik und Fleiß

Suchvolumen für Brot, Katze und KatzenDa hatte ich im April 2000 zur Zeit des Aktien-Booms die Chance beim Schopfe gepackt, und ein Aktien-Depot eröffnet. Auslöser war die bevorzugte Zuteilung von 35 Stück T-Online-Aktien für T-Online-Kunden. Aber die 35 Aktie nur einer Firma im Wert von knapp Tausend Euro waren natürlich ein bißchen zu wenig.

Also habe ich weitere Aktien gekauft, mich bei wallstreet-online und technical-investor (jetzt tradesignal-online) angemeldet, den Markt beobachtet, Chartanalysen begutachtet, Kauf- und Verkaufssignale gesetzt, in Foren diskutiert, Aktien verkauft, Aktien gekauft und mich letztendlich meist über meine falschen Entscheidungen geärgert. Im Februar 2004 habe ich dann die Reißleine gezogen, alle Aktien verkauft und für mich die Erkenntnis gewonnen, daß der Aktienhandel einfach nicht mein Ding. Bezahlt habe ich diese Erfahrung mit einem konkreten finanziellen Verlust.

Was bin ich?

Das eigentlich Schwierige ist herauszufinden, für was man eine besondere Begabung, Talent oder Veranlagung hat. Und Schwierig ist es auch sich eventuell einzugestehen, daß man etwas eben nicht wirklich gut kann und die Konsequenzen daraus zu ziehen. Wichtig ist dabei auch der eigene Anspruch. Ein Freizeitkicker kann sich über den Aufstieg seiner Mannschaft von der zweiten in die erste Kreisklasse ebenso freuen wie ein Bundesligaprofi über den Gewinn des DFB-Pokals.

Ich als Hobby-Webmaster bin schon zufrieden, wenn sich ein paar Bilder meiner Bilder auf der ersten Trefferseite der Bildersuche befinden, von den Top-Bildern auf Platz eins ganz zuschweigen :-) Allerdings habe ich außer Spaß an der Freude nichts davon. Ein SEO-Profi muß da natürlich ganz anders rangehen, da zählen andere Dinge denn hier geht es dann wieder um Geld.

Nullsummenspiel mit Brötchen

BrötchenIrgendwie sind alle drei Themengebiete, SEO/SEM, Fußball und auch die Börse Nullsummenspiele. Der Gewinn des Einen ist ein Verlust des Anderen.

Klar, wenn eine Mannschaft im Fußball ein Spiel gewinnt hat der Gegner im selben Moment verloren. Wenn ein SEO eine Seite ganz nach oben gebracht hat, ist dafür eine andere um mindestens einen Platz abgerutscht.

Und wenn ich meine Aktien mit Verlust zu einem niedrigen Preis verkaufe, hat sie der Käufer später dann vielleicht mit Gewinn verkauft. Naja, gewonnen hat zumindest der Händler, nämlich an der Provision.

Apropos Gewinn und Verlust und 1. Platz bei Google, das mit den Brötchen-Bildern wird noch ein langer Weg werden, wenn es nicht etwas mehr Unterstützung gibt.
Es gibt noch keine Bewegung auf dem Brötchen-Markt, aber ich weiß, bei der Bildersuch ist eines besonders wichtig, Geduld, Geduld und nochmals Geduld. :-)

Ein Kommentar »

Mit welcher WordPress-Version läuft ein WordPress-Blog?

WordPress habe ich seit Oktober 2006 in Benutzung (1&1 Fertigblog), mein erstes selbstinstalliertes WordPress im November 2006 hatte die Version 2.0.4. Seitdem ist einige Zeit ins Land gegangen und mittlerweile sind wir bei WordPress Version 2.9.1 angekommen, die Version 3.0 ist schon angekündigt und soll im März erscheinen.

Mit jeder neuen WordPress-Version gab es meist neue Funktionen, manchmal war eine neue Ausgabe aber auch nur ein Sicherheits-Release, um bekannt gewordene Sicherheitslöcher zu stopfen. Damit sind Sicherheitslücken und deren Ausnutzbarkeit immer von der WordPress-Version abhängig, wodurch die Versions-Information für einen Angreifer durchaus interessant ist.

Die WordPress-Versionsnummer anzeigen

WordPress liefert in der Standardinstallation die Versionsinformationen gleich an drei Stellen mit. Zwar sind diese für den normalen Besucher üblicherweise nicht sichtbar, aber in der Seite vorhanden.

Im Header der Seite
Wen man sich den HTML-Quelltext einer Seite ansieht, findet man dort möglicherweise im Header einen Eintrag wie <meta name=“generator“ content=“WordPress 2.9.1″ />
Wordpress-Version im Header der Seite

Im Feed
Wen man sich den XML-Quelltext eines Feeds (RSS, Atom) ansieht, findet man dort möglicherweise am Anfang (channel) einen Eintrag wie <generator>http://wordpress.org/?v=2.9.1</generator>

Wordpress-Version im Feed

In der readme.html
Mit jeder WordPress-Version wird eine Datei readme.html und in der deutschen Version auch liesmich.html mitgeliefert bzw. installiert. Diese findet man im WordPress-Wurzelverzeichnis. Da steht die WordPress-Version ebenso drin:
Wordpress-Version in der readme.html

WordPress-Version verbergen

Man mag darüber streiten, ob es sinnvoll ist, die Versionsnummer vor Bots oder wem auch immer zu verbergen. Für die Unterdrückung der Ausgabe in den Seiten und Feeds gibt es diverse Lösungen. Wenn man nun aber so großen Wert darauf legt, die WP-Version zu verstecken, sollte man unbedingt auch die readme.html (liesmich.html) löschen. Aber Achtung, beim nächtens (automatischen) Update ist sie wieder da.

Weitere Artikel mit Bezug zu diesem:
Keine Kommentare »

Mit der Bildersuche Geld verdienen, so einfach ist das

In der Reihe „Geld verdienen im Internet“ stelle ich heute eine weitere Möglichkeit anhand eines praktischen Beispiels vor. Es geht um die Bildersuche, aber nicht etwa darum, wie man selber hochwertige Bilder veröffentlicht und wenn diese sich dann nach hartem Kampf in den Suchergebnissen vorgearbeitet haben, die Besucher auf die eigene Seite bringen, sondern wie man andere Bilder dafür einspannt.

Bildersuche

Ausgangspunkt ist wieder die Yahoo-Search-API, mit deren Hilfe man mit ein paar Programmierkenntnissen eine eigene „Suchmaschine“ aufziehen kann. Hier hat sich jemand speziell auf die Bildersuche eingeschossen, sinnigerweise heißt die Seite dann auch „FindBilder“. Im Unterschied zur originalen Yahoo-Bildersuche kann man beim Find-Bilder noch nach Dateitypen filtern. Zur Auswahl stehen BMP, GIF, JPG und PNG, aber was das eigentlich bringt, weiß ich auch nicht.

Interessant ist zumindest z.B. bei der Suche nach Erdbeeren mit dem Typ BMP, daß nicht die angezeigte Datei-Endung über den Dateityp entscheidet, denn was da als .jpg oder .ico angezeigt wird, ist tatsächlich aber ein BMP-Bild. Fehlerhaft ist auf jeden Fall die Info-Anzeige

„Treffer: 1 – 9 von 10 f�r erdbeeren“

für dargestellte 8 Treffer. Naja, da sollte nochmal nachgebessert werden.

Geld verdienen

Zum Geld verdienen fehlen nun eigentlich nur noch die Werbeblöcke, aber die sind ja auf der rechten Seite vorhanden. Na dann kann der Rubel ja rollen. :-)

Keine Kommentare »

Der Januar 2010 in Zahlen

Den letzten Monatsrückblick gab es für Oktober 2009, es wird also mal wieder Zeit, ein paar Zahlen zu präsentieren. Andernorts wird sowas ja auch gemacht. Allerdings habe ich hier keine hübschen Diagramm zu bieten, nur nüchternes Zahlenmaterial und ein paar Tabellen. Die Werte sind bis auf die AdSense-Daten alle aus der Serverlogdatei ermittelt worden.

Die Kennzahlen vom Januar 2010

  • Webzugriffe: 109794 von 11261 IP-Adressen (9,75 Req/IP)
  • Seitenzugriffe: 4031 (ca. 130/Tag)
  • Einnahmen: 2,99 EUR (Google-AdSense)

Webzugriffe sind alle Zugriffe oder Zugriffsversuche auf irgendwelche Resourcen der Website, also sowohl Seiten, Bilder und Feeds, als auch CSS-Dateien, die robots.txt und sonstige (auch fehlerhafte 403/404-Zugriffe). Dabei erfolgten die Zugriffe von 11261 unterschiedlichen IP-Adressen. Also wurden von jeder IP-Adresse durchschnittlich knapp 10 Zugriffe getätigt.

Die Seitenzugriffe sind Zugriffe auf sichtbare Webseiten durch normale Benutzer, also z.B. keine Zugriffe auf Bilder oder durch Bots. Der von AdSense angezeigte Wert liegt da etwas höher bei 4277 Page Impressions, warum das so ist, weiß ich nicht. Ich hätte es eher anders herum erwartet.

Die € 2,99 Einnahmen wurden durch 9 Klicks erzeugt, was einer CTR von 0,21% entspricht und einen eCMP von € 0,70 ergibt. Keine Ahnung, was das nun konkret bedeutet. Zumindest betrugen die täglichen Einnahmen durchschnittlich 0,10 Euro.

Besucher von Suchmaschinen

Im Januar kamen 2752 Besucher von Google zu Schnurpsel (Oktober: 1555), die übergroße Mehrheit über die normale Websuche, nämlich 2446 (Okt. 1427) und 222 (Okt. 43) über die Bildersuche (fünf davon per Universal-Search). Von Bing gab es 7 Besucher, via T-Online ganze drei.

Die meisten Suchanfragen sind Suchphrasen aus zwei oder mehr Wörtern. Ich habe diese Gruppen mal in 9394 Einzelwörter zerlegt und so erhält man einen Überblick über die gefragtesten Themen meiner Webseite:

Wort Anzahl Typ
wordpress 1284 S
strato 837 S
langsam 152 S
permalinks 123 S
mod_rewrite 95 S
1und1 91 S
bilder 87 S
startseite 84 S
hut 83 B
datenbank 76 S

Typ: S – normale Suche, B – Bildersuche

Die beliebtesten Kombinationen sind unter anderem ‚wordpress strato‘ bzw. ’strato wordpress‘, ‚ähnliche bilder suchen‘, ’strato mod_rewrite‘, ‚wordpress strato langsam‘ und ‚wordpress home link‘. Mit Mohakenox kamen übrigens 11 Besucher von der Bildersuche und 8 von der normeln Suche hierher.

Andere Besucher-Quellen

Die Anzahl der Besucher von anderen Seiten ist überschaubar, die meisten (534) kamen vom WordPress-Deutschland-Forum. Dort sind folgende Artikel die Spitzenreiter:
WordPress läd langsam. Hoster oder Skript Ursache? (39)
strato; (28)
Neuinstallation 2.9.1 bei 1und...nternal Server Error bei Step2 (25)
Neuinstallation bei 1und1 (25)
Fehler: Umleitungsfehler (21)
Blog nicht mehr erreichbar (19)
1und1 mit WordPress (18)
Post via Email sofort publizieren (18)

Ein paar Besucher kamen z.B. auch von Twitter (69), vom SEO-Hanbuch (42), vom der Standard (34), vom Zonebuttler (29) und vom TagSeoBlog (24).

Blog-Statistik

Zum Schluß noch schnell die Blog-Statistik. Hier bei Schnurpsel gibt es derzeit 16 Seiten sowie 125 Artikel in 11 Kategorien und mit 143 Stichworten. Dazu kommen 586 genehmigte Kommentare.

Weitere Artikel mit Bezug zu diesem:
Keine Kommentare »