Quando si accede a un sito che richiede la verifica dell’età, il meccanismo abituale è noto a chiunque abbia uno smartphone: un popup chiede di confermare di avere più di 18 anni, si clicca su “sì” e si prosegue. Nessun controllo reale, nessuna conseguenza per chi mente. L’app europea sviluppata dalla Commissione Europea rompe con questa logica e introduce qualcosa di strutturalmente diverso: un sistema in cui la piattaforma riceve solo una risposta binaria – l’utente supera o meno la soglia d’età richiesta – senza accedere ad alcun documento, data di nascita o dato identificativo di alcun tipo. Il progetto si chiama formalmente “blueprint per la verifica dell’età” ed è stato affidato al consorzio T-Scy, composto da Scytales AB, società svedese specializzata in identità digitale, e T-Systems International, sussidiaria di Deutsche Telekom. La prima versione è stata rilasciata nel luglio 2025; la seconda, più completa sul piano tecnico, nell’ottobre dello stesso anno. Il codice è open source, pubblicato su GitHub e consultabile da chiunque voglia verificare le affermazioni sulla privacy dall’interno, riga per riga.
Come si configura l’app e cosa succede al documento
Il funzionamento parte dalla configurazione iniziale, che avviene una sola volta. L’utente scarica l’app e la attiva puntando la fotocamera del proprio smartphone su un passaporto o una carta d’identità. Il dispositivo legge il documento tramite il chip NFC interno o tramite scansione ottica ed estrae la data di nascita. Da quel momento, il documento originale non serve più.
Quello che l’app genera a partire da quella lettura è un batch di circa trenta credenziali d’età monouso. Ogni volta che una piattaforma richiede la verifica, l’app consuma una credenziale, la trasmette e la elimina immediatamente. Questo meccanismo impedisce che chiunque – la piattaforma, un eventuale osservatore esterno, lo stesso sistema – possa ricostruire quali siti ha visitato l’utente incrociando le credenziali usate nel tempo. Quando il batch è esaurito, o comunque ogni tre mesi al massimo indipendentemente dal consumo, l’utente riscansiona il documento per ottenerne uno nuovo. Un dettaglio che vale la pena tenere a mente riguarda gli aggiornamenti d’età: poiché le credenziali sono statiche rispetto al momento della configurazione, chi compie 15, 16 o 18 anni deve generare un nuovo batch per aggiornare la soglia certificata. Le credenziali precedenti restano valide per le soglie già raggiunte, ma le nuove soglie richiedono una nuova lettura del documento.
Tutto l’elaborazione avviene sul dispositivo. Nessun dato transita su server esterni durante la configurazione o durante le verifiche successive. La piattaforma che riceve la risposta ottiene esclusivamente l’esito: valido o non valido.
I zero-knowledge proof e la differenza tra Android e iOS
La componente tecnicamente più rilevante dell’intera architettura riguarda i cosiddetti zero-knowledge proof, una tecnica crittografica che permette di dimostrare la verità di un’affermazione matematica – “questa credenziale certifica che l’utente ha più di 18 anni” – senza rivelare il dato su cui si basa l’affermazione stessa. La piattaforma riceve un risultato matematicamente verificabile. Non riceve la data di nascita, il nome, la nazionalità, né la credenziale in forma leggibile. È la differenza tra mostrare il proprio passaporto a uno sportello e ricevere da uno sportello automatico la conferma che il passaporto è valido: nel secondo caso, nessun operatore umano ha visto il documento.
Su Android questa funzionalità è già attiva. Su iOS l’implementazione è ancora in corso: nella versione attuale per Apple, al posto dei zero-knowledge proof viene usato il sistema a batch di token monouso già descritto, che garantisce la non tracciabilità ma con un livello di protezione crittografica inferiore rispetto alla versione Android. La Commissione ha confermato che il lavoro di integrazione sulla versione iOS proseguirà prima della fine del 2026.
Gli standard tecnici e il collegamento con l’EUDI Wallet
Sul piano degli standard adottati, l’app usa la W3C Digital Credentials API come metodo principale di presentazione delle credenziali, con OpenID4VP come protocollo alternativo. Entrambe le scelte sono deliberatamente allineate con l’architettura dei futuri portafogli di identità digitale europei – l’EUDI Wallet – che ogni Stato membro dovrà rendere disponibili ai propri cittadini entro la fine del 2026. L’app viene descritta come una “mini-wallet” proprio perché condivide con quei portafogli le specifiche tecniche di base: quando i sistemi nazionali saranno operativi, la funzione di verifica dell’età potrà essere integrata direttamente al loro interno senza riscrivere nulla, perché il linguaggio tecnico è già lo stesso. Gli Stati membri che partecipano al pilota – Italia, Francia, Spagna, Grecia e Danimarca – stanno adattando il blueprint al proprio contesto nazionale, con la possibilità di modificare aspetti come il branding e la lingua dell’interfaccia. Una regola però non è negoziabile: la componente che garantisce la privacy dell’utente non può essere alterata. Uno Stato membro può cambiare i colori dell’app o tradurre le schermate di onboarding, ma rimuovere il livello di anonimizzazione e continuare a distribuire l’app sotto il nome della Commissione non è consentito. Cipro e Irlanda si sono aggiunti ai paesi che pianificano l’integrazione nei rispettivi portafogli digitali nazionali.
Per le piattaforme che operano in Europa, il quadro normativo di riferimento resta il Digital Services Act: quelle soggette all’obbligo di limitare l’accesso ai minori non sono tenute ad adottare l’app europea, ma devono dimostrare che le proprie soluzioni alternative raggiungono un livello di efficacia equivalente. In assenza di questa dimostrazione, rischiano sanzioni. Il codice è gratuito e aperto a Stati membri, aziende private e paesi terzi, a condizione che il vincolo sulla privacy resti intatto. L’adozione su larga scala da parte delle piattaforme rimane la variabile che i prossimi mesi dovranno chiarire.
