Se questo messaggio, ricevuto recentemente su alcuni device personali, fosse vero, avremmo nullificato uno degli strumenti di controllo più importanti su cui si poggiano i piani post-pandemici di ripartenza economica, sociale, umana!
Purtroppo, qualche settimana fa, questa notizia si è diffusa rapidamente, raggiungendo diverse testate online e telegiornali nazionali. La prova offerta era abbastanza tangibile: un QR Code che – se validato con la app ufficiale VerificaC19 – restituiva un green pass valido per… Adolf Hitler, con tanto di data di nascita. La problematica, al di là della goliardia, restava molto grave: come era possibile che avessero trafugato delle chiavi crittografiche valide per la generazione dei Green Pass, che avrebbero dovuto essere gestite in modo assolutamente accurato da entità ministeriali o governative con processi dominati da una sicurezza ai massimi livelli?
Assieme alla velocità di diffusione della notizia, si è verificata anche la reazione dei gestori che hanno provveduto a invalidare sia il Green Pass valido a nome di Hitler che alcuni improbabili altri generati nel frattempo, come ad esempio quello di Spongebob Squarepants con relativa prova dell’invalidazione.
Tutto questo è avvenuto perché qualcuno ha trovato il modo di abusare delle chiavi. Più nello specifico, l’abuso sembra essere avvenuto tramite il codice dgca-issuance-web – facilmente reperibile perché condiviso sul sito GitHub dall’Unione Europea – unito a una chiave di firma valida in possesso di un utente. Il codice in questione rappresenta il programma utile a generare i GreenPass, che sono in tutto e per tutto paragonati a certificati cartacei di avvenuta vaccinazione, di avvenuto tampone oppure di avvenuta guarigione, trasposti in forma digitale. Analogamente a quanto avviene per i certificati cartacei, i certificati digitali per assumere valore devono essere firmati. Il processo di firma, non potendo utilizzare una penna, utilizza una chiave digitale privata che viene combinata con una chiave digitale pubblica inserita nel certificato. Questa chiave digitale pubblica è l’oggetto di verifica che permette di confermare l’originalità del certificato. La cosa alquanto improbabile, quindi, è l’utilizzo di una chiave privata valida – dal momento che le chiavi di firma sono date in ragione di una per nazione.
A peggiorare le cose il fatto che alcune nazioni, tra cui l’Italia, non possono invalidare soltanto alcuni certificati firmati con la chiave nazionale… ma dovrebbero invalidare la chiave; operazione che richiederebbe la riemissione dei milioni di Green Pass veri, ufficiali e validi emessi finora; costringendo i titolari a richiederne una copia tramite i noti canali tradizionali: sito online, farmacie, ecc. Secondo alcune fonti infatti, sono stati individuati almeno sei punti di accesso validi a portali in grado di generare Green Pass validi in modalità Anteprima utilizzando dati fittizi che non vengono poi salvati. Salvando quell’immagine, che rappresenta un certificato valido, è possibile generare i certificati che sono apparsi sul web con proprietari improbabili. Dopo il salvataggio dell’immagine, l’operazione può essere tranquillamente cancellata senza lasciare traccia alcuna dell’avvenuta generazione; di un certificato che resta – comunque – valido.
Quanto avvenuto sembra il frutto di una importante vulnerabilità di processo che, combinata con un fattore umano di dubbia liceità, ha creato le condizioni per annullare potenzialmente uno degli strumenti più riusciti per risollevarci dagli effetti devastanti della pandemia.
Nessun furto di chiavi quindi, almeno allo stato in cui le cose sono evolute finora. Soltanto una pessima igiene digitale nell’implementazione di un processo informatico. Fatto, questo, che dovrebbe farci riflettere su un aspetto che spesso accomuna molti incidenti informatici, tra cui quello di cui stiamo parlando. La tecnologia utilizzata per generare i Green Pass è sicuramente solida: combina infatti certificati digitali, visualizzazione di informazioni tramite QR Code che rende il tutto fruibile in modo semplice, uniformità di accettazione ed interoperabilità di implementazione tra più Stati. La falla, la parte vulnerabile in modo importante, riguarda più il processo di implementazione e la messa in opera. Qui di tecnologico c’è ben poco, perché il tema riguarda la gestione e la messa in sicurezza di un processo. Da quanto rilevato finora, è evidente che sono stati commessi errori gravi proprio in questa fase.
Un esempio è permettere la generazione di un’anteprima del certificato valida a tutti gli effetti, senza fare in modo che l’anteprima fosse controllabile solo da un’applicazione diversa da quella che avrebbe controllato la versione finale. Un altro esempio riguarda la gestione della riservatezza. Se l’emissione di un Green Pass è pertinenza di un organo governativo ufficiale ed afferma una verità incontrovertibile, avrebbe dovuto essere ristretta ad operatori tracciati, autorizzati, i cui privilegi dovrebbero essere concessi proprio a fronte di un’abilitazione specifica. Senza contare che qualsiasi applicazione, prima di essere “messa in produzione”, dovrebbe essere provata e validata proprio da esperti di sicurezza chiamati Penetration Tester. Questi hanno l’obiettivo di studiare le potenziali falle dell’applicazione, ma anche del modo di utilizzarla… e del potenziale modo di abusarne.
Se tutti questi passaggi fossero stati eseguiti preventivamente e rimediati a regola d’arte in caso di falle, oggi non ci troveremmo a fronteggiare un incidente. Cosa più importante, non dovremmo neppure sostenere i costi della risposta a questo incidente, che rischiano di essere davvero devastanti in termini sicuramente economici ma anche di credibilità di uno strumento di supporto alla ripresa economica e sociale davvero fondamentale.
Di Marco Rottigni, Chief Technical Security Officer area EMEA di Qualys