Warum die Ausschlussliste nicht gehasht ist
Wer seine Seite baut, ruft sie zwanzig Mal am Tag auf. Bei einem Zähler mit vierzig Besuchern im Monat ist die halbe Statistik man selbst. Deshalb gibt es eine Einstellung: Besuche von meiner eigenen Adresse nicht mitzählen.
Überall sonst in diesem Dienst werden Adressen mit einem geheimen Salz und dem Datum gehasht, und die Adresse selbst erreicht die Ablage nie. An dieser einen Stelle steht sie so, wie du sie eingetippt hast, im Klartext. Das ist eine bewusste Entscheidung, und sie gehört ausgesprochen statt dem Entdecken überlassen.
Die Fassung, die zuerst versucht wurde
Die erste Umsetzung speicherte eine Prüfsumme der Adresse, im Einklang mit allem anderen. Sie funktionierte, sie speicherte weniger, und sie war beinahe nutzlos: die meisten Privatanschlüsse bekommen täglich eine neue Adresse. Der Ausschluss stimmte, wenn man ihn setzte, und war am nächsten Morgen wertlos.
Was einen täglichen Wechsel übersteht, ist ein Bereich — typischerweise das /24 oder /16 des Anbieters, das gleich bleibt, während der letzte Teil rotiert. Und ein Bereich lässt sich nicht als Prüfsumme vergleichen. Hashen zerstört Ordnung mit Absicht, und „liegt diese Adresse in diesem Bereich" ist eine Frage nach Ordnung. Es gibt keinen klugen Weg daran vorbei; die beiden Anforderungen zeigen in entgegengesetzte Richtungen.
Also steht der Bereich so da, wie er eingegeben wurde, normalisiert, daneben seine beiden Grenzen als je sechzehn Byte, und ein einziges BETWEEN entscheidet. IPv4 wird in seiner IPv6-Schreibweise abgelegt, damit beide Familien gleich breit sind und ein Vergleich beide abdeckt.
Warum dieser Tausch hier vertretbar ist
Gespeichert wird das eigene Netz des Betreibers, von ihm eingetippt, ihm angezeigt und von ihm jederzeit löschbar. Es ist nicht die Adresse eines Besuchers. Die Datenschutzerklärung sagt dasselbe mit denselben Worten, denn die Alternative — den Dienst als „hasht alles" zu beschreiben und diese Stelle stillschweigend auszunehmen — wäre die Art im Umriss wahrer Aussage, die weniger wert ist als gar keine.
Die Grenze liegt bei zehn Einträgen je Zähler: genug für Zuhause, Büro und Mobilfunk, wenige genug, dass die Liste keine allgemeine Adressablage werden kann.
Die zweite Art, für alles Bewegliche
Manches hat eine feste Kennung und eine wechselnde Adresse: der eigene Wächter, ein Vorschaudienst eines Chatprogramms, ein Prüfdienst. Über einen Bereich sind die nicht zu fassen.
Für sie greift der Ausschluss auf ein Stück der Browserkennung. Wer uptimerobot einträgt, trifft die ganze Kennung, die er schickt. Das Mindestmaß sind vier Zeichen, denn ein Bruchstück aus zwei Buchstaben stünde in fast jeder Kennung und schaltete den Zähler ganz ab.
Der allgemeine Punkt
Ein Datenschutzentwurf ist eine Reihe von Abwägungen, und die interessanten Stellen sind die, an denen eine Regel sich beugen musste. Regeln, die sich nie beugen, heißen meist, dass sie noch niemand gegen eine echte Anforderung gehalten hat.
Zu vermeiden ist, eine leise zu beugen. Ein gehashtes Feld, das nicht wirklich gehasht ist, in der Dokumentation aber so beschrieben, ist schlimmer als ein Klartextfeld, das klar beschrieben wird — es gibt Vertrauen aus, das es nicht verdient hat, und es wird irgendwann von jemandem gefunden, der nicht damit gerechnet hat, nachsehen zu müssen.