Verifica Green Pass API

Quindi per essere pragmatici, la lettura dei dati sul QR non è più un problema,
resta solo capire se e come è possibile avere la lista degli ID ‘Bannati’ ovvero i certificati che sono scaduti…
Voi siete riusciti a capire come ‘Rubarli’ dalla Verifica C17?

A quanto dal codice dell’app gli indirizzi dei server da cui scaricare la lista dei certificati dovrebbe essere qui:

A quanto capisco dovrebbe implementare l’api europea, descritta qui:
https://eu-digital-green-certificates.github.io/dgc-gateway/

(difatti nell’app gateway client vedo un append(“/trustList”) it-dgc-gateway-client/src/main/java/it/interop/dgc/gateway/client/RestApiClientImpl.java at 5077dd00bffbd27dd3f4f4924ed4138034eec27e · ministero-salute/it-dgc-gateway-client · GitHub)

Però se faccio una semplice richiesta get da firefox mi da access denied.

Vedo che ci sono degli elenchi di certificati in giro per la rete, ma essendo mantenuti da amatori non mi fiderei troppo.

Qualcuno ha idea dei passaggi da fare per scaricare la trustList?

Green Pass PHP Decoder partendo dalla stringa base45. GitHub - masterix21/green-pass: PHP Green-Pass library
https://pageloot.com/qr-code-scanner/#result per convertire il qrcode (immagine) in testo.

Sembra che su questa piattaforma del governo olandese sia possibile ottenere la chiave pubblica: https://verifier-api.coronacheck.nl/v1/verifier/public_keys

Qualcuno l’ha già implementata in questo bot GitHub - giuseppeM99/GreenPassVerifyBot: A telegram bot to verify the DGC/DCC QR Code

1 Mi Piace

Innanzitutto grazie mille per la risposta!
Nel bot viene richiamato lo stesso link che mi hai girato, però con v4 nel percorso invece di v1.
Da li riesco a scaricare una lista dei certificati contenente quello con cui è stato firmato il mio green pass (mentre nel caso di v1 non lo trovo).

Quindi ti ringrazio infinitamente!

che metodo hai usato per la verifica?

Buonasera a tutti!

Ho qualche problema a decodificare il QR del greenpass e penso che questo è il posto adatto per chiedere aiuto:

sto cercando di decodificare il QR in C#:
ho provato tutto quello che c’è scritto qui, dalla funzione per decodificare in base 45 la stringa che ottengo dal QR alla decompressione da zlib ma non riesco a farlo funzionare.
L’errore che ottengo riguarda la decompressione usando la libreria ionic.zlib, mi da errore “inflating: rc=2 msg=” e non riesco ad andare avanti. A questo punto, dubito anche la conversione in base 45 anche se, confrontando con vari tool online e un codice analogo scritto in java, il numero di byte che ottengo alla decodifica è uguale.

Avete qualche suggerimento/codice che posso utilizzare?
Grazie mille,
Luca.

Che stringa usi ? Quella del tuo QR o un’altra ? Se vuoi puoi provare quello che ho pubblicato io in js o python per verificare (io uso la shell linux di windows)

Grazie per la risposta.
Sto usando il mio personale. Ma ho provato anche con altri in realtà.

Con un tool che ho trovato in Java funziona, immagino che funzioni anche con il tuo (domani provo).

Credo che il problema sia proprio nei metodi che uso, c’è qualcosa che non va ma non capisco cosa e l’errore non aiuta…

Per la verifica della firma non ho ancora provato in realtà.

Però ho visto che c’è un certificato del ministero della salute italiano, con la stessa KID utilizzata nella firma COSE

perchè inventare l’acqua calda quando c’è questo?

GitHub - ehn-dcc-development/DGCValidator: Xamarin App for validating EU Digital Green Certificate

1 Mi Piace

Qui ci sono i certificati per validare,
https://dgcg.covidbevis.se/tp/
cliccare su “Trust list”
Perfettamente funzionanti in python

from cryptography import x509

with open(args.cert, “rb”) as file:
pem = file.read()
cert = x509.load_pem_x509_certificate(pem)
pub = cert.public_key().public_numbers()
fingerprint = cert.fingerprint(hashes.SHA256())
# keyid = fingerprint[-8:]
keyid = fingerprint[0:8]
keyid_b64 = b64encode(keyid).decode(‘ASCII’)

1 Mi Piace

Buongiorno, non mi è chiaro il modo con cui il pass viene validato senza utilizzare i dati anagrafici:
All’interno del payload trovo il ‘ci’ numero univoco, il messaggio COSE contiene la signature. Se fossero validati solo questi due valori, si potrebbe cambiare i dati anagrafici e ottenere comunque l’esito positivo alla verifica.
Quali sono i valori verificati? Viene eseguito un Match anche dei dati anagrafici? Se è così chi può assicurare che non ci sia un danno alla privacy?
Grazie

Buongiorno,

vi notifico che è stata rilasciata la libreria dcc-utils che contiene una serie di utility tra cui lettura del payload del certificato, la verifica della firma e la validazione delle business rule. Trovate alcuni esempi di utilizzo nella cartella examples. Ogni contributo/suggerimento è ben accetto!

Ciao,
è possibile, con questa libreria, controllare che il codice univoco del green pass sia effettivamente valido e non in “black list”?

Il green pass ha un codice univoco utilizzabile? Se si, quale formattazione hanno le cifre al suo interno? In altre parole, hanno un senso o sono stringhe messe a caso?

Deve leggere la documentazione

Buonasera Andrea,
grazie per il contributo, davvero utile.
Perdonami l’ignoranza, quando si parla di business rules si intendono regole generali definite dai singoli paesi per ottenere il certificato, corretto?
Come si verifica però la validità del DCC? Ovvero in che modo avviene la verifica che il green pass sia effettivamente valido (es. tampone negativo eseguito entro le 48 ore oppure che non sia stato ritirato per aver contratto il virus)?

Grazie
Riccardo

Buongiorno, che voi sappiate è possibile fare un fork dei sorgenti di Verificac19 per farlo funzionare con lettori QR ottici tramite sdk dei produttori di palmari/mobile computer, quindi senza fotocamera?
Ci sono dei vincoli per cui non è possibile distribuire versioni modificate?

Grazie

1 Mi Piace

Ciao Tobia,
ho lo stesso identico dubbio.
Io sto lavorando ad un prodotto che utilizza un lettore QRCode integrato in un tornello automatico per leggere il DGC, questo certificato poi lo validerei tramite un microcontrollore dedicato. Tuttavia, il art. 13 del DPCM 17 giugno 2021 comma 1 prevede che la verifica delle certificazioni avvenga tramite l’applicazione mobile allegato B paragrafo 4. (verificac19).

Quindi la “soluzione” che volevamo adottare era fare un fork della app verificac19 e modificarla aggiungendo un “intent” che permettesse di richiedere la validazione e integrità del QRCode letto. Oppure in alternativa, utilizzare il modulo “:decode” che viene adoperato all’interno della app verificac19 in un’altra app.

Dal punto di vista legislativo ti direi che non è proprio regolare, ma dal punto di vista tecnico è ciò che più si avvicina.

@astagi Io valuterei la possibilità di inserire nella versione ufficiale la possibilità di chiamare un servizio dell’app (verifica dell’integrità e validità del DGC) tramite intent che riceve come dato la striga del qrcode e come risultato dell’intent viene restituita la validità e i dati anagrafici della persona.