Verifica Green Pass API

Ti rispondo io perché ho fatto la solita domanda su Github :smiley:
No quella lista non è affidabile, è usata solo a scopo di esempio.
La lista la trovi solo da questo url:
https://get.dgc.gov.it/v1/dgc/signercertificate/update
E per usare questi certificati, puoi guardare e prendere spunto da questo issue

Ciao!

Oro!
Grazie mille!

Un’ultima domanda, senza poi dover più importunare nessuno sul forum (immagino che sarà utile anche agli altri sviluppatori):
Esiste una documentazione sull’API del sito https://get.dgc.gov.it/v1/dgc ?
Anche perchè a quel link mi scarica solo quello croato e non la lista completa, ma immagino sia solo questione di richiamare la risorsa giusta/passare i parametri giusti.

Se guardi nella Issue che ti ho mandato, ti mostra come utilizzre.
In parole povere dei appiccicargli il “----begin certificate---- -----end certificate—” e fare x richieste.
Ad ora a me ne risultano circa 250, ma ad ogni richiesta devi mandare un token specifico, nella issue che era stata aperta c’è un esempio.

Ok, grazie.
Scusa, ero andato direttamente alla carica aprendo l’altro link.

Ancora, grazie mille!

Hai ragione, anche a me non è chiaro il senso della chiamata a “status” in quanto gli stessi dati te li puoi ricavare ciclando sulla chiamate “update” e leggendo gli Header “X-KID”.
Per quanto riguarda le Rules di CertLogic, volevo provare a scriverne 3 in base ai 3 tipi di QRCode che possono essere gestiti (v,r,t) anzichè mettere una logica di IF hardcoded, nel caso non riuscissi prenderò spunto dal tuo esempio :-).

Il problema che vedo però è questo : Come si fa a realizzare un App/Servizio che possa dare le stesse garanzie di VerificaC19 se il check sul certificato lo si fa iterando su dati caricati in memoria senza collegarsi a servizi esterni uffiaicli ? basterebbe caricare in memoria anche certificati “fasulli” o Rules sbagliate. Temo che fino a quando non usciranno API/Servizi Ufficiali da poter integrare in prodotti di terze parti non si posso aggirare il problema.

Secondo me saranno obbligati a fornire della API ufficiali, a cui magari passare il Payload Cryptato o senza alcuni dati… A meno che sta cosa del GP non serva solo per incentivare la vaccinazione e poi morirà li.

Io sto usando la libreria DCC-UTILS, e come te mi ciclo ogni tot tutti i certificati e li salvo portandomi dietro Xkid e XNextToken, che però effettivamente ad oggi non vengono usati per la validazione.
Mi manca solo la parte di Rules e dovrei aver finito…

ho buttato un’occhiata un attimo a Verifica-C19 facendo una Velocissima scorsa, ho trovato questa cosa interessante.
Loro prendono gli headers X-KID dal “update”, poi li confrontano con quelli contenuti negli “status” per verificare se quello è un certificato valido.
Nella funzione fetchCertificate(resumeToken: Long)
Di VerifierRepositoryImpl.kt di Verifica C-19 puoi trovare la funzione che stavo analizzando.

Ah quindi se annullano un certificato, aggiornano solo la lista “status”… ci può stare… continuo a pensare che dato il peso in Kb di tutta sta roba, avessero fatto 1 sola chiamata con tutto era meglio… tanta complicazione inutile :slight_smile:

ci possono essere utili i codici fatti in svedese ?

con creazione di barcode e decodifica
https://diggsweden.github.io/dgc-java/javadoc/dgc-create-validate/se/digg/dgc/encoding/impl/package-summary.html

e classi di validazione
https://diggsweden.github.io/dgc-java/javadoc/dgc-create-validate/

1 Mi Piace

Qualcuno è riuscito a fare la procedura inversa?

No, come già detto, la procedura inversa può funzionare, al netto dei bug possibili presenti, solo se hai la chiave privata per rifirmare il certificato.

Sapessi quante cose si stanno facendo iIlegali in Italia contro i cittadini, vessati continuamente dalle istituzioni…Azioni che vanno contro i principi della carta costituzionale che i nostri padri costituenti hanno scritto per proteggere i nostri diritti conquistati con il sangue di tantissima gente.
Mi vieni a parlare proprio qui di illegalità ?non sai nemmeno cosa voglio fare.

NoVax, 5S e pure analfabeta informatico. Che stia alla larga.

1 Mi Piace

Buonasera,
Anche grazie ai preziosi commenti di questo forum ho scritto e pubblicato una libreria C# .NET Standard che permette di leggere e validare il contenuto dei green pass.
La validazione viene svolta mediante la verifica delle chiavi pubbliche disponibili all’indirizzo https://dgcg.covidbevis.se/tp/trust-list
Questa Trust List contiene molteplici chiavi europee, anche quella italiana.
A breve estenderò la libreria per poter validare codici anche a partire da chiavi pubbliche grezze fornite in configurazione.
La URL https://get.dgc.gov.it/v1/dgc/signercertificate/update risponde in modo iterativo, è sufficiente inviare la richiesta inserendo l’header X-RESUME-TOKEN progressivamente > 0
Il body della risposta è un certificato X509, codificato in Base64. Per leggerlo in C# è sufficiente usare new X509Certificate2(Convert.FromBase64String(.....))

Buon uso

3 Mi Piace

Non è possibile matematicamente fare l’inverso. Il sistema si basa su chiave pubblico-privata. Ovviamente a te per controllare danno solo quella pubblica, quella privata, come suggerisce il nome, è segreta.
Se non ti piace la matematica pensa che se tu riuscissi a risalire alla chiave privata partendo da quella pubblica significa che, per esempio e semplificando perché tu possa capire, potresti anche a forzare il meccanismo dei token (digitali o meno) dell’home-banking di tutte le banche… e fare bonifici a favore di chi vuoi tu… non ti pare che se si potesse fare veramente, qualcuno lo avrebbe già fatto, molto prima?

ciao mi potresti aiutare come decifrere il qr code
spiegandomi passo per passo

Direi che se leggi questo thread (e le pagine linkate) hai tutte le informazioni necessarie.

1 Mi Piace

Ciao a tutti e grazie per i preziosi suggerimenti! con la libreria dcc-utils sono riuscito a decodificare il green pass e a verificarne la firma. Ho un ultimo scoglio… la black list, che da quello che ho capito è presente a questo link:https://get.dgc.gov.it/v1/dgc/signercertificate/status
è corretto? qualcuno riesce a dirmi com’è codificata? Grazie!

Ciao! volevo fare una prova per rigenerare l’immagine QR,
e vedere se riesco a ricreare lo stesso QR partendo dalla stringa, ho provato
con la libreria zxing per java, nonostante avrei preferito una libreria
javascript per node, in effetti l’immagine si genera,
e contiene anche gli stessi dati, ma con bassa risoluzione,
e inoltre non ottengo lo stesso numero di quadranti.
faro sicuramente altre prove…ma quale libreria mi consigliate?

mi rispondo da solo. La libreria qrcode su node, ha funzionato egregiamente…