Closed st4nny closed 3 years ago
Ciao,
ho pushato un nuovo branch: issue-18-cnam-verification con una modifica (switch --list-keys) in grado di fare la lista delle varie chiavi.
Quelle di cnam dovrebbero essere:
176 fNstNUxgGSI= C:FR O:CNAM OU:180035024 CN:DSC_FR_023
180 7byt9scureM= C:FR O:CNAM OU:180035024 CN:DSC_FR_025
181 EDSWY8Hnul4= C:FR O:CNAM OU:180035024 CN:DSC_FR_020
182 IKMstf8yj/4= C:FR O:CNAM OU:180035024 CN:DSC_FR_024
189 l+UqotarLJc= C:FR O:CNAM OU:180035024 CN:DSC_FR_022
190 mqWkXpNR0Rk= C:FR O:CNAM OU:180035024 CN:DSC_FR_019
192 rVPuf3yKLBg= C:FR O:CNAM OU:180035024 CN:DSC_FR_021
controllerei se il tuo KID (ho aggiunto anche lo switch --kid) e' uno di questi.
ne ho 3 simili con cui fare i test e che non passano la verifica del certificato, tutti e 3 mi ritornano questo kid: fGLuvg6n5wk=
tutti e 3 riportano Release Country CNAM Version 1.3.0 Vaccination or Test Country FR Certificate Issuer CNAM
ciao, scusami per il ritardo ma e' stata una settimana piena di lavoro.
Puoi controllare di avere un file chiamato ~/.local/greenpass/fGLuvg6n5wk\= ?
Puoi leggerlo con un comando come questo:
openssl x509 -in ~/.local/greenpass/fGLuvg6n5wk\= -inform DER -text
Il file è presente regolarmente. Questo quello che ne viene fuori:
Certificate: Data: Version: 3 (0x2) Serial Number: 4602565760344528260 (0x3fdf992c70b61584) Signature Algorithm: ecdsa-with-SHA256 Issuer: C = LI, L = Vaduz, O = Liechtensteinische Landesverwaltung, CN = DGC-NB-CSCA-PROD-20210608, emailAddress = webmaster@llv.li Validity Not Before: Jun 8 07:42:00 2021 GMT Not After : Jun 8 07:42:00 2023 GMT Subject: C = LI, L = Vaduz, O = Liechtensteinische Landesverwaltung, CN = DGC-NB-DSC-TEST-PROD-20210608, emailAddress = webmaster@llv.li Subject Public Key Info: Public Key Algorithm: id-ecPublicKey Public-Key: (256 bit) pub: 04:06:71:54:8e:bf:05:a5:fa:55:69:51:6d:09:45: bb:62:0e:89:06:4f:e7:d5:39:49:28:42:a9:9b:fa: d9:3a:f0:04:cc:aa:70:a1:30:a9:5e:95:cf:3f:54: 8f:1a:1b:d0:5f:32:7e:8b:87:41:40:78:1b:77:0d: 92:0e:97:19:99 ASN1 OID: prime256v1 NIST CURVE: P-256 X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Subject Key Identifier: A7:44:8D:52:E9:4B:F6:DD:28:23:10:76:FA:4C:BE:2B:A4:A3:EA:C4 X509v3 Authority Key Identifier: keyid:F4:9E:78:7C:16:DF:0E:7B:04:53:0C:D6:9A:78:34:28:1C:4D:DF:85
X509v3 Key Usage: critical
Digital Signature
X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.llv.li/DGC-NB-CSCA-PROD-20210608
Netscape Comment:
xca certificate
X509v3 Extended Key Usage:
1.3.6.1.4.1.1847.2021.1.1
Signature Algorithm: ecdsa-with-SHA256
30:44:02:20:4e:f1:a0:60:ad:e2:8f:d6:d9:bf:22:ac:86:8c:
83:95:8a:d0:c1:74:7b:06:d8:f4:24:87:29:76:ae:8d:16:a1:
02:20:77:7a:00:11:91:af:e3:72:28:98:e7:94:1e:d9:95:88:
89:0d:fa:c4:45:53:f2:17:fa:bf:12:c9:a1:bf:9e:8f
-----BEGIN CERTIFICATE----- MIIC8zCCApqgAwIBAgIIP9+ZLHC2FYQwCgYIKoZIzj0EAwIwgZAxCzAJBgNVBAYT AkxJMQ4wDAYDVQQHEwVWYWR1ejEsMCoGA1UEChMjTGllY2h0ZW5zdGVpbmlzY2hl IExhbmRlc3ZlcndhbHR1bmcxIjAgBgNVBAMTGURHQy1OQi1DU0NBLVBST0QtMjAy MTA2MDgxHzAdBgkqhkiG9w0BCQEWEHdlYm1hc3RlckBsbHYubGkwHhcNMjEwNjA4 MDc0MjAwWhcNMjMwNjA4MDc0MjAwWjCBlDELMAkGA1UEBhMCTEkxDjAMBgNVBAcT BVZhZHV6MSwwKgYDVQQKEyNMaWVjaHRlbnN0ZWluaXNjaGUgTGFuZGVzdmVyd2Fs dHVuZzEmMCQGA1UEAxMdREdDLU5CLURTQy1URVNULVBST0QtMjAyMTA2MDgxHzAd BgkqhkiG9w0BCQEWEHdlYm1hc3RlckBsbHYubGkwWTATBgcqhkjOPQIBBggqhkjO PQMBBwNCAAQGcVSOvwWl+lVpUW0JRbtiDokGT+fVOUkoQqmb+tk68ATMqnChMKle lc8/VI8aG9BfMn6Lh0FAeBt3DZIOlxmZo4HXMIHUMAwGA1UdEwEB/wQCMAAwHQYD VR0OBBYEFKdEjVLpS/bdKCMQdvpMviuko+rEMB8GA1UdIwQYMBaAFPSeeHwW3w57 BFMM1pp4NCgcTd+FMA4GA1UdDwEB/wQEAwIHgDA8BgNVHR8ENTAzMDGgL6Athito dHRwOi8vY3JsLmxsdi5saS9ER0MtTkItQ1NDQS1QUk9ELTIwMjEwNjA4MB4GCWCG SAGG+EIBDQQRFg94Y2EgY2VydGlmaWNhdGUwFgYDVR0lBA8wDQYLKwYBBAGON49l AQEwCgYIKoZIzj0EAwIDRwAwRAIgTvGgYK3ij9bZvyKshoyDlYrQwXR7Btj0JIcp dq6NFqECIHd6ABGRr+NyKJjnlB7ZlYiJDfrERVPyF/q/Esmhv56P -----END CERTIFICATE-----
Ciao, possiedi qualche altro greenpass firmato da qualche altra chiave non italiana?
Sto controllando la procedura di verifica, potrebbe essere quella, vedo che con keyid 90, 91, 92 il server mi restituisce sempre lo stesso risultato (la chiave pubblica del Liechtenstein).
EDIT: Sembra proprio un problema di verifica della chiave, un certificato generato con la chiave "leakata" viene verificato con un kid relativo all'indice successivo dentro all'endpoint status (kid: 15 + 1 = 16). Il mio certificato personale (firmato dall'ente italiano) viene verificato con l'indice non modificato (kid:5)
Ciao, relativamente alle ultime notizie sul leak non saprei, al momento si ha evidenza di questi soli: https://attivissimo.blogspot.com/2021/10/perche-questi-codici-qr-sembrano-green.html dei quali (il terzo) ancora supera la validazione.
Per quanto riguarda il problema segnalato, l'applicazione non valida correttamente diversi certificati non italiani tra cui:
Ciao, sembra essere cambiato il metodo per la verifica, ho aggiornato.
Puoi provare con quei certificati e il master corrente?
ok scaricato il master, mi ha dato ModuleNotFoundError: No module named 'bs4' e l'ho installato.
Ora spagna olanda e francia passano correttamente. Rimane l'errore su germania sul quale ottengo:
Could not find KID
Traceback (most recent call last):
File "/home/gp/greenpass_master20211027/./greenpass.py", line 128, in
e poi su nhs su cui ho:
Traceback (most recent call last):
File "/home/gp/greenpass_master20211027/./greenpass.py", line 128, in
Ok, scusa mi ero dimenticato di avvertirti di bs4, l'ho aggiunto ai requisiti (poi lancero' il setup.py).
Questo e' abbastanza strano, il gp e' pubblico? Riesci a passarmelo via mail? Trovi l'indirizzo nel mio profilo.
Ho aggiunto una modifica al master, puoi provare questo, dovrebbe supportare i greenpass che sono formati diversamente (hanno la KID non nel phdr ma nell'uhdr della struttura COSE).
Fammi sapere
Confermo, anche il de ora è ok.
Chiudo questa issue allora, ci sentiamo nell'altra per il NHS.
Posso riaprirla se ne trovi qualcuno che non funziona.
Altro caso anomalo nel giro di test sempre con v2.1 La certificazione viene letta correttamente, ma la verifica del certificato non passa, ottengo Verified False (in rosso) Ho provato a stampare a schermo da get_key_coseobj: print(certificate) print(pubkey) print(self.getcoseobj(pubkey)) e ritornano correttamente ma gpp.verify() non ritorna il true di verifica. Chiaramente questo gp viene validato correttamente da VerificaC19. Release Country CNAM Version 1.3.0 Vaccination or test Country FR Certificate Issuer CNAM
Come posso debuggare meglio la questione per darti più dati a supporto?