Anonymisierung mit Logstash nach EuDSGVO

Wie viele andere datenschutzrechtliche Dinge rücken mit der EuDSGVO bereits jahrelang vorgeschriebene Themen wie z.B. die Anonymisierung von personenbezogenen Daten mal wieder in den Fokus. "Mal wieder" weil es Themen sind, die bereits umgesetzt sein müssten, auf Grund fehlender Kontrollen und zu geringen Strafen aber längst nicht in allen Bereichen umgesetzt sind.

Zur Anonymisierung von Daten bietet Logstash einen eingebauten Filter, der, gemäß der Dokumentation, folgende Parameter erlaubt:

string, one of ["SHA1", "SHA256", "SHA384", "SHA512", "MD5", "MURMUR3", "IPV4_NETWORK", "UUID", "PUNCTUATION"]

Nur SHA1, SHA256, SHA384, SHA512 und MD5 sind dabei kryptographische Funktionen, die die Integrität der Daten sicherstellen und damit die Anforderungen der EuDSGVO erfüllen.

Doch welcher Algorithmus ist nun der richtige?

MD5 gilt bereits seit vielen Jahren als unsicher, da es mit vertretbarem Aufwand möglich ist Kollisionen zu erzeugen (https://de.wikipedia.org/wiki/Kollisionssicherheit), was bei einem System mit einer riesengroßen Anzahl an Einträgen relevant werden kann.

Somit bleiben nur noch die Algorithmen der "SHA-Serie". Doch wo liegt hier der Unterschied?


SHA256 vs SHA384 vs SHA512


SHA384 und SHA512 sind, soweit ich die Beschreibungen verstehe, was die Berechnung angeht, annähernd identisch. Damit wohl auch der Aufwand zur Berechnung. SHA384 hat also nur den Vorteil, dass der resultierende Hash kürzer ist. Damit will ich mich hier auf SHA512 fokussieren und SHA384 aus dem Rennen nehmen.

SHA256 entspricht 128 Bit Kollisionsresistenz und SHA512 256 Bit.

Diese Werte haben heutzutage nur theoretische Relevanz, da der Rechenaufwand mit aktuellen Computersystemen so hoch ist, dass beide Verfahren als sicher gelten. Eine Änderung dieser Einschätzung ist erst mit der Einführung von Quantencomputern zu erwarten.
In einem zentralen Loggingsystem ist die Konsistenz der Daten elementar. Auf Grund der schieren Anzahl von Elementen muss eine Kollision unter allen Umständen vermieden werden- Punkt für SHA512.

SHA256 verwendet 32 Bit Wörter und wird auf 32 Bit Prozessoren, SHA512 verwendet 64 Bit Wörter und wird auf 64 Bit Prozessoren schneller berechnet (Test mit: openssl speed sha256 sha512). Nahezu alle aktuellen Prozessoren besitzen eine 64 Bit Architektur. Damit wieder ein Punkt für SHA512.

Doch Moment!
Wir sprechen von Anonymisierung personenbezogener Daten. Damit zählen nur drei Faktoren:

1. Die Länge des Hashwertes und damit der Speicherplatz, der in der Datenbank belegt wird
2. Die Berechnungsgeschwindigkeit, die einen direkten Einfluss auf die EPS hat, die das System erreichen kann
3. Die Integrität/ Authentizität der Daten, die nach der EuDSGVO mit einer Methode sichergestellt werden muss, die "dem aktuellen Stand der Technik" entspricht

Den Punkten 1 und 2 alleine würde selbst durch MD5 oder SHA1 genüge getan.
Anders sieht das aber beim Punkt 3 und "dem aktuellen Stand der Technik entsprechend" aus. Dieser bedingt den Einsatz derzeit als sicher geltender Algorithmen.

Die einzig logische Konsequenz ist damit SHA384- beste Qualität mit, auf 64 Bit Systemen, schneller Berechnung und einem möglichst kurzen Hashwert.