Door Bitje-scheef:Dit gaat niet werken. Iedere instantie mag het weten behalve de persoon waar het over gaat ?
Ik leg het te onduidelijk uit (of je hebt niet goed gelezen): de uitleg verderop met de layout van de "records" verduidelijkt het e.e.a. hopelijk.
In mijn voorstel krijgt iedere burger een geheimgehouden GUID, de "master" zeg maar (verderop noem ik dit een MBSN).
Daarvan wordt, per organisatie, een andere unieke GUID afgeleid: dat noem ik, vanaf nu en voor het gemak, een OSBSN (Organisatie Specifiek BSN). Je kunt erover discussiëren of de OSBSN voor de belastingdienst (BDBSN) moet afwijken van de OSBSN in de BRP (BasisRegistratie Persoonsgegevens, BRPBSN), maar de gezondheidszorg zou al een andere OSBSN kunnen gebruiken (GZBSN) - en andere NGO's zeker.
Dit systeem voorkómt dat allerlei verschillende organisaties databases met persoonsgegevens al te eenvoudig aan elkaar kunnen koppelen; als je het goed aanpakt kan mijn voorstel bovendien tot dataminimalisatie en lagere risico's op datalekken leiden.
Zo'n OSBSN is niet
strikt geheim (dus
totaal ongeschikt voor authenticatie, als "wachtwoord" zeg maar) maar het gaat wel om privacy-gevoelige informatie (want uniek identificerend binnen een beperkte scope) en moet
daarom zoveel mogelijk als vertrouwelijk worden behandeld. Je kunt een afweging maken of het überhaupt noodzakelijk is dat een burger elke OSBSN kent (en zou moeten onthouden, of ergens opschrijven - voor zover het niet op een identiteitsbewijs vermeld staat). Immers, het is vooral in het belang van de burger dat OSBSN's niet in verkeerde handen vallen; als burgers ze zelf niet "hebben" verkleint dat de kans.
Zo'n OSBSN hoeft overigens niet op de gebruikelijke GUID-schrijfwijze getoond te worden. Door een meer uitgebreidere karakterset dan 0..9 en A..F te gebruiken, kunnen ze korter worden (ik zou wel bepaalde letters vermijden om afleesfouten te voorkomen). Een mechanisme (slimme checksum) om fouten bij (zoveel mogelijk te vermijden) invoeren te voorkómen, is waarschijnlijk ook verstandig.
Aanvullingen op het bierviltjeEen iets uitgebreider systeem is denkbaar waarbij per burger, naast diens "master-GUID", er
per organisatie een (default niet bestaande) "modifier" wordt toegevoegd (vergelijkbaar met een nummer op een autokentekenplaat nadat de vorige is gestolen of is verloren): de BOMod (Burger Organisatie Modifier).
Die BOMod kan worden ingezet in het geval dat een OSBSN in verkeerde handen is gevallen en de burger deze (met gegronde redenen) wil wijzigen.
Je hebt dan, per burger:• Uniek identificerende gegevens van deze burger
• Master-GUID: MBSN (Master BSN): strikt geheim
• BOMod: default: bestaat niet (de waarde is dan 0). Anders:
per organisatie (OID) een modifier (getal 1..n).
Optioneel, per burger (indien deze ooit wijzigen, ook alle vervallen GUID's):
• BRPBSN (BasisRegistratie Persoonsgegevens)
• BDBSN (BelastingDienst)
• IDBSN (op paspoort, identiteitskaart en rijbewijs)
• GZBSN (algemene GezondheidsZorg)
• Oude BSN (zolang deze nog niet is vervangen door OSBSN's)
Per organisatie:• Uniek identificerende gegevens van de organisatie
• Geautoriseerd contact en evt. sleutels voor authenticatie en transportversleuteling
• OID: unieke identifier die nooit verandert
• Master-GUID: OSN (Organisatie Service Nummer): strikt geheim
• Desgewenst: een array van oude (vervallen) GUID's (met datum/tijd van vervallen en wellicht andere metadata).
Berekening OSBSN (uitgevoerd door de -noodzakelijkerwijs betrouwbare en vertrouwde) register-organisatie:
OSBSN := HMAC(MBSN, OSN + BOMod)Een organisatie die een consistente unieke ID (een OSBSN) van een burger wil, moet -om te beginnen- zelf zijn geregistreerd. Door uniek identificerende persoonsgegevens (of BRPBSN, of GZBSN, of IDBSN) aan te leveren, kan de register-organisatie het juiste OSBSN berekenen en retourneren.
Als het bijvoorbeeld om een organisatie gaat die gepseudonimiseerde patiëntgegevens voor onderzoek zal gaan gebruiken (zie de disclaimer onderaan), kan een zorgverlener daar een OSBSN (de Organisatie hier zijn de onderzoekers) voor laten uitrekenen door ofwel uniek identificerende persoonsgegevens, ofwel het GZBSN, aan te leveren bij de register-organisatie. Als de aanvrager daartoe geautoriseerd is (na betrouwbare authenticatie natuurlijk), berekent de register-organisatie het juiste OSBSN; uitsluitend de medische gegevens en OSBSN gaan dan naar de onderzoekers - zonder de persoonsgegevens dus. Bij een volgende set gegevens gebeurt herhaalt zich dit: dat levert hetzelfde OSBSN op.
Als medische onderzoekers hun data lekken, hebben zij pech: hun OSN zal dan moeten worden gewijzigd, waardoor toekomstige medische gegevens van een specifieke patiënt met een ander OSBSN zullen worden verstrekt, en dus niet meer gekoppeld kunnen worden (moet je maar fatsoenlijk beveiligen).
Voor de gezondheidszorg bestaat overigens al zo'n systeem, maar dit is totaal niet transparant (althans, ik heb er niks over kunnen vinden): noch met welk algoritme pseudoniemen worden berekend, noch wat er gebeurt bij datalekken van onderzoeksgegevens.
Met het door mij beschreven systeem kan altijd worden herleid (bijv. i.v.m. een rechtszaak), op basis van uniek identificerende gegevens, of voor een uniek geïdentificeerde persoon een gegeven OSBSN ooit kan zijn uitgegeven.
Overheidsorganisaties zouden (mits geauthenticeerd en geautoriseerd) bijv. een BDBSN kunnen opvragen op basis van een IDBSN, maar mogen slechts één OSBSN per burger opslaan. Fragmentatie betekent iets meer werk, maar de waarde van de gegevens daalt waardoor datalekken minder ernstig zijn
én dus de belangstelling voor gegevens door cybercriminelen kan afnemen. Oftewel, dit systeem kan veiliger zijn dan één "universeel" BSN per burger.
Verdere dataminimalisatieJe zou het systeem zo kunnen uitbreiden dat organisaties, zoals woningverhuurders en autogarages, naast per klant een OSBSN, een beperktere set persoonsgegevens opslaan - en die gegevens, op het moment dat zij deze nodig hebben, bij de registerorganisatie kunnen opvragen (na authenticatie en autorisatie). Bij misbruik heb je dan centrale logging en je kunt een rem zetten op bijv. het aantal persoonsgegevens per tijdseenheid. Het lijkt mij bijvoorbeeld in weinig gevallen noodzakelijk dat organisaties de exacte geboortedatum van hun klanten kennen; vaak zal een 18+ vlag voldoen.
Disclaimer: het concentreren van persoonsgegevens op één plaats is als een "pot suiker voor mieren"; de beveiligingseisen voor zo'n register-organisatie zijn dus zeer hoog. Ook het risico, dat herleid kan worden om
exact wie het gaat, bij het -gepseudonimiseerd- tracken van bijvoorbeeld patiënten, is erg groot (hoe meer datasets per OSBSN en/of hoe specifieker de medische gegevens of zeldzamer een combinatie van behandelingen, hoe eenvoudiger dat wordt). Ik ben hier geen fan van, zeker niet als de risico's niet door onafhankelijke en ter zake kundige partijen worden gewogen. Maar ik kan geen hemel en aarde bewegen; integendeel, mijn invloed is verwaarloosbaar. Wat ik
nog erger vind is het als malloten denken dat een hash van uitsluitend het huidige 9-cijferige BSN, of van de concatenatie van een salt (een niet-geheim organisatiegegeven) en dat korte BSN, onomkeerbaar zou zijn:
dat is het niet. Veel te veel "security-deskundigen" denken dat het zin heeft om korte "strings" zoals telefoonnummers of BSN's te hashen, en/of dat je geen MD5 mag gebruiken om wachtwoorden te hashen
omdat MD5 gebroken is (onzin, de enige reden is dat MD5
te snel is - maar dat geldt ook voor
niet gekraakte cryptografische hashfuncties).
Daarnaast kan het helpen als organisaties, per cliënt, wel een OSBSN bewaren (waar cybercriminelen en datahoarders niet heel veel aan hebben) indien dat er toe leidt dat zo'n organisatie minder
andere persoonsgegevens bewaart. Het aantal organisaties dat nu, zonder duidelijke noodzaak, absurd veel persoonsgegevens
online opslaat is krankzinnig (zie bijv.
https://www.security.nl/posting/795667/Woningcorporatie+Woonkracht10+betaalt+losgeld+na+ransomware-aanval), dat aantal (organisaties) en de hoeveelheid per organisatie bewaarde gegevens moeten absoluut omlaag.