Verifica Green Pass API

Buongiorno,
qualcuno sa se avendo la public key è possibile verificare la validità di un green pass?

1 Mi Piace

Certo, puoi verificare che la firma sia valida.

Saluti,

@Denis1971 puoi condividere piu codice? Ho provato la tua funzione Unzip() ma non me funziona. Io sono codificando in C#, come te, e voleva sapere come hai fatto per descodificare base45 e zlib. Io ho questo codice:

(Escusa il mio italiano, sono espagnolo e non lo parlo bene).

Il QR è un essempio dalle autorità belghe:

string codeQR = "HC1:NCFOXN%TSMAHN-H%OCHOS80JS3NL73:D4+OV-36HD7AOMOW4S2S**J4G5W/JT3FF/8X*G3M9BM9Z0BZW4V/AY733J7%2HV77ADFYRVNDF.93$PN-*0X37*090GVVNNGM5V.499TP+M5*K*U3*96846A$Q 76UW62U10%MPF65ZMNH6LK92R5QV1O2R0NLD+9 BLXE6UC65ZM176NF675IPF5$5QA46/Q6576PR6PF5RBQ746B46O1N646RM9XC5.Q69L6-96QW6U46%E5 NPC71AL6ZO66X69/9-3AKI63ZMLEQZ76UW6*E99Q9E$BDZIE9J/MJFZI*IB*NIZ0KA42BKBTKBA4229BCWKXSJGZI8DJC0J*PITQTA.SGD32OIZ0K%GA+ESCQSETC%ESISTR SR63+NTWVBDKBYLDN4DE1D-NSLFUKQ9B.UP-1AZJS9JE6F*ZJKE7+3G3UUS.77SU1QUB5JPN2R*O55OOQC*3JSH53SFN*46PBMZL+H2%-T$LVVV1Y:D3T3AP7BFPI7SYM0/KO+DG";            

// Delete HC1:
codeQR = codeQR.Substring(4);

// Decode Base45
string qrDecoded = codeQR.FromBase45();            
byte[] inData = Encoding.ASCII.GetBytes(qrDecoded);

// Don't know how to uncompress with Zlib

Ed è possibile, essendo un ente privato o della PA, richiedere accesso alle public key?

@RTsosssoldi Per il momento credo que ente privati non ho permesso per accedere alle EU GDC Gateway (API). C’è un procceso de onboarding o registrazione solamente per i paese della UE, ma non per ente privati (dgc-participating-countries/OnboardingChecklist.md at main · eu-digital-green-certificates/dgc-participating-countries · GitHub)

1 Mi Piace

Ho avuto il tuo stesso problema, e il problema è la lettura del QR CODE, ho fatto una piccola applicazione che legge il QR Code in C# e utilizzando una libreria che supporta il QR Code di tipo 2 ho avuto il codice corretto…

Mentre se l’app che devo sviluppare fosse per conto di un ente pubblico?

Ciao,
il codice è questo:
string codice = this.txtQRcode.Text.Substring(4);
byte[] b45 = codice.FromBase45_BytesArray();
byte[] tempCbor= Unzip(b45);

CBORObject cbor = CBORObject.DecodeFromBytes(tempCbor, CBOREncodeOptions.Default);
CBORObject cbor0 = CBORObject.DecodeFromBytes(cbor[0].GetByteString());
CBORObject cbor2 = CBORObject.DecodeFromBytes(cbor[2].GetByteString());

string jsonTemp = cbor2.ToJSONString();
this.txtGreenPass.Text = JsonConvert.SerializeObject(JsonConvert.DeserializeObject(jsonTemp), Formatting.Indented);

Nuget usati

  • Ionic.Zlib;
  • PeterO.Cbor;
  • Newtonsoft.Json;

La libreria PeterO.Cbor devi modificarla affinché restituisca un byte array.

Ciao Denis

Che Nuget hai usato per decodificare Base45 sulla linea codice.FromBase45_BytesArray()?

Grazie Mille per il tuo contributo, ho passato molti giorne a cercare questo.

Non sono sicuro, sul sito di onboarding (dgc-participating-countries/OnboardingChecklist.md at main · eu-digital-green-certificates/dgc-participating-countries · GitHub) si dice quanto segue:

For acceptance and production environment is a certificate required from a public CA which follows the CAB Forum Rules. The certificate must be a organizational validated certificate with the correct country information.

Puoi provare a registrarti se hai il certificato richiesto.

1 Mi Piace

Ciao,
il nuget è: GitHub - KeyserDSoze/Base45: Base45 Encrypting and Decrypting

Come ti dicevo devi modificarlo affinché restituisca un bute array-

Ciao Denis

1 Mi Piace

l’App accede al server nazionale per scaricare le chiavi, quindi deve essere possibile

1 Mi Piace

Ho provato a scrivere a cittadini[dot]gov[dot]it. Se ho qualche novità vi tengo informati.

cmq il database con le chiavi è accessibile su Android dopo avere avviato l’app per la prima volta.

1 Mi Piace

Non mi torna una cosa, magari qualcuno sa rispondermi.
L’app verificaC19 controlla solo che il QRcode non sia contraffatto oppure anche se è ancora valido tramite il codice univoco?

Faccio notare che le modalità di verifica del green pass sono regolamentate dall’art. 13 del DPCM 17 giugno 2021, che al comma 1 dice:

  1. La verifica delle certificazioni verdi COVID-19 e’ effettuata
    mediante la lettura del codice a barre bidimensionale, utilizzando
    esclusivamente l’applicazione mobile descritta nell’allegato B,
    paragrafo 4, che consente unicamente di controllare l’autenticita’,
    la validita’ e l’integrita’ della certificazione, e di conoscere le
    generalita’ dell’intestatario, senza rendere visibili le informazioni
    che ne hanno determinato l’emissione.

Inoltre il comma 5 dice:

  1. L’attivita’ di verifica delle certificazioni non comporta, in
    alcun caso, la raccolta dei dati dell’intestatario in qualunque
    forma.

Quindi, al di là del problema della verifica dell’autenticità del green pass (e dell’eventuale revoca), per ora non è proprio consentito eseguire la verifica con app proprie, né si possono conservare i dati in alcun modo (considerando anche che i dati del green pass sono considerati sensibili).

Le solite stupidaggini della politica che non capisce nulla di tecnica. I dati sono nel qr code, quindi te lo devo mostrare, ma tu non li devi leggere…

Ciao Vladan,
sono andato nella gazzetta ma non trovo l’allegato B di cui parlano.
Immagino si riferiscano all’app VerificaC19 oppure no?

Qui

1 Mi Piace

Questa è bella. Sulla gazzetta, in fondo c’è scritto:

Gli allegati tecnici sono consultabili sul sito istituzionale del
Ministero della salute (www.salute.gov.it).

Ma sul sito del ministero della salute non ce n’è traccia. Ho trovato il documento con google sul sito del governo:

Ci sono anche gli altri allegati, basa cambiare la lettera nell’url.

Il problema è che non c’è nessuna pagina sul sito del governo che contenga un link a questi allegati. Nell’elenco delle norme COVID in vigore:
https://www.governo.it/it/coronavirus-normativa

non c’è il DPCM 17 giugno 2021, ma da quello che ho capito io, dovrebbe essere ancora in vigore.
Non so che dire.

1 Mi Piace