Green Pass: come funziona l’app VerificaC19

Argomenti:
Pubblicato il: 08-08-2021 14:53 , Ultimo aggiornamento: 09-08-2021 10:57

VerificaC19 si occupa del processo di verifica dei Green Pass e viene utilizzata dai gestori che dovranno verificare la validità dei certificati delle persone che arriveranno nei locali e nei luoghi in cui sarà richiesto. Il certificato digitale/cartaceo Green Pass ha l’obiettivo di favorire la circolazione sicura dei cittadini, ed è in grado di attestare che una persona sia vaccinata, negativa al test o guarita dal COVID-19: l’app VerificaC19 è promossa dal Ministero della Salute, è open source e serve a chi di dovere a verificare che un certificato sia effettivamente valido.

VerificaC19 è open source

Comprendere il funzionamento di VerificaC19, che potete scaricare dall’app store di iOS e di android, è importante per chiarirsi le idee su cosa faccia  realmente l’app, se ci siano effettivamente rischi per la privacy e per contestualizzare l’uso dell’app stessa, che tante polemiche e controversie sta scatenando anche nel nostro paese. Essendo open source, è possibile comprendere tutti i dettagli del suo funzionamento, cosa che permette alla community di GitHub di segnalare bug, proporre migliorìe e così via.

Mentre scriviamo, sperimentando l’app in un contesto che lo consentiva sembra emerso che la libreria open source zxing. che viene utilizzata per leggere i QR Code in alcuni casi, ed apparentemente in condizioni di illuminazione non uniformi (troppa luce o troppa oscurità) sembra non funzionare e non riconoscere anche green pass effettivamente validi. Sottoponendo green pass direttamente da telefono, tuttavia, il problema non sembra presentarsi.

Da un punto di vista di “alto livello”, l’app VerificaC19 è in grado di verificare la validità del QR Code associato ad un Green Pass facendo riferimento ad un database di informazioni sanitarie (Health data repository), che sono poi, alla prova dei fatti, chiavi pubbliche valide.

La procedura di verifica si basa sulla validazione di una chiave pubblica e di una chiave privata, che intervengono in maniera distinta nel processo di validazione, come vedremo tra un attimo. L’app quindi interroga un database di chiavi pubbliche precedentemente scaricato, e lo uso per effettuare il controllo della validità certificato, passando per diversi formati di interscambio (JSON) ed emettendo un esito (positivo o negativo), codificato in Base45 (esistono degli encoder/decoder open source come questo, per inciso).

Come funziona VerificaC19

VerificaC19 è una semplice app con un pulsante singolo, che permette di fotografare un Green pass in forma di QR Code e validarlo.

VerificaC19 può funzionare anche senza connettività ad internet, e questa caratteristica merita di essere approfondita brevemente. Di fatto ciò è reso possibile dal fatto che l’app incorpora le chiavi pubbliche a livello UE, per ogni singolo stato membro, le quali permettono di firmare e autenticare tecnologicamente i certificati, eliminando la necessità di scaricare tutti i dati anagrafici in chiaro, in tutto o in parte, cosa che sarebbe scomoda ed insicura by design. Tali chiavi pubbliche sono pre-scaricate nell’app, e cambiano a seconda della direttive emesse dal Ministero della Salute di ogni stato membro.

Verifica del Green Pass passo-passo

Quando facciamo la foto al QR Code con l’app, in sostanza, ecco cosa succede (fonte):

  • aggiornamento periodico – ogni 24 ore – delle chiavi pubbliche valide: ogni chiave valida è identificata da un KID (Key Identifier)
  • scaricamento dei parametri che servono a validare il certificato
  • le chiavi fungono da firme, eliminando la necessità di salvare i dati specifici nel dispositivo e garantendo un livello base di privacy by default
  • l’unica eccezione che potrebbe invalidare l’app, da quello che suggeriscono alcuni ricercatori, è ovviamente che possa essere rilasciata un’app fake simile, ma diversa da quella originale (vedi qui per dettagli)

Il processo di generazione del certificato Green Pass segue opportuni protocolli sanitari, definite in relazione ai diversi casi d’uso specificati dal Ministero della Salute, e anche sulla base di quanto è stato concordato a livello europeo. Le caratteristiche chiave della generazione di un Green Pass si articolano in vari punti.

  • Anzitutto, sono accettati tre tipi di certificati: il certificato di avvenuta vaccinazione, il certificato di test con tampone negativo recente ed il certificato di guarigione dal Covid-19. L’obiettivo è chiaro, in questi termini: garantire la libertà di movimento sia a chi si trovi immunizzato dopo aver avuto la malattia che a chi abbia fatto il vaccino e anche a chi (cosa che a mio avviso molti stanno dimenticando, nelle interminabili discussioni di questi mesi) abbia un tampone negativo, pur non essendo vaccinato.
  • Il Green pass non è stato concepito come documento di identità, pertanto non dovrebbe essere considerato discriminatorio, anche perchè uno potrebbe sempre possedere quello di un altro (motivo per cui la verifica andrebbe sempre accompagnata dal contro-check del nome presente nel documento di identità).
  • Il certificato Green pass, quale che sia la forma, segue uno standard unico per tutti i cittadini europei, e può essere sia stampato su carta che salvato in formato digitale sullo smartphone.
  • Il QR Code che caratterizza ogni green pass contiene le informazioni chiave essenziali per identificare la situazione nei termini visti al punto 1, e viene firmato digitalmente per garantirne l’autenticità.
  • Il Green Pass è di per sè gratuito, e viene emesso sia nella lingua del paese di provenienza che in inglese.
  • Le informazioni contenute nel GP riguardano: nome, cognome, data di nascita, informazioni sul vaccino somministrato o sull’esito del tampone o della guarigione, ed un ID identificativo univoco. Tale impostazione permette ai certificati di poter essere testati in modo sicuro in relazione alle regole presenti in ogni singolo stato.

