Databasegegevens anoniem maken

Pagina: 1
Acties:
  • 573 views sinds 30-01-2008
  • Reageer

  • vandenhende
  • Registratie: Februari 2002
  • Laatst online: 21-02 23:39
Ik heb een database met gegevens van een klant ontvangen. _/-\o_ Hierin zitten een hoop verschillende soorten data. Tekstvelden numerieke velden etc etc.

Nu wil ik deze database gaan gebruiken voor demonstratiedoeleinden. De klant wil alleen dat zijn gegevens niet herkenbaar zijn.
Nu moet ik dus die gegevens anoniem maken. Heeft iemand tips hoe ik dit het beste kan aanpakken? Bij numerieke velden is dit wel te doen: je kunt ze delen/vermenigvuldigen met een bepaalde factor. Maar hoe doe ik dit met tekstvelden. Ik kan toch niet handmatig 1 miljoen records gaan aanpassen. 8)7

Ik hoor het wel of iemand hier ideeen over heeft of ervaring mee heeft.

:Y)

Verwijderd

Namen en adressen kan je gewoon random gaan wisselen? (zet alle records van een table in een lijst en ga dan de gegevens dmv een script/programma wisselen)
Achternamen kan je dan nog gewoon afkorten als je dat wil..

[ Voor 67% gewijzigd door Verwijderd op 21-04-2006 16:39 ]


  • kamerplant
  • Registratie: Juli 2001
  • Niet online
Dit lijkt me redelijk afhankelijk van het soort database, van de content. Je zou per text-veld het aantal woorden kunnen tellen, om vervolgens met een even groot aantal woorden het Lorum Ipsum in te vullen :P. Er zullen wel meerdere oplossingen zijn, met een beetje creativiteit moet daar toch wel uit te komen zijn? :o

🌞🍃


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 20-02 03:31

Gerco

Professional Newbie

Om databases met salarisgegevens te anonimiseren gebruikte we bij een vorige opdrachtgever van mij een enorme lijst met namen (van 1 of andere babynamen site ofzo, weet niet precies waar die vandaan kwam). Random de namen van de personen wisselen en mbt een postcodetabel die we toch al in huis hadden, werden aan alle mensen nieuwe adresgegevens gekoppeld.

Op die manier konden we de getallen met rust laten, aangezien die nogal veel onderlinge afhankelijkheden hebben en dat is lastig recht te houden als je gaat lopen vermenigvuldigen etc.

