Green pass: usate chiavi crittografiche per creare certificati falsi che funzionano, che succede?

Quando ho letto la notizia non volevo crederci. Da informatico mi ero fatto una idea diversa, ma il sistema di certificazione europeo ha prodotto qualcosa che stento a credere.

La notizia di questi giorni è quella del furto di alcune chiavi crittografiche che si usano per creare il QrCode per il Green pass. Con quelle chiavi e con gli algoritmi utilizzati (presi non si sa dove o comunque di pubblico dominio), di fatto, qualcuno riesce a produrre un QrCode per qualsiasi certificato, anche a nome di Topo Gigio.

Come dovrebbe funzionare il sistema in sicurezza

Prima, però, vorrei esporvi come mi aspettavo funzionasse il sistema.

La UE ha un grande archivio dove ci sono le anagrafiche dei vaccinati e i certificati verdi di tutti (anche di quelli con tampone 48 ore). Questo archivio blindato consente una consultazione ma solo a chi è autorizzato.

Per effettuare la consultazione mette a disposizione una app che letto qualcosa sul QrCode effettua una interrogazione su questo archivio centrale e legge i dati di chi sia il proprietario di quel certificato e li restituisce in chiaro. Praticamente mi aspettavo che il QrCode fosse solo un codice unico da usare per individuare il cittadino e non l’intero certificato criptato.

E’ per questo che quando ho appreso la notizia, ho sorriso e ho detto: ammesso che si riesca a produrre un QrCode valido, come si farà ad aggiornare l’archivio centrale con il certificato di Topo Gigio? Se no, una interrogazione non porterà alcuna risposta positiva e dirà che il tizio non è certificato, non trovandolo in archivio.

Ho, quindi, fatto una verifica sul QrCode del mio certificato. Ho scaricato l’app ufficiale che potete trovare qui e ho fatto il controllo. Prima di controllare ho messo il cellulare in modalità aereo, quindi isolato dalla rete.

Secondo la mia ipotesi, l’app non avrebbe dovuto funzionare ma invece, con mio stupore, ha dato i risultati mostrando che il certificato appartiene a me. L’app non usa internet per fare la verifica. Ciò dimostra una sola cosa: il QrCode contiene al suo interno tutti i dati necessari compresi quelli che vengono resi in chiaro: nome, cognome, esito della certificazione e data. Di fatto il QrCode, contiene al suo interno una stringa di dati criptati. Non serve alcun altro controllo on line per verificarne l’autenticità

Cosa vuol dire questo? Semplice: non occorre interrogare alcun database centrale per effettuare la verifica, l’app di fatto decripta i dati contenuti nel QrCode e li rende visibili.

Allora se siamo in possesso degli algoritmi di crittografia e delle relative chiavi possiamo produrre in autonomia il certificato? La risposta è Sì. Ed è anche stato semplice capirlo. E’ bastato usare l’app off line e rendersi conto che nel certificato c’è tutto.

Come funzionerà probabilmente il sistema e i suoi punti deboli

Di fatto pare che il sistema funzioni in questo modo:

  • Il sistema che genera i certificati usa un algoritmo e una chiave crittografica criptando i dati necessari come nome, cognome, data di nascita, scadenza certificato e forse altri dati.
  • I dati criptati vengono trasformati in QrCode per una leggibilità in formato elettronico tramite un lettore ottico. Questa trasformazione avviene con funzioni di pubblico dominio.
  • il QrCode può essere letto ma all’atto della lettura si ottiene il dato criptato. A questo punto l’app che legge applica una chiave di decriptazione per decodificarlo e ottenere i dati in chiaro.

Molto più probabilmente è stata usata una crittografia a doppia chiave asimmetrica pubblica e privata. La chiave privata segreta che viene usata per criptare i dati, quella pubblica viene usata per decriptare. Tutto il commercio elettronico si basa su questo sistema.

Nel caso specifico l’app di lettura usa una chiave publica che serve solo a decriptare i dati ma non a criptarli. La chiave segreta è solo quella di crittografia.

E’ proprio la chiave segreta di crittografia quella rubata. Ce ne sono sicuramente tante, non una, ma tutte consentono di cifrare dati che si potranno decifrare con la stessa chiave pubblica.

Qualcosa di simile ai cosiddetti documenti firmati elettronicamente dove la decifrazione serve a certificare che non siano stati manomessi.

Quindi cosa sarà successo? Di certo è stato trafugata qualche chiave di crittografia e altrettanto certamente qualcuno è venuto a conoscenza degli algoritmi di cifratura. Il sistema magari ne ha usato qualcuno non proprio segreto. Il vero segreto alla fine sta solo nella chiave, quella che è stata trafugata.

Così facendo, chi è entrato in possesso della chiave, può generare tutti i certificati che vuole. Basta fornire i dati di partenza per generare il certificato che si vuole. Nell’immagine che segue trovate il certificato di Michel Mouse nato il 31 dicembre 2001. Provate voi stessi.

Ma come è possibile che sia potuto succedere qualcosa del genere? Come è possibile che un sistema progettato per usare la massima sicurezza sia così facile da bucare e tra l’altro senza una possibilità semplice di correre ai ripari.

Cos’altro può essere successo?

Secondo quanto raccontano alcuni esperti, più precisamente potrebbe essere successa un’altra cosa comunque non meno grave. Gli enti autorizzati all’emissione di certificato hanno anche la possibilità, nel sistema di effettuare una preview dei dati senza generare il certificato. Sarebbe facile, quindi, che un funzionario compiacente possa generare una preview senza poi salvarla ma stamparla o comunque fornirla per le vie brevi e successivamente cancellarla. Questa potrebbe essere la spiegazione che sicuramente da un lato non ci dà certezza sulla fuga di chiavi, dall’altro forse è ancora più grave, poiché fa sì che chiunque abbia accesso al sistema possa di fatto produrre certificazioni false senza conservarle ma comunque valide per i controlli.

Quali soluzioni?

Quale sarebbe la soluzione? Di certo occorrerebbe centralizzare il meccanismo di verifica, creando una App aggiornata che effettui un controllo interrogando l’archivio centralizzato on line, proprio come avevo ipotizzato funzionasse il sistema. In questo modo il signor Topo Gigio non avendo una vera scheda anagrafica nel sistema centralizzato, pur presentando un QrCode ben fatto non passerebbe i controlli.

Tutta questa storia lascia sbigottiti per la leggerezza delle scelte tecniche. Sarebbe come se un sistema di pagamento con bancomat o carta di credito si fidasse dei dati presenti nella carta, senza effettuare una verifica on line per vedere se c’è disponibilità economica. Non occorreva certo inventare nulla di nuovo ma far sì che un sistema fosse fornito di meccanismo di controllo adeguato. Non è così difficile immaginare che possa esserci anche una fuga di chiavi crittografiche dagli ambienti di lavoro e un sistema di controllo centralizzato avrebbe reso vano la possibilità di creare certificati falsi.

Di certo il sistema informatizzato della UE non ne esce a testa alta e sicuramente la fiducia in esso sarà irrimediabilmente compromessa. Non basterà porre rimedio con qualche pezza informatica.

  •  
  •  
  •  
  •