Come funziona internamente il Green Pass

L’app VerificaC19 è uno strumento digitale di verifica del QR Code associato al Green pass del cittadino; tramite esso, il gestore del locale o l’autorità adibita a farne uso in specifici contesti avrà la possibilità di verificare che sia valido. Cosa che non tutti sanno, anzitutto, l’app VerificaC19 è in grado di funzionare anche senza connessione ad internet, cosa che la rende utilizzabile facilmente anche nei luoghi in cui la connettività dovesse essere assente o poco funzionante.

La diffusione di certificati falsi del Green Pass, di fatto, ha reso indispensabile questa app verifica, e come vedremo a breve la sua progettazione aveva previsto implicitamente la possibilità di diffondere certificati non autentici, prevenendo e rilevando tale possibilità. L’app non memorizza dati sensibili del cittadino all’interno dell’app stessa del verificatore, ed il fatto stesso che funzioni anche senza connessione garantisce (anche se la verifica non è proprio formale, in questi termini) che quei dati non vengano trasmessi a terzi.

Il flusso di verifica, cioè quello che avviene quando un QR Code viene inquadrato per ottenere un esito, che potrà essere valido (spunta verde), non valido o scaduto (spunta rossa), consiste nell’invio del DGC (Digital Covid Certificate), e in una prima sostanziale identificazione del tipo di Green Pass. Quest’ultimo, infatti, potrà essere relativo all’avvenuta vaccinazione (con almeno una dose, oppure con il ciclo completo), all’avvenuto tampone negativo 48 ore prima del rilevamento oppure, ancora, al fatto che si sia guariti dal Covid-19. Il QR-Code viene poi verificato secondo criteri interni dell’app (probabilmente verifica di hash e checksum) e poi secondo le regole nazionali: a quel punto se tutto va per il verso giusto vengono elaborati Nome, Cognome e Data di nascita, senza ulteriori indicazioni anagrafiche o personali, ed infine viene emesso un ultimo scambio di dati che prevede la generazine di un ID univoco per verificare la validità del certificato.

In termini un po’ più tecnici, alla base della validazione vi è una verifica della firma digitale annessa al QR Code, ovvero la validazione di una chiave privata corrispondente alla chiave pubblica che sta effettuando l’operazione. Questo implica che, di fatti, VerificaC19 possiede le chiavi pubbliche relative agli enti che generano Green Pass validi, e facendo lookup su queste ultime rende “quasi” impossibile la generazione di eventuali certificati falsi. Dico quasi perchè, ovviamente, un malintenzionato che voglia falsificarne uno dovrebbe poter accedere materialmente ai backend di uno di questi enti, effettuando una violazione informatica abbastanza grave e – si spera – non troppo probabile (ammesso che gli enti stessi siano informaticamente blindati, cosa tutt’altro da dare per scontata e su cui bisognerebbe indagare).

Il flusso di comunicazione usato per la validazione è stato descritto nel progetto GitHub dal seguente schema di funzionamento, che (senza scendere in eccessivi dettagli) fa appello ad un gateway che gestisce le chiavi pubbliche, si interfaccia con un backend nazionale e, sfruttando una signature (firma digitale) ed una chiave privata (key) fornisce l’esito desiderato sulla base dei dati che sono stati trasmessi.

L’uso della crittografia asimmetrica, lo ricordiamo brevemente, permette a due soggetti (un cittadino ed uno stato, ad esempio) di comunicare in modo sicuro, utilizzando ognuno la propria chiave e rendendo alquanto improbabile un processo di violazione della crittografia sottostante (es. emissione di Green Pass falsi).

 

Dove scaricare VerificaC19?

Ecco i link ufficiali per scaricare le ultime versioni aggiornate dell’app in questione.

5/5 (3)

Che te ne pare?

Grazie per aver letto Green Pass: come funziona l’app VerificaC19 di Max Headroom su Trovalost.it
Green Pass: come funziona l’app VerificaC19 (Guide, Assistenza Tecnica)

Articoli più letti su questi argomenti:

Trovalost.it è gestito, mantenuto, ideato e (in gran parte) scritto da Salvatore Capolupo