[ Voor 4% gewijzigd door Gerco op 21-04-2006 16:43 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • reddog33hummer
  • Registratie: Oktober 2001
  • Laatst online: 07-02 17:13

reddog33hummer

Dat schept mogelijkheden

Wij hebben de voornamen van mensen bij andere achternamen van andere mensen geplaatst. Daarna die in combinatie door de personen gehusseld. Datzelfde hebben we gedaan met de addressgegevens. sofinummers hebben we vervangen door randomgetalen (plus de 11 deling)

Op die manier hadden we een random versie waar alle verhoudingen nog steeds behouden bleven (voor onderzoek)

Backup not found (R)etry (A)bort (P)anic<br\>AMD 3400+ 64, 2 GB DDR, 1,5 TB Raid5


  • reddog33hummer
  • Registratie: Oktober 2001
  • Laatst online: 07-02 17:13

reddog33hummer

Dat schept mogelijkheden

Gerco schreef op vrijdag 21 april 2006 @ 16:42:
Om databases met salarisgegevens te anonimiseren gebruikte we bij een vorige opdrachtgever van mij een enorme lijst met namen (van 1 of andere babynamen site ofzo, weet niet precies waar die vandaan kwam). Random de namen van de personen wisselen en mbt een postcodetabel die we toch al in huis hadden, werden aan alle mensen nieuwe adresgegevens gekoppeld.

Op die manier konden we de getallen met rust laten, aangezien die nogal veel onderlinge afhankelijkheden hebben en dat is lastig recht te houden als je gaat lopen vermenigvuldigen etc.
Wettelijk gezien kan je dan via de sofinummers of andere informatie nog steeds de persoon achtehalen en zijn het dus persoonsgegevens.

Backup not found (R)etry (A)bort (P)anic<br\>AMD 3400+ 64, 2 GB DDR, 1,5 TB Raid5


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 20-02 03:31

Gerco

Professional Newbie

Goed punt reddog. Ik weet eigenlijk niet of die ook randomized werden, maar die databases waren toch alleen voor onderzoek naar bugs (vandaar dat ook de getallen erg belangrijk waren) en kwamen nooit iemand anders dan developers en support onder ogen. Die hebben weer geen toegang tot de sofi <-> naam mapping en dus is er feitelijk niets aan de hand.

Dat het wettelijk niet helemaal ok is ben ik met je eens, maar ik zou er niet te zwaar aan tillen in deze situatie.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Dit heeft niets meer met het ontwerp van software te maken maar eerder met programmeren an sich. Gewoon middels een scriptje of programmatje alle records aflopen en random gegevens invullen. Lijkt me geen probleem.

Hoe dan ook, naar aanleiding van Waar hoort mijn topic?:
SEA>>PRG

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 23:39
Probleem bij zo'n situatie is dat je de gegevens nog wel representatief wil houden en dat de patronen die zich in de data bevinden gelijk blijven.

Afhankelijk van het type systeem kan dit zelfs betekenen dat je bepaalde gegevens in verband met elkaar moet "randomizen". Misschien zijn bepaalde gegevens regio gebonden, dan wil je verbergen welke regio dit is, maar het moet nog wel zo zijn dat de gegevens hetzelfde patroon vertonen, zij het op een andere locatie. Zelfde kan gelden voor naam gegevens, geboortedata etc. etc...

De techniek is eigenlijk eenvoudig, de vraag is wat je wel en niet moet veranderen en wat je moet veranderen op welke manier. Belangrijkste is naar mijn idee dus de analyse die je van te voren maakt.

  • MrBucket
  • Registratie: Juli 2003
  • Laatst online: 29-10-2022
Zo hebben wij op de HTS eens een datawarehouseproject gehad, waarvoor we een geanonimiseerde kopie kregen van de database van het studenten-registratiesysteem.

Later kwamen we erachter dat, alhoewel de namen en studentnummers random gewisseld waren, er bij elke geboortedatum een vast aantal dagen bij op was geteld (ik geloof 175 dagen ofzo). Toen we dat eenmaal wisten, konden we toch nog de cijfers van iedereen opzoeken, als je z'n geboortedatum maar wist :)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Als je eenmaal met anonimiseren begint zal je inderdaad alle persoonsgegevens moeten anonimiseren. Je moet dan dus feitelijk de procedure die het CBP aanhoudt om te bepalen of iets een persoonsgegeven is omkeren totdat de gegevens die je over wilt houden op geen manier meer relateerbaar zijn aan de natuurlijke persoon.
Geboortedatums kan je een willekeurig aantal dagen bij optellen, sofinummers kan je in de meeste gevallen vast wel vervangen door een willekeurig (uniek) ander getal, evt gewoon de al gebruikte surrogate primary key. En voor de zaken als naam, e-mailadres en woonadres noemen de anderen ook al oplossingen.

Let er op dat ook dingen als een "personeelsnummer" ook een persoonsgegeven kunnen zijn. Het belangrijkste criterium is dat de gegevens terug te voeren moeten zijn tot de echte persoon. Ook als het vooral in theorie mogelijk is - maar in de praktijk niet reeel is - om die terugvoering te doen zou ik het toch maar anonimiseren.

  • misfire
  • Registratie: Maart 2001
  • Laatst online: 12-10-2024
Gegevens anonimiseren kan best lastig zijn. Ten eerste moet het algoritme waarmee je de gegevens aanpast niet omkeerbaar zijn. Het voorbeeld van een half jaar bij een geboortejaar optellen is vrij klassiek: als je het eenmaal weet kun je nog steeds overal bij.

Ten tweede moet je rekening houden met alle regels die gelden over de gegevens. Sofinummers moeten bijvoorbeeld voldoen aan de 11 proef. Willekeurig een geboortedatum optellen of aftrekken kan vervelend zijn als bijvoorbeeld een orderdatum nooit voor de geboortedatum van een persoon mag liggen. Zelfde met totalen van orderbedragen, adressen die in postcodetabellen voor moeten komen, enz.

In een beetje serieuze database kom je dan al snel op programma's die doen wat reddog beschrijft. Als je dat eenmaal hebt dan is het echter een kleine stap om gewoon alle gegevens te genereren, en geen realistische basis meer te nemen. Als je alleen iets wilt demonstreren met 1 miljoen records, waarom niet op die manier wat random data uitspugen, ipv het risico te lopen op privacyschendingen?

PS: Volgens het hier genoemde CBP mag dit ook helemaal niet. De klant mag jou niet zo maar persoonsgebonden info geven, ze zouden dit al moeten anonimiseren voor het bij jou belandt...
Pagina: 1