heygrc
GDPR-Datenminimierung im Code

Erfassung von mehr Daten als für den Zweck nötig.

Datenminimierung, Art. 5(1)(c), besagt, dass nur die personenbezogenen Daten erfasst und gespeichert werden dürfen, die für einen bestimmten Zweck tatsächlich erforderlich sind. Im Code wird dies verletzt, sobald eine Änderung mehr personenbezogene Daten erfasst, protokolliert oder übermittelt, als die Funktion tatsächlich benötigt. Dies passiert leicht, da das Senden des gesamten Objekts oft weniger Aufwand bedeutet als das gezielte Auswählen der benötigten Felder.

How it shows up in a diff

The shapes the same control failure takes.

Minimierung wird selten absichtlich verletzt. Sie wird verletzt, weil die bequemste Lösung oft mehr Daten überträgt als nötig. Typische Muster:

  • Eine Nutzlast wird auf das gesamte Objekt erweitert

    Ein Event, eine Anfrage oder eine Nachricht wird so geändert, dass ein vollständiges Benutzer- oder Kundenobjekt gesendet wird, obwohl nur eine ID und ein oder zwei Felder benötigt werden.

  • Ein neues Feld erfasst mehr als nötig

    Ein Formular, ein Modell oder ein Import beginnt, personenbezogene Daten zu erfassen, die die Funktion nicht benötigt, nur weil sie verfügbar sind.

  • Eine Protokollzeile enthält personenbezogene Daten

    Eine Debug-Protokollzeile zeichnet eine gesamte Anfrage oder einen gesamten Datensatz auf und speichert so personenbezogene Daten in einem Protokoll, das sie nicht benötigt.

  • Ein Dritter erhält mehr als notwendig

    Eine Integration für Analytics, Support oder Marketing beginnt, Felder zu erhalten, die sie nicht benötigt, und erweitert so den Kreis der Datenverantwortlichen.

  • Freitext wird unredigiert gesendet

    Ein Feld, das möglicherweise personenbezogene Daten enthält (z. B. eine Notiz oder Nachricht), wird weitergeleitet oder gespeichert, ohne es auf das für den Zweck Erforderliche zu beschränken.

Worked example

Ein Analytics-Event, das das gesamte Benutzerobjekt überträgt.

Ein Produkt möchte Anmeldungen in seinem Analytics-Tool verfolgen. Der schnellste Aufruf sendet das gesamte Benutzerobjekt als Event-Eigenschaften, einschließlich E-Mail, Name und Adresse, obwohl das Analytics-Tool nur eine ID und einen Tarif benötigt.

analytics/track.ts+1 -1
analytics.track("signup", {-  userId: user.id, plan: user.plan,+  ...user, // send everything, filter later})
heygrcGDPR Art. 5(1)(c)

Das Senden des gesamten Benutzerobjekts übermittelt E-Mail, Name und Adresse an den Analytics-Anbieter, also mehr personenbezogene Daten, als für die Verfolgung einer Anmeldung nötig sind, und an einen neuen Auftragsverarbeiter. Art. 5(1)(c) (Datenminimierung) verlangt, dass eine Änderung nur die personenbezogenen Daten überträgt, die für den Zweck tatsächlich erforderlich sind. Senden Sie nur die ID und die spezifischen Felder, die das Analytics-Tool tatsächlich verwendet, nicht den gesamten Datensatz.

What an auditor does with this

Minimierung wird bei jedem Datenfluss geprüft.

Eine Datenschutzprüfung untersucht, welche personenbezogenen Daten jede Verarbeitungsaktivität erfasst und übermittelt, und vergleicht dies mit dem angegebenen Zweck. Alles, was über das Notwendige hinausgeht, ist ein Befund. Neue Datenflüsse an Dritte erhalten besondere Aufmerksamkeit, da sie den Kreis der Datenverantwortlichen erweitern und auch Fragen zu Datenübermittlungen aufwerfen können. Diese Flüsse werden im Code erstellt, eine Integration oder ein Event nach dem anderen, und genau dort wird die Entscheidung zur Minimierung getroffen.

What this is, and is not

Eine Prüfung, keine Rechtsberatung.

heygrc markiert Änderungen, die die Datenminimierung betreffen, und verweist auf den Artikel, damit die Korrektur im Pull Request erfolgt. Es entscheidet nicht über Ihre Rechtsgrundlage oder verwaltet Ihre Verarbeitungsverzeichnisse. Es erkennt den Moment, in dem eine Änderung beginnt, mehr personenbezogene Daten zu übertragen als nötig, direkt im Diff.