De handout van de twee presentaties over datamasking gegeven tijdens TMAPdag 2013. Op welke wijze is testdata te ontdoen van privacy gevoelige informatie!
In het algemeen zijn er identificerende en kenmerkende gegevens. Kenmerkende gegevens zijn de gegevens die privacy-gevoelig zijn (banksaldo, ziekte, fraude), en in combinatie met identificerende gegevens(Naam, Adres, Woonplaats) ontstaat de noodzaak van anonimiseren(voor de wetgever, De Nederlandsche Bank, AFM, Concurrentie-gevoeligheid).
In deze presentatie is zichtbaar hoe relaties te ontdoen zijn van deze gegevens.
4. - Banksaldo
- Schulden
- Medicijn gebruik
- Ziekte
- Geloofsovertuiging
- Politieke voorkeur
- Salaris
- Telefoonhistorie
- Etc…
- Naam
- Geboortedatum
- Email
- Bankrekening nummer
- BSN nummer
- Adres
- Polisnummer
- Telefoonnummer
- Etc…
Persoonsgegevens
Identificerende Kenmerkende
“Elk gegeven over een geïdentificeerde of identificeerbare natuurlijke persoon”
Bron: Wet BeschermingPersoonsgegevens
5. Voornaam Naam Soort
ShuffleVerwissel waarden binnen een kolom
Frans
Jan
Dirk
Jansen
de Boer
Huisman
DATPROF
Klant
Klant
Klant
Leverancier
Namen
Hoe kunnen we namen maskeren?
Opmerkingen
• Gezinnen
• Partnernaam/Geboortenaam
• Unieke namen in kleine sets
• Geslacht / Aanschrijftitel
Oude Situatie
6. Voornaam Naam Soort
ShuffleVerwissel waarden binnen een kolom
Frans
Jan
Dirk Jansen
de Boer
Huisman
DATPROF
Klant
Klant
Klant
Leverancier
Namen
Hoe kunnen we namen maskeren?
Opmerkingen
• Gezinnen
• Partnernaam/Geboortenaam
• Unieke namen in kleine sets
• Geslacht / Aanschrijftitel
Nieuwe Situatie
7. Geboortedatum
Hoe kunnen we geboortedatums maskeren?
Voornaam Naam Geboortedatum
Frans
Jan
Dirk
de Boer
Huisman
Jansen
16-02-1954
25-11-1984
27-03-1974
Opmerkingen
• Behoud leeftijdgrens
• Verschillende formaten
• Spreiding
First day
Verander datum naar de 1e van dezelfde maand
Oude Situatie
8. Geboortedatum
Hoe kunnen we geboortedatums maskeren?
Voornaam Naam Geboortedatum
Frans
Jan
Dirk
de Boer
Huisman
Jansen
01-02-1954
01-11-1984
01-03-1974
Postcode
Geboortedatum 1e van de maand 1e van het jaar
87% 3.7% 0.04%
Bron: onderzoek anonimiteit door Prof. Dr. Latanya Sweeney (Harvard University)
Opmerkingen
• Behoud leeftijdgrens
• Verschillende formaten
• Spreiding
Nieuwe Situatie
9. BSN of Bank nummer
Hoe kunnen we 11-proef nummers maskeren?
Voornaam Naam BSN
Frans
Jan
Dirk
de Boer
Huisman
Jansen
232710016
023747006
211629583
168614728
200423526
158082618
Opmerkingen
• Vaker voorkomen van nummers
• Gironummers
Expression
Eigen functies of database functies
10. E-Mail
Hoe kunnen we e-mail adressen maskeren?
321
Voornaam Naam E-Mail
Frans
Jan
Dirk
de Boer
Huisman
Jansen
xxxxxxx@xxxx.xx
xxxxxxx@xxxx.xx
xxxxx@xxxxxxxxxx.xx
Scramble
Vervang bestaande karakters
Voornaam Naam E-mail
de Boer
Huisman
Jansen
F.deBoer@testdata.nl
J.Huisman@testdata.nl
D.Jansen@testdata.nl
Expression
Eigen functies of database functies
Frans
Jan
Dirk
14. Voornaam Naam Naam_Upper Geboortenaam Volledige naam
ShuffleVerwissel waarden binnen een kolom
Frans
Jan
Dirk
Jansen
de Boer
Huisman
Namen
Hoe kunnen we namen maskeren?
Lisa de Boer
Huisman
JANSEN
DE BOER
HUISMAN
DE BOER
HUISMAN
Pietersen
Jansen
De Boer
Huisman
De Boer - Pietersen
Expression
Eigen functies of database functies
NVL2(Geboortenaam,Naam||’-’||Geboortenaam,Naam)
Oude Situatie
15. Voornaam Naam Naam_Upper Geboortenaam Volledige naam
ShuffleVerwissel waarden binnen een kolom
Frans
Jan
Dirk Jansen
de Boer
Huisman
Namen
Hoe kunnen we namen maskeren?
Lisa
Huisman
JANSEN
DE BOER
HUISMAN
HUISMAN
Pietersen
De Boer
Huisman
Jansen
Huisman-Pietersen
Expression
Eigen functies of database functies
NVL2(Geboortenaam,Naam||’-’||Geboortenaam,Naam)
Nieuwe Situatie
16. 123
345
678
Namen
Hoe kunnen we namen maskeren?
Over meerdere tabellen?
Customer_ID Voornaam Naam
Vertaal Tabel
Customer_ID Naam Naam_PNEW
123 Jansen de Boer
345 De Boer Huisman
678 Huisman Jansen
Frans
Jan
Dirk
Jansen
de Boer
Huisman
123
345
678
Customer_ID Voornaam Naam Naam_Upper
Frans
Jan
Dirk
Jansen
de Boer
Huisman
JANSEN
DE BOER
HUISMAN
123
345
678
Oude Situatie
17. 123
345
678
Namen
Hoe kunnen we namen maskeren?
Over meerdere tabellen?
Customer_ID Voornaam Naam
Jansen
de Boer
Huisman
Vertaal Tabel
Customer_ID Naam Naam_PNEW
123 Jansen de Boer
345 De Boer Huisman
678 Huisman Jansen
Frans
Jan
Dirk
123
345
678
Customer_ID Voornaam Naam Naam_Upper
Frans
Jan
Dirk Jansen
de Boer
Huisman
JANSEN
DE BOER
HUISMAN
123
345
678
Nieuwe Situatie
18. Namen
Aandachtspunten bij veranderde datasets
Vertaal Tabel
Customer_ID Naam Naam_PNEW
123 Jansen de Boer
345 De Boer Huisman
678 Huisman Jansen
Customer_ID Voornaam Naam Naam_Upper
Frans
Jan
Dirk
Jansen
de Boer
Huisman
JANSEN
DE BOER
HUISMAN
123
345
678
Klaas Veenstra VEENSTRA987Nieuwe rij ->
Mogelijke oplossingen
• Random waarde opzoeken voor nieuwe rijen
• Shuffle nieuwe rijen onderling
• Voeg translatie tabellen samen.
19. Customer_ID Voornaam Naam Salaris
Frans
Jan
Dirk
Jansen
de Boer
Huisman
€43.000
€ 59.650
€ 34.000
123
345
678
Salaris
Het manipuleren van een salaris
Expression
Eigen functies of database functies
nieuw_nummer(salaris, -20, 20)
CREATE OR REPLACE function nieuw_nummer (
org_salary IN NUMBER,
min_perc IN NUMBER,
max_perc IN NUMBER) return number
is
new_salary number(10,2);
begin
new_salary := (
org_salary *
trunc(dbms_random.value(min_perc,max_perc)) /
100)
+ org_salary;
return new_salary;
end;
/
€49.020
€ 53.088
€ 40.800
Let op:
Eventuele schaal verdelingen
Afhankelijkheid tussen functies
20. Juli AugustusJuni
Vandaag
4-juni-83 20-juni-74 10-juli-74 25-juli-74 25-Augustus-74
Geboortedatum
Hoe kunnen we geboortedatums maskeren?
First day
Verander datum naar de 1e van dezelfde maand
1-juni-YYYY 1-juli-yyyy 1-augustus-yyyy
21. Juli AugustusJuni
Vandaag
Geboortedatum
Hoe kunnen we geboortedatums maskeren?
Expression
Eigen functies of database functies
Case: mensen mogen niet ten opzichte van vandaag van leeftijd veranderen
Random dag tussen
1ste en laaste van de maandRandom dag tussen
1ste en laaste van de maand
Random dag tussen
1ste en vandaag
Random dag tussen
Morgen en laatste van de
maand
22. Bedrijf Voornaam Naam
de Boer
Huisman
Jansen
Grolsch
Philips
KLM
Frans
Jan
Dirk
Bedrijven
C&A
KLM
Menzis
DUO
Grolsch
Heineken
Philips
Referentie tabel
Look-up
Vervang waarden met waarden
Shell
Rabobank
AIVD
Gevoelige gegevens vervangen
Hoe kunnen gevoelige gegevens vervangen?