“Vergeetachtige verzending” voor vertrouwelijk gerechtelijk onderzoek
Geregeld is onderzoek nodig naar verdachte personen. Dit neemt niet weg dat de privacy van deze en andere personen gerespecteerd moet worden. Ook de confidentilaiteit van het onderzoek moet gegarandeerd blijven. Dit artikel reikt een waardevolle technologie aan om aan deze vereisten tegemoet te komen.
Het spanningsveld
Het gerecht voert geregeld onderzoeken 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 betrokken 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 zwakkeere 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.
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.
Een tweede mogelijke aanpak is dat de zender op voorhand elk record met een aparte, slechts door de zender gekende, symmetrische sleutel vercijfert. Alle 11 350 000 vercijferde records worden dan naar de ontvanger gestuurd (alsook eventueel latere updates). 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. Eén zo’n sleutel is (typisch) slechts 32 bytes, wat maar een fractie isvan 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. Bij een dergelijk 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 (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 input afkomstig van verschillende deelnemers. De invoer van de verschillende deelnemers blijft geheim, maar iedereen leert wel de uitvoer. Een groep individuen kunnen met behulp van MPC bijvoorbeeld hun gemiddeld loon 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.