Verifica Green Pass API

Perché non puoi ricostruire la firma presente nel COSE.
Ma che senso ha quello che stai cercando di fare?
Hai già il QR codificato con quei dati… A meno che tu non voglia modificare un dato sei già a posto

All’interno c’è una firma che se modifichi i dati non matcha più.

Ciao a tutti,
mi chiamo Lorenzo e lavoro per un’azienda di videosorveglianza.

In seguito all’emergenza COVID abbiamo sviluppato dei termoscanner per il rilevamento della temperatura.
In questi giorni abbiamo integrato il dispositivo con un lettore di Green Pass: siamo riusciti sia ad ottenere la lettura che la data di scadenza.
Ora ci mancherebbe avere l’autenticità del certificato, cosa che non riesco proprio a capire come fare. L’unica idea che mi è venuta è quella di caricare all’interno del firmware del termoscanner tutte le chiavi pubbliche di Certificazione Digitale dei diversi paesi Europei per la verifica della firma digitale sul certificato.
Qualcuno ha idea di dove e come si possano scaricare queste chiavi?

Grazie

Ciao Lorenzo, se leggi il thread è tutto spiegato in qualche messaggio precedente.

Valutate anche il tema della legge: a prescindere dagli aspetti tecnici, attualmente pare avere valore legale solo la validazione del GP fatta con l’app “VerificaC19” (anche di questo trovi informazioni più in alto nel thread)

1 Mi Piace

Ciao Luca,

intanto grazie mille per la risposta, ora leggo tutto il thread!

Ciao,
grazie a tutti per le info, ma probabilmente mi sfugge qualcosa:

  1. ho scaricato tutti i certificati disponibili oggi (174) da https://get.dgc.gov.it/v1/dgc/signercertificate/update
  2. ho scaricato tutti i kid su https://get.dgc.gov.it/v1/dgc/signercertificate/status
  3. confrontando i kid del punto 1 con quelli del punto 2 sono tutti identici …

Vuol dire che nessuno dei certificati è valido?
Cosa non capisco?

grazie

direi che sono tutti validi (rileggendo mi sono reso conto di aver scritto di fretta invertendo la “logica”).
L’app fa questo:

