ANZEIGE
Man kann aber auch mit den häufigen Kombinationen beginnen (Verteilung der Vornamen sogar abhängig vom Geburtsjahr) und dürfte überdurchschnittlich gute Chancen haben, in sehr überschaubarer Zeit einen Großteil der Hashes zurückzurechnen. Lass mich Milchmädchen spielen: 3000 Nachnamen mal 300 Vornamen mal 365,25 Tage/Jahr mal 55 Jahre sind 18 Milliarden Hashes. Wenn ich ohne große Optimierungen von 1 Mio/Sekunde ausgehe, wären die auf einem Popel-Desktoprechner in fünf Stunden berechnet und deanonymisieren geschätzt 80% Deiner Tabelle. Sprich: Wenn Du einen einzelnen Hash deanonymisieren möchtest, ist das Verfahren relativ aufwändig. Wenn Du einen Querschnitt der alten Kunden identifizieren möchtest, ist es trivial.
Du berechnest ja nicht einen Hash-Wert, sondern wiederholst das pro Eintrag eine Million Mal wobei jedes Mal die Ursprungswerte wieder mit eingebracht werden. Für den Anwendungsfall ist es irrelevant, ob es den Bruchteil einer Millisekunde oder eine Sekunde dauert, um den Hashwert zu bestimmen. Für Brute Force Angriffe sind eine Sekunde/Hash nicht so schön. Nach dem gleichen Verfahren funktioniert auch der bcrypt Algorithmus für Passwörter.
Amex hat bei mir nur Namen und Geburtsdatum abgefragt, insofern könnte Amex nicht mehr Daten verwenden, um eine solche Blacklist zu führen. Banken fragen hingegen auch die Steuer-ID ab und in vielen anderen Fällen liegt der Personalausweis vor, so dass die Datenmenge um Geburtsname und Geburtsort erweitert werden kann.
M.a.W.: Ich halte so erstellte Hashes ebenfalls für personenbezogene Daten.
Das mag sein, ist aber aus meiner Sicht nicht eine technische Entscheidung sondern eine juristische gewesen. Wir haben die Möglichkeiten und die Risiken dargelegt und dann wurde von der Rechtsabteilung und der Fachabteilung entschieden, welche Option umgesetzt wird. Wobei wir in unserem Fall sogar eine Rechtsgrundlage gehabt hätten, den Namen zu speichern, es aus Gründen der Datensparsamkeit aber anders umgesetzt werden sollte.
Pepper bringt dir ja hier keinen Vorteil, da du dich gegen Deanonymisierung durch den Datenbanksbetreiber schützen willst und der kennt ja den Pepper.
Doch, Pepper ist wichtig, und zwar ein errechneter und nicht gespeicherter Wert. Es kommt bekanntlich immer wieder mal zu einem Diebstahl von Daten. Ohne Pepper reicht es aus, auf die Datenbank Zugriff zu haben. Mit Pepper brauchst du den konfigurierten Ausgangswert, das Verfahren zum Errechnen des Pepper und die Datenbank. Pepper schützt den Datenbankbetreiber gegen die Deanonymisierung durch Unberechtigte.