Geregeld is onderzoek nodig naar verdachte personen. Dit neemt niet weg dat de privacy van deze en andere personen gerespecteerd moet worden. Ook de confidentialiteit van het onderzoek moet gegarandeerd blijven. Dit artikel reikt een waardevolle technologie aan om aan deze vereisten tegemoet te komen.
Het spanningsveld
Er wordt regelmatig vanuit justitie onderzoek gevoerd naar specifieke burgers, bijvoorbeeld in het kader van terrorismebestrijding. Persoonsgegevens die beheerd worden door derden moeten daarbij opgevraagd kunnen worden. Denk daarbij bijvoorbeeld aan metagegevens over telefoongesprekken gekend door telecomoperatoren of aan de verschillende officiële verblijfplaatsen doorheen de tijd, wat gekend is door het Rijksregister.
In een traditionele benadering vraagt justitie aan een organisatie om gegevens x, y en z over een specifieke burger aan te leveren. Er zijn echter twee bezwaren tegen een dergelijk naïeve benadering. Ten eerste is de privacy van de burger geschaad. Elke organisatie die informatie over hem of haar moet aanleveren komt immers te weten dat er een onderzoek loopt naar deze persoon. Dit kan risico’s inhouden. Een tweede bezwaar dat daaruit voortvloeit is dat dit de confidentialiteit van het onderzoek kan schaden. Er zijn dus goede redenen voor een andere benadering.
Deze zou eruit kunnen bestaan dat justitie gegevens x, y en z vraagt, niet enkel over Kristof Verslype, maar over alle burgers geboren in 1982, of nog extremer, over alle burgers tout court. De geconsulteerde organisaties zullen op die manier inderdaad de identiteit van de betrokkene niet te weten komen, maar anderzijds is er wel mogelijks sprake van een disproportionele verwerking van persoonsgegevens door justitie en moeten we justitie vertrouwen dat het de nodige procedures in acht neemt om alle records, behalve het relevante, onmiddellijk na ontvangst te verwijderen.
Er is dus een spanningsveld tussen enerzijds de privacy van de burger en de confidentialiteit van het onderzoek ten aanzien van de geconsulteerde organisaties en anderzijds de proportionele verwerking van persoonsgegevens door justitie. Dit spanningsveld lijkt op het eerste gezicht niet op te lossen.
Wat is Oblivious Transfer (OT)?
Gelukkig biedt cryptografie een krachtig hulpmiddel genaamd oblivious transfer (OT), of, vrij vertaald, vergeetachtige verzending. Het laat toe dat een ontvanger (zoals justitie) toegang krijgt tot een zelf gekozen record uit een set van records die door de verzender (zoals de telecomoperator) gekend zijn. De ontvanger krijgt slechts toegang tot dit ene record. De zender weet niet hetwelke. De zender komt enkel te weten dat de ontvanger toegang gekregen heeft tot één record uit de vooraf bepaalde set.
Oblivious transfer werd voor het eerst – in een wat zwakkere vorm – beschreven in 1981 en er is sindsdien veel onderzoek naar gebeurd in de academische wereld. Ondertussen is het – volgens de inschatting van de auteur – voldoende rijp om ook in overheidscontext gebruikt te worden. Het bestaat in verschillende varianten, waaronder 1 uit 2 oblivious transfer, 1 uit n oblivious transfer en k uit n oblivious transfer. In de eerste variant krijgt de ontvanger toegang tot één uit een set van twee records. In de tweede en derde categorie krijgt de ontvanger toegang tot respectievelijk 1 en k records uit een set van n records. Het idee is vrij eenvoudig; de zender vercijfert alle records in de set, verstuurt alle vercijferde records naar de ontvanger, waarbij het oblivious transfer protocol cryptografisch (wiskundig) afdwingt dat de ontvanger er maar 1 (of k) kan decrypteren.
Eerste resultaten
Smals Research heeft op basis van twee academische papers (deze en deze) een eigen 1 uit n oblvious transfer Java library geschreven, gezien er voor zover wij weten nog geen dergelijke library publiek beschikbaar is. Vervolgens hebben we de performantie getest op een standaard laptop (Lenovo Thinkpad L570, Win 10, Intel Core i5-6300 CPU @ 2,40Ghz, 16GB), waarbij de gegevens zich reeds in het intern geheugen bevinden en er 256 bit security gegarandeerd wordt. De rekentijd bij records van ongeveer 20 en 100KB en bij setgroottes van 1000, 10 000 en 25 000 wordt weergegeven in onderstaande tabel. Bemerk dat er wellicht nog ruimte is voor efficiëntiewinsten.
Indien een ontvanger toegang wil tot één record uit een set van 1000, waarbij het gemiddelde record 20KB groot is, zal er logischerwijs 20MB verstuurd moeten worden per query. Daarnaast zal de zender zo’n 0,7 seconden rekenwerk hebben, voornamelijk om alle data te vercijferen, terwijl de ontvanger 0,15 seconden zal moeten rekenen.
Stel dat een organisatie over elke Belg een record heeft, dan betekent dit dat er ongeveer 11 350 000 records zijn. Uit bovenstaande blijkt dat een setgrootte van een paar miljoen toch niet haalbaar is. Idealiter delen we de bevolking dus op in verschillende sets die allen ongeveer even groot zijn. Deze opdeling kan in principe vrij eenvoudig door bijvoorbeeld alle rijksregisternummers met dezelfde minst beduidende decimalen (of bits) samen te nemen.
Indien justitie informatie nodig heeft over de burger met rijksregisternummer 83.03.20-999.68, dan kan het bijvoorbeeld aan een aanleverende organisatie exact één record vragen uit de set van alle records waarvan het rijksregisternummer eindigt op ‘968’. Die set zal bestaan uit naar schatting 11 000 à 12 000 records. De aanleverende organisatie komt enkel te weten dat justitie toegang krijgt tot exact één record uit deze set.
Alternatief scenario voor grote sets
Een alternatieve aanpak voor grote datatsets is geïllustreerd in vier stappen in onderstaande figuur. De zender vercijfert op voorhand alle records, elk met een aparte, slechts door de zender gekende, symmetrische sleutel (stap 1). Dit kan erg efficiënt. Alle 11 350 000 vercijferde records
(alsook eventueel latere updates) worden vervolgens naar de ontvanger gestuurd (stap 2). De ontvanger beschikt zo over een volledige, weliswaar vercijferde, kopie van de gegevensset. Om toegang te krijgen tot een specifiek record wordt het oblivious transfer protocol uitgevoerd, niet zoals daarnet op de records zelf, maar op de bijhorende symmetrische sleutels (stap 3). Eén zo’n sleutel is (typisch) slechts 32 bytes groot, wat maar een fractie is van de grootte van de records zelf. Daardoor wordt het mogelijk een setgrootte van 11 350 000 te nemen bij het uitvoeren van het oblivious transfer protocol. De ontvanger krijgt zo toegang tot één van de 11 350 000 sleutels, waarmee vervolgens exact één record gedecrypteerd kan worden (stap 4). Bij een dergelijke uitvoering van het oblivious transfer protocol wordt zo’n 363MB, voornamelijk vercijferde sleutels, doorgestuurd, moet de zender een kleine 80 seconden rekenen, en de ontvanger 0,24 seconden (met onze eerder vermelde Lenovo L570).
De testresultaten van beide geschetste scenario’s geven in elk geval aan dat het gebruik van oblivious transfer haalbaar is in de geschetste context, dus voor het opvragen van gegevens over burgers in het kader van een onderzoek.
Kwantumresistente Oblivious Transfer
Toch is het niet onbelangrijk te vermelden dat onze implementatie steunt op, net zoals quasi alle publieke sleutelcryptografie vandaag, assumpties uit de klassieke cryptografie. Dergelijke assumpties zullen niet langer geldig zijn eens er voldoende sterke quantumcomputers beschikbaar zijn. Bijgevolg kan vanaf dan ook het geïmplementeerde OT protocol niet langer als veilig beschouwd worden. Wetenschappers werken ondertussen gelukkig wel aan kwantumresistente OT (QOT) protocollen (zoals vb. dit werk), die helaas ook wel beduidend minder efficiënt zijn. Schattingen wanneer een dergelijke kwantumcomputer gerealiseerd zal worden lopen uiteen van 10 tot 50 jaar, wat dus toch niet genegeerd kan worden bij het verwerken van gevoelige persoonsgegevens. Vandaar dat het toch noodzakelijk blijft dat de ontvanger de vercijferde records ook verwijderd en niet een aantal decennia bewaart. Dit zou gecontroleerd kunnen worden door een toezichthoudende autoriteit. QOT is dus op termijn een elegantere en robuustere oplossing die bij voldoende interesse vanuit onze klanten dan ook door Smals Research onderzocht zal worden.
Andere toepassingsmogelijkheden en conclusies
Ten slotte geven we nog mee dat OT een bouwblok is in diverse andere cryptografische protocollen, onder meer voor het simultaan ondertekenen van contracten over het internet (zie vb. dit werk), waarbij ofwel alle betrokkenen hun akkoord geven ofwel geen enkele. OT is eveneens een bouwblok voor multi-party computation (MPC), waarbij zonder centrale vertrouwde partij berekeningen gedaan worden op invoer afkomstig van verschillende deelnemers. De invoer van de verschillende deelnemers blijft geheim, maar iedereen leert wel de uitvoer. Een groep individuen kan met behulp van MPC bijvoorbeeld het gemiddeld loon van de individuen berekenen terwijl elk van hen hun exacte loon verborgen kan houden.
Concluderend kunnen we stellen dat oblivious transfer zeer nuttige toepassingen heeft en dat het in de praktijk inzetbaar is. Het integreren van OT in bestaande toepassingen is trouwens een voorbeeld van het in de GDPR gepromootte principe van privacy by design. Ten slotte, wat voor alle publieke-sleutel cryptografie geldt, geldt ook voor oblivious transfer: als er ooit een kwantumcomputer komt, dan zijn we beter voorbereid.
Aarzel niet ons te contacteren om mogelijke toepassingen binnen de context van de overheid in België met ons te bespreken!
Dit is een ingezonden bijdrage van Kristof Verslype, IT consultant bij Smals Research. Dit artikel werd geschreven in eigen naam en neemt geen standpunt in namens Smals.
Leave a Reply