if (validCertList.contains(responseKid)) {
                Log.i(VerifierRepositoryImpl::class.java.simpleName, "Cert KID verified")

Ciao Luca e grazie per le info.
Ho scaricato nuovamente oggi tutti i kid e i certificati e confrontandoli vedo che sono identici a quelli di ieri, ne uno in più ne uno in meno. Come è possibile? Non dovrebbero variare o aggiungerne?

Inoltre mi chiedo, se i kid e i certificati attualmente sono solo 174 e i green pass emessi decine di milioni, nel caso in cui dovessero invalidarne uno come funziona?

Non vorrei che ci fosse un’altra lista contenente le chiavi pubbliche dei green pass validi … possibile una chiave per ogni green pass?

basterebbe che l’applicazione oltre a leggere il qrcode, potesse leggere con una text box il codice qr. In questo modo si potrebbero utilizzare scanner professionali e non la telecamera del pc, soggetta a problemi di luce, fuoco etc.

Ciao Mario,

l’utilizzo del DGC (digital green certificate) come pass ha causato un po’ di confusione…

Come hanno rilevato correttamente alcuni ricercatori (ricordo un articolo di Zanero del Polimi) attualmente la revoca del singolo DGC non è possibile e non vi è alcuna implementazione nell’unica app ufficiale (VerificaC19) in tal senso.

L’elenco dei certificati che scarichi (e il loro confronto con l’elenco dei KID validi) rappresenta le “entità” autorizzate a firmare i DGC. La revoca di uno di questi penso sia stata implementata come misura estrema in caso - ad esempio - di furto della relativa chiave privata. Tale revoca avrebbe un impatto molto serio perché invaliderebbe tutti i DGC firmati da tale entità.

Parlavo di confusione perché l’intento iniziale del DGC era fornire un certificato che attesti qualcosa (vaccinazione…). Se lo intendi così, effettivamente ha poco senso il concetto di “revocarlo”: quello che il certificato attesta è vero a prescindere dal fatto che successivamente sia successo qualcos’altro (es. ti sei ammalato).

Spero di aver chiarito il tuo dubbio: se cerchi in Rete troverai diversi articoli riguardanti proprio il concetto di “revoca” di un DGC e le implicazioni tecniche…

Ciao!

La società Datalogic, tramite un proprio sviluppatore, ha proposto una PR per l’app android per una integrazione in tal senso (via Intent):

Vedo che la PR è in fase di review da parte di uno sviluppatore dell’app quindi sembra che non vi sia una preclusione a priori…

1 Mi Piace

Salve,
vorrei segnalare la pagina che ho creato per decodificare il greenpass:

https://github.com/jumpjack/greenpass/blob/main/README.md

La particolarità è che pare che sia l’unica al mondo (quantomeno dopo una settimana di ricerche su github…) che funzioni offline, in modo standalone, senza richiedere installazione di diavolerie particolari (.net, python, node.js, compilatori C++,…): si apre la pagina e via, è già tutto pronto.

L’ho creata con l’unico scopo di capire cosa c’è scritto nel mio QR code, cioè per capire “cosa mi leggono” ogni volta che me lo scansionano, ma senza dover inviare il mio QR code a nessuna pagina; quindi la pagina non effettua nessuna operazione di validazione, verifica, controllo… L’unica cosa che fa è estrarre i 4 oggetti headers1, headers2, cbor_data, e signature, ma poi si limita solo a decodificare ulteriormente cbor_data per estrarne il file JSON; con gli altri tre elementi non ho assolutamente idea di cosa fare in javascript… Se qualcuno riesce a spiegarmelo, tanto meglio, sennò sono già contento così. :slight_smile:

Una cosa che ho notato è che tutti i QR code hanno una “scadenza tecnica”, cioè scade proprio il QRcode (campo “4” del JSON), non il certificato, ma qualcosa come 20 mesi dopo l’emissione; invece il certificato vero e proprio ha una scadenza codificata nel QR code solo se è un certificato di guarigione (campo r/du, = Date Until), altrimenti non c’è nessuna data di scadenza.

Ultima nota: il mio javascript fa un po’ schifo, quindi la pagina contiene diverso codice che ho scopiazzato di qua e di là senza nemmeno capire come funziona… l’importante è che funzioni, perchè come dicevo, ero solo curioso di capire cosa c’è scritto nel QRcode che ho in tasca.

2 Mi Piace

Però li si parla di una SDK, sicuramente discorso interessante qualora si sviluppino applicazioni che richiedono una verifica del greenpass. Invece io pensavo ad una modifica dell’applicazione VerificaC19 inserendo una texbox che avrebbe ricevuto la stringa del qrcode letta dal lettore.

Scusa ma stai dicendo che per scaricare le firme valide dei certificati disponibili basta eseguire? https://get.dgc.gov.it/v1/dgc/signercertificate/update
Mi dici dove hai trovato questa informazione che sono giorni che la cerco?
Esiste un get analogo per ogni nazione o questi sono quelli disponibili attualmente per tutte le nazioni?

grazie

Ciao Walter

l’URL si trova analizzando il codice sorgente (disponibile su Github) dell’app ufficiale.

Non ti basta una sola chiamata, devi farne in successione modificando il valore dell’header x-resume-token finché li hai scaricati tutti (se leggi qualche messaggio sopra è spiegato).

Teoricamente dovresti poi scaricare anche la lista dei certificati “validi” per gestire l’eventuale revoca (anche qui spiegato sopra)

bye

Scusa, ma, a parte fare domande, hai letto questo thread ? Per intero ?

Rispondo direttamente sul tema in quanto referente di Datalogic S.p.A. sul tema. La nostra proposta di modifica interviene a tutti gli effetti sulla app VerificaC19 e con molti lettori professionali non richiede sviluppo di codice ma una semplice configurazione. Questo è vero ovviamente per i prodotto Datalogic e per i prodotti Honeywell. Al momento non è vero per i prodotti Zebra ma la modifica da applicare alla app sarebbe piuttosto semplice. Quindi la funzionalità è a tutti gli effetti pronta all’uso e decisamente molto preferibile a soluzioni basate su tecniche di Keyboard Wedge.

1 Mi Piace

Non so se qualcuno dei partecipanti al Forum abbia informazioni in merito ma mi è stato chiesto di capire se esista un modo formale per contattare il team responsabile della app VerificaC19 e quindi avere risposte a temi significativi per aziende ed integratori come ad esempio:

  • se e come è possibile collaborare oltre a proporre PR;
  • piano di rilascio aggiornamenti della App;
  • tempi e modalità di approvazione delle PR;

Il tema Green Pass almeno in Italia viene preso molto seriamente e quindi richiederebbe modalità di gestione chiare a trasparenti ma al momento vediamo molta confusione e ci è veramente difficile capire come procedere. Cosa sia permesso e cosa non lo sia. Sappiamo di aziende che implementano un loro Kiosk di verifica dei Green Pass ma non ci è chiaro come questo possa essere lecito stante la normativa vigente ma del resto non ci pare neppure così corretto che possa esistere una normativa così stringente. Vediamo commenti di sviluppatori intenti ad implementare dei loro validatori… peccato che non possano essere utilizzati. Insomma molta confusione. C’è qualcuno che abbia conoscenze e/o ruolo per aiutare a diradare la nebbia? Cosa debbono o possono fare aziende come la nostra ma anche aziende di sviluppo soluzioni per piccoli o grandi eventi per fornire soluzioni più efficienti di quella attuale? ZXing è una libreria open source non più manutenuta e di dubbia qualità.

1 Mi Piace

Ad oggi l’unico strumento di verifica legale è VerificaC19, su questo non ci sono dubbi.
Il problema relativo all’integrazione ovviamente non è tecnico, ma normativo. Serve una volontà Ministeriale di procedere in tal senso.
Presumo che tutto sia ad un punto di stallo per (almeno) due ragioni:

  1. Privacy: offrire un WS pubblico basato su C.F. (ipotesi più semplice) significherebbe rendere pubblici dati particolari sanitari o, qualora il WS si limiti a restituire l’esito della verifica, potenzialmente ogni giorno si potrebbe conoscere la validità del green pass di chiunque su base nazionale (non a caso nelle scuole il MIUR, in accordo con il Garante, ha limitato questa estrapolazione al solo personale di turno in quel giorno)
  2. Verifica in app: se app non istituzionali facessero quello che fa C19, chi potrebbe garantire che il codice funzioni correttamente?

Concordo che l’unica integrazione ad oggi possibile sia quella che preveda di sfruttare C19 a partire dal QR code scansionato.

1 Mi Piace

Esisterebbe anche la possibilità di prevedere una certificazione di applicativi di terze parti scaricando sugli implementatori di applicazioni alternative la responsabilità di eventuali violazioni delle norme sulla privacy o del processo di validazione con responsabilità civili o penali e magari obbligando allo sviluppo di tali applicazioni in modalità open source. Questo permetterebbe ad aziende come la nostra ad esempio di aprire un progetto Open Source sviluppato a partire da VerificaC19 che potrebbe essere verificato riga per riga da qualsiasi ente interessato. L’alternativa sarebbe una gestione trasparente del progetto VerificaC19. Al momento non si conosce nulla sul processo di accettazione delle PR: chi decide, in che tempi e con quali motivazioni.

1 Mi Piace