Verifica dell’età sui siti per adulti, Dal Checco: “Rischiamo un mercato nero di token per ingannare l’app”

L'app europea per la verifica dell'età annunciata dalla Commissione Europea non sembra nascere sotto i migliori auspici. Eppure le premesse erano ottime. Mercoledì 15 aprile, Ursula von der Leyen in persona ha dichiarato che lo strumento per impedire ai minorenni di accedere a contenuti online inappropriati – siti porno, ma anche piattaforme social – era "tecnicamente pronto". La nuova app avrebbe permesso ai cittadini europei di verificare la propria età in modo del tutto anonimo grazie al sistema Zero Knowledge Proof (ZKP), un metodo crittografico che consente a un sito di dimostrare a un altro software che un'affermazione è vera (in questo caso l'età maggiorenne dell'utente), senza però rivelare alcuna informazione aggiuntiva. Dopo l'annuncio, l'entusiasmo ha però lasciato spazio alle prime perplessità. Decine di esperti di cybersicurezza hanno cominciato ad analizzare il codice dell'app, caricato in open source su GitHub, facendo emergere numerose falle che sollevano alcuni dubbi sulla fattibilità del progetto.
Secondo diversi esperti, il principale problema è che per come è stata progettata, l'app non può garantire l'efficacia del sistema di age verification senza ricorrere a strumenti di tracciamento, cosa che di fatto snaturerebbe la garanzia di anonimato su cui si basa l'intero programma. Fanpage.it ne ha parlato con Paolo Dal Checco, perito informatico forense ed esperto di cybersicurezza. "Alcuni colleghi hanno individuato problematiche evidenti in pochissimi minuti. Un dato preoccupante, perché suggerisce una certa mancanza di attenzione nelle fasi di sviluppo" ha spiegato. "Da un lato, potremmo ironicamente consolarci: una volta tanto non siamo noi italiani a essere sotto accusa per un software mal realizzato".
L'UE ha infatti assegnato la progettazione dell'infrastruttura informatica al Consorzio T-Scy, composto dalle aziende Scytales AB (Svezia) e T-Systems International GmbH (Germania). Tuttavia, la questione resta seria: se l'app dovrà essere adottata anche in Italia, andrà necessariamente sistemata. Il punto non è solo correggere qualche bug, ma rivedere l'intero approccio allo sviluppo.
Quali sono le vulnerabilità critiche emerse da queste prime analisi?
Ci sono problemi che definirei strutturali. Per perseguire una finalità positiva, ovvero non far sapere al fornitore di servizi chi sia l'utente che sta confermando l'età, sono state lasciate aperte diverse "porte". Alcune sono banalmente errori di implementazione. Per esempio, il fatto che il PIN sia forzabile, che si possa disabilitare il controllo biometrico o che esistano file di testo contenenti requisiti sensibili. Questo significa che qualcuno con il PIN e lo smartphone di un altro utente potrebbe entrare nella sua app, visionare i certificati assegnati e utilizzarli. Queste sono però criticità risolvibili. La questione centrale è però più profonda: come dimostrare a un sito di avere una certa età senza che il sito abbia la minima idea di chi siamo? È una sfida tecnica enorme.

Gli esperti hanno evidenziato come alcune falle siano intrinseche al sistema: non si possono risolvere senza rinunciare a un po' di anonimato. La Commissione Europea, però, vanta la possibilità di garantire il totale anonimato. È una strada percorribile?
Il principio dello Zero Knowledge Proof di dimostrare la validità di un'informazione senza rivelare i dati che la generano è la via corretta e va mantenuta. Si deve poter dimostrare di essere maggiorenne senza dire a un sito esterno chi siamo né quanti anni abbiamo esattamente. Tuttavia, è difficile conciliare questo con la necessità di legare l'autorizzazione al legittimo titolare. Le analisi attuali mostrano che è possibile sottrarre i "token" (i gettoni di accesso, ndr) dal dispositivo di un altro utente. In teoria qualcuno potrebbe addirittura generarli da zero. Se il token non è legato alla persona, diventa un oggetto fungibile: un po' come andare in Comune, dimostrare chi sono, ottenere 30 "gettoni" che certificano la mia maggiore età e poi posso darli a chiunque. Questo ovviamente vanifica il senso del sistema.
C'è il rischio che si crei un vero e proprio "mercato nero" di questi token?
Assolutamente sì. Se le falle non verranno sanate, il rischio è proprio la nascita di un mercato parallelo. Potremmo trovarci in una situazione simile a quella dei crack per i software o delle credenziali rubate, con pacchetti di "token di verifica" venduti nel Dark Web per pochi euro. Il paradosso è che per evitare questo commercio i token dovrebbero essere legati all'identità del soggetto, ma se lo facciamo, chi riceve il token può risalire a noi, distruggendo l'anonimato. La soluzione ideale dovrebbe impedire non solo l'identificazione, ma anche la tracciabilità: il sito non dovrebbe sapere nemmeno se l'utente che torna tre volte è sempre lo stesso.
Esistono già sistemi in grado di risolvere questo paradosso?
Non esiste una soluzione semplice, distribuita universalmente e priva di compromessi, per garantire l'anonimato assoluto insieme alla certezza dell'identità del titolare. Pensiamo all'app IO o allo SPID: sono tutti sistemi basati sulla certezza dell'identificazione. Qui, invece, per la prima volta si cerca di garantire un requisito senza poter verificare l'identità a valle. È un problema di una complessità estrema e non mi stupisce che la prima versione del codice presenti queste vulnerabilità. Spero che il lavoro continui in modo trasparente, anche se non è scontato che le future sorgenti rimangano pubbliche.