Artikel
Development
5
 min

Data ophalen bij overheidinstanties zonder gebruik van privacygevoelige persoonskenmerken

Tijdens ons werk aan het nID project kwamen we een interessant probleem tegen: hoe wisselen we data uit tussen partijen zonder dat hier een gemeenschappelijk identificatienummer voor gedeeld hoeft te worden?

Wanneer data verdeeld is over meerdere partijen en deze partijen gebruikmaken van een gedeeld nummer als identificatienummer, dan maakt dit het makkelijker om datasets te combineren. Zo wordt bij overheidsinstanties bijvoorbeeld vaak het burgerservicenummer gebruikt als belangrijkste identificatienummer. Dit lijkt misschien wenselijk omdat dit het uitwisselen van data gemakkelijker maakt, maar voor de bescherming van gevoelige gegevens zou het beter zijn als hier een nummer aan hangt dat men minder makkelijk kan herleiden. In het geval van een datalek of onterechte toegang, zoals bijvoorbeeld bij de GGD tijdens de coronapandemie, wil je deze data het liefste zo anoniem mogelijk hebben.

Toch wil je tijdens de communicatie tussen partijen wel kunnen aanwijzen waarover je communiceert. Wij hebben hier voor nID een oplossing voor bedacht. Door gebruik te maken van versleutelde pseudoniemen kunnen partijen informatie uitwisselen zonder dat deze een identificatienummer hoeven te delen.

Pseudoniemen

Aangesloten partijen kunnen digitaal een pseudoniem aanvragen via een API koppeling bij nID. Tijdens dit proces maakt het systeem eerst een willekeurig getal aan - dit is het interne ID bij nID voor dit pseudoniem - en combineert deze (XOR) met een organisatie-identificatienummer - dit is het nummer waarmee een organisatie geregistreerd staat bij nID. Als laatste versleutelen we het samengevoegde nummer. Het resultaat is een unieke reeks karakters, het pseudoniem.

Voor de versleuteling maken we gebruik van AES (digitaal versleutelingsalgoritme) omdat we deze op een deterministische manier kunnen toepassen. Dit houdt in dat we de versleuteling van de combinatie van ID en organisatie later opnieuw kunnen uitvoeren en dat de uitkomst van deze versleuteling dan hetzelfde zal zijn. De organisatie kan dit pseudoniem vervolgens gebruiken als identificatienummer om bij data op te slaan. Dit kan een persoon zijn maar het mag ook iets anders zijn, zoals bijvoorbeeld een auto, een paspoort of de aanvraag voor een vergunning.

Communiceren

Om te kunnen communiceren met anderen kan een organisatie bij het nID-systeem een pseudoniem aanvragen voor een andere partij. Tijdens dit proces maakt het nID systeem eerst de AES versleuteling ongedaan. Daarna ruilen we het organisatie-identificatienummer van de aanvrager om met het nummer van de ontvangende partij. Hierna passen we opnieuw de AES versleuteling toe, waarna we een nieuw pseudoniem hebben voor de ontvanger.

Als laatste versleutelen we dit pseudoniem nog een keer op een manier waardoor alleen de ontvangende organisatie deze weer kan ontsleutelen. Dit doen we door gebruik te maken van RSA (digitaal versleutelingsalgoritme) met de publieke-sleutel van de organisatie.

Bij RSA heb je twee sleutels: een publieke-sleutel om te versleutelen, en een privé-sleutel om te ontsleutelen. Dit heeft als voordeel dat een organisatie zelf haar sleutels kan creëren en dan alleen de publieke-sleutel hoeft te delen. De uitkomst van dit proces is niet-deterministisch. Dit houdt in dat je twee keer hetzelfde pseudoniem kan versleutelen en dat er dan toch twee verschillende resultaten uitkomen. Dit heeft als voordeel dat je aan deze extra-versleutelde pseudoniemen niet kan zien of ze hetzelfde zijn. Tijdens het ontsleutelen door de ontvanger komt hier wél altijd hetzelfde pseudoniem weer uit.

De aanvrager krijgt dit versleutelde pseudoniem om te kunnen communiceren met de andere partij. Bij ontvangst ontsleutelt de ontvangende partij het pseudoniem met haar privé-sleutel.


Burgerregie

Burgers kunnen via nID toestemming geven aan organisaties om gegevens uit te wisselen. In deze processen worden pseudoniemen vaak gecombineerd met een omschrijving van de data die mag worden opgehaald. Vervolgens komt hier een digitale handtekening onder waarmee organisaties kunnen verifiëren of de aanvrager toestemming heeft om de data op te halen.

We maken gebruik van JWT-tokens (digitaal ondertekende data) om deze digitale toestemming te creëren. Het voordeel van deze tokens is dat ze een houdbaarheid kunnen hebben waardoor toestemming ook tijdelijk kan worden afgegeven en dat ontvangers de handtekeningen van de tokens zelf kunnen controleren.

Decentraal

Omdat organisaties zelf de geldigheid van de tokens kunnen controleren, kunnen ze direct met elkaar communiceren zonder dat deze communicatie door een centraal doorgeefluik hoeft te verlopen. De communicatie tussen partijen is uiteindelijk dus echt decentraal.

Daarnaast zorgt het gebruik van de versleutelingsalgoritmen ervoor dat nID geen lijst bij hoeft te houden van alle pseudoniemen die zijn uitgegeven. Het systeem hoeft zelfs niet te weten waar een pseudoniem voor gebruikt gaat worden. Op deze manier zijn pseudoniemen een schaalbare bouwsteen in het nID-systeem, om aangesloten instanties te helpen om op een veilige manier data uit te wisselen.

Infographic

No items found.
Meet weten over nID
nID Stelsel: Veilige gegevensuitwisseling tussen domeinen
Lees de case

Wij zoeken talent!

Vacatures