cie-mrtd-dotnet-sdk icon indicating copy to clipboard operation
cie-mrtd-dotnet-sdk copied to clipboard

Errore nel protocollo PACE:General Authenticate 1 - 27013

Open arcade98 opened this issue 7 years ago • 17 comments

Ho provato il progetto suggeritomi, ho sostituito il numero CAN ( a 6 cifre riportato davanti in basso a dx della CIE) alla riga della chiamata PACE(), ma il programma s’interrompe con l’errore : {“Errore nel protocollo PACE:General Authenticate 1 - 27013”} System.Exception.

ho aggiunto dopo sc.Connect

sc.Reconnect(Share.SCARD_SHARE_EXCLUSIVE, Protocol.SCARD_PROTOCOL_T1, Disposition.SCARD_UNPOWER_CARD) ma non è cambiato.

Suggerimenti ?

Grazie Andrea

arcade98 avatar Feb 22 '18 12:02 arcade98

Riprendo dall'errore 8010000b, segnalato in https://forum.italia.it/t/errore-in-connessione-8010000b/2541 E' un errore di condivisione del lettore, probabilmente ci sono altre applicazioni, anche di sistema, che cercano di accedere alla smart card. Vedo dal forum che hai risolto avviando con la smart card sopra il lettore, ma hai ancora errori nell'autenticazione. Se l'errore si è spostato al comando successivo del protocollo PACE sono abbastanza sicuro che sia un problema di altre applicazioni che "rubano" la sessione. Prova a usare una transazione sulla smart card: cambia il comando di Reconnect con questo:

sc.Reconnect(Share.SCARD_SHARE_SHARED, Protocol.SCARD_PROTOCOL_T1, Disposition.SCARD_UNPOWER_CARD)

e subito dopo aggiungi sc.BeginTransaction()

e chiama PACE(CAN).

Eventualmente disabilita il servizio di propagazione automatica dei certificati. Fabio

fottavi avatar Feb 26 '18 11:02 fottavi

Dunque, sono convinto anche io che qualche applicazione stia interferendo, ma non ho idea quale sia e come trovarla.

ho provato le modifiche ma nulla è cambiato.

Ovviamente il tenere la CIE sopra al lettore all'avvio è solo un pagliativo. Come si disabilita la propagazione automatica ? Ho Windows 10 home e stò usando VS 2017.

Ho a disposizione 2 tipi di lettori ed al momento con solo 1 riesco ad arrivare al PACE, ecc Grazie Andrea

arcade98 avatar Feb 26 '18 15:02 arcade98

E' davvero strano che anche con un BeginTransaction non funzioni. Vedi se la chiamata in PInvoke al metodo nativo SCardBeginTransaction restituisce OK o un codice di errore. "Propagazione certificati" è uno dei servizi di windows, lo disattivi da Gestione Computer -> Servizi e applicazioni. Fermalo e mettilo in attivazione manuale.

Fabio

fottavi avatar Feb 26 '18 15:02 fottavi

La SCardBeginTransaction risponde 0. La propagazione certificati ha risolto il famoso 0x801.....

ma ora siamo fermi di nuovo sulla prima chiamata di Authenticate senza però dare risposta ....

APDU:10-86-00-00-02-7C-00-00 Response: 'Test.exe' (CLR v4.0.30319: Test.exe): caricamento di .......... Eccezione generata: 'System.OverflowException' in CIE.MRTD.SDK.dll Eccezione generata: 'System.Exception' in CIE.MRTD.SDK.dll

Aggiungo: col secondo lettore secondo risponde il solito 6985

arcade98 avatar Feb 26 '18 16:02 arcade98

Ok... puoi andare in debug nel codice dell'SDK e verificare qual'è il motivo per cui viene sollevata l'eccezione OverflowException? Non è normale, non dovrebbe esserci. Probabilmente la CIE ha riposto correttamente, ma c'è un bug nell'SDK.

Per quanto riguarda l'errore 6985 con l'altro lettore è ancora più strano. Puoi mandarmi il modello di entrambi i lettori? Usano il driver CCID o un driver specifico?

fottavi avatar Feb 26 '18 18:02 fottavi

Allora ho fatto delle prove con due lettori : :

  • REINER SCT (sarebbe quello ufficiale) con driver specifico

  • ACS NFC (l'ho preso per prova alternativa) con driver configurato in automatico

Io ho notato che non c'è una ripetitività precisa su ciascun lettore, nel senso che a volte si scambiano i risultati di uno con l'altro.

E cambiando uno con l'altro devo riattivare temporaneamente la Propagazione dei Certificati ...... per farlo riconoscere, dato che ne tengo solo uno collegato alla volta ....... va beh

.

Al momento ho il REINER collegato che impeccabilmente si ferma al 6985, posso fare qualche controllo ?

Il 26 febbraio 2018 alle 19.56 Fabio Ottavi [email protected] ha scritto:

Ok... puoi andare in debug nel codice dell'SDK e verificare qual'è il motivo per cui viene sollevata l'eccezione OverflowException? Non è normale, non dovrebbe esserci. Probabilmente la CIE ha riposto correttamente, ma c'è un bug nell'SDK.

Per quanto riguarda l'errore 6985 con l'altro lettore è ancora più strano. Puoi mandarmi il modello di entrambi i lettori? Usano il driver CCID o un driver specifico?

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/italia/cie-mrtd-sdk/issues/8#issuecomment-368609178 , or mute the thread https://github.com/notifications/unsubscribe-auth/AjB89Bos-1D2OwHzw1HVrfH96OtaqtZ-ks5tYv5ogaJpZM4SPM0Q .

 

arcade98 avatar Feb 27 '18 08:02 arcade98

La situazione non è cambiata, posso eseguire qualche controllo specifico per capire meglio il problema ?

arcade98 avatar Mar 02 '18 10:03 arcade98

Sei riuscito a riprodurre il caso in cui hai ottenuto System.OverflowException e a capire da cosa è causata? Potrebbe dareci qualche indicazione.

fottavi avatar Mar 02 '18 10:03 fottavi

No quell'errore non è più comparso. Oggi riprovando il lettore (ACS NFC) che aveva dato quel problema, mi ritrovo l'Authenticate 1 con 9000 (quindi ok) e Authenticate 2 con 6985, ovviamente poi si ferma. Io sono molto perplesso per questi continui cambi di comportamento quasi alla giornata ..... io continuo a sostenere che vi sia qualcosa che disturba la comunicazione .... a volte ricompare anche l'errore 8010000B .... Se serve posso allegare l'output in debug dell'apdu.

arcade98 avatar Mar 02 '18 14:03 arcade98

Allega l'output del debug, forse può servire

fottavi avatar Mar 02 '18 15:03 fottavi

ListingReadersMonitoringThread:readersLen:1APDU:00-A4-02-0C-02-01-1C Response:90-00 APDU:00-B0-00-00-06 Response:31-14-30-12-06-0A-90-00 APDU:00-B0-00-00-16 Response:31-14-30-12-06-0A-04-00-7F-00-07-02-02-04-01-01-02-01-02-02-01-02-90-00 Test.exe Information: 0 : CardAccess letto correttamente; il chip è SAC APDU:00-22-C1-A4-0F-80-0A-04-00-7F-00-07-02-02-04-01-01-83-01-02 Response:90-00 APDU:10-86-00-00-02-7C-00-00 Response:7C-12-80-10-7A-12-9D-7C-6B-C5-2F-9B-92-27-68-6D-29-79-24-47-90-00 General Authenticate 1: 9000 'Test.exe' (CLR v4.0.30319: Test.exe): caricamento di 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Numerics\v4.0_4.0.0.0__b77a5c561934e089\System.Numerics.dll' completato. Caricamento dei simboli ignorato. Il modulo è ottimizzato e l'opzione del debugger 'Solo codice utente' è abilitata. APDU:10-86-00-00-00-01-08-7C-82-01-04-81-82-01-00-4B-F8-32-31-02-58-71-ED-78-FB-30-1A-D2-18-38-40-12-8A-F8-57-B9-1A-03-E3-32-09-1E-49-17-8A-F2-A6-F9-D5-E8-1E-FB-25-D0-38-A9-E1-FA-B9-6A-1E-01-E3-33-3F-73-3B-5A-63-7D-DB-57-75-D1-9F-C2-C4-E5-92-8F-6B-0E-5A-78-B4-90-3D-91-BC-9A-60-D0-48-CC-4B-7C-87-83-A3-31-D0-6A-98-10-CD-DC-95-2B-F5-6C-01-2E-34-67-2F-7A-06-34-AF-5B-44-3A-A4-81-51-13-59-CF-F7-7E-B8-58-AE-00-67-4A-B6-80-3B-65-06-FE-E2-31-BF-BA-2C-87-84-3C-6D-86-03-67-68-4B-68-D0-26-14-E8-0B-37-F8-7E-71-5F-B9-CE-43-D8-55-10-93-2B-EF-8E-05-EA-3A-A1-E2-A3-AD-1C-CE-AE-3B-07-48-A6-01-1F-1E-30-EC-8C-41-A7-F9-4F-43-AE-F4-E6-54-5F-52-93-AB-EC-D9-DB-C2-40-F5-59-C9-C6-9C-A6-54-01-80-56-5C-CD-C2-E6-E6-51-C0-10-0C-C8-29-88-AB-E8-4A-05-B6-06-B7-C0-C3-98-CC-63-D9-33-AA-0A-ED-1E-02-86-86-8E-EE-91-71-DC-A2-D0-B2-2C-85-90-28-05-00-00 Response:69-85 General Authenticate 2: 6985 Eccezione generata: 'System.Exception' in CIE.MRTD.SDK.dll Eccezione generata: 'System.Exception' in CIE.MRTD.SDK.dll MonitoringThread:readersLen:1

Per conferma il codice PACE è di 6 cifre ed appare in basso a dx sul lato fronte della CIE giusto ?

arcade98 avatar Mar 02 '18 16:03 arcade98

Vorrei sapere cosa posso fare per risolvere questo problema. Ho un progetto che si basa su questa lettura .... ho urgenza altrimenti salta tutto. Help me.

arcade98 avatar Mar 06 '18 18:03 arcade98

Salve, qualcuno ha risolto?

FB65 avatar Aug 05 '19 13:08 FB65

Ciao, smanettando con la mia CIE ho notato che inviando la General Authentication (APDU:10-86-00-00-02-7C-00-00) per il protocollo PACE senza dar seguito all'handshake dopo un po di volte la CIE si blocca. La mia carta invece di rispondere con 0x7C risponde con un messaggio (probabilmente di errore) "01 01 00 04 20 04 08 31 f2 0c 14 78 77 95 02 80 31 80 65 b0 85 03 00 ef 12 0f ff 82" che non ho saputo interpretare (il primo byte probabilmente non fa parte del payload). Immagino ci sia qualche meccanismo che blocca il sistema di autenticazione dopo un certo numero di tentativi andati a vuoto. Ho bloccato sia il PACE per MRZ e CAN, la carta ha risposto con 0x7C per un po di volte con entrambi i sistemi poi più nulla (testato con 2 CIE). Ho provato a leggere la carta con il BAC e funziona senza problemi. Qualcuno mi sa dire come sbloccare la carta? Grazie!

Edit: la carta non è bloccata, risponde con un delay pazzesco.

ariken74 avatar Oct 21 '19 19:10 ariken74

Non è previsto che le chiavi PACE (sia MRZ che CAN) si blocchino dopo dei tentativi di autenticazione errata. Alcune implementazioni di MRTD effettivamente aumentano il delay della risposta dopo un certo numero di errori (per evitare attacchi di forza bruta), ma nella CIE non ci sono implementazioni di questo tipo in campo. Non so dirle esattamente il motivo del problema quindi, ma vedo qualcosa di molto strano nella risposta che ha ottenuto: la stringa 78 77 95 02 80 31 80 65 b0 85 03 00 ef 12 0f ff 82 corrisponde ad un pezzo dell'ATS del chip, e non è assolutamente normale che si trovi nella risposta ad una APDU. Posso ipotizzare che, per quanto veramente bizzarro, succeda una cosa di questo tipo: dopo l'invio del comando APDU, viene inviato un reset; il chip si riconnette e parte il protocollo di anticollisione, che inizia proprio con l'ATS. Il lettore non gestisce correttamente l'evento e interpreta l'ATS come parte della risposta all'APDU. E' possibile che il lettore abbia problemi nel gestire le APDU in chaining che compongono il protocollo PACE. Stiamo osservando che alcuni lettori, purtroppo abbastanza diffusi, non implementano correttamente l'ISO 14443/A e quindi hanno problemi con la CIE.

fottavi avatar Nov 12 '19 15:11 fottavi

Ciao, io ho lo stesso identico problema di arcade98, cioè ottengo l'errore "Errore nel protocollo PACE: General Authenticate 2" ed in console ho la risposta 69-85. Qualcuno può darmi supporto ?

Nikitto46 avatar Nov 12 '21 09:11 Nikitto46

Sto provando anche io questa app di test e purtroppo ho lo stesso problema, "Errore nel protocollo PACE:General Authenticate 2 - 27013", qualcuno è riuscito a capire e risolvere il problema?

Ilpaperino1994 avatar Feb 14 '23 17:02 Ilpaperino1994