Sono riuscito a trovare una quadra grazie alla risposta di un utente su SLACK!
tramite l’SDK fatto in python presente su github Italia, sono riuscito a leggere i dati inserendo 3 dati presenti nell’MRZ. Ho letto che è anche possibile autenticarsi inserendo solamente il CAN ma devo scoprire come ![]()
sdk non mantenuto su
risulta essere ancora funzionante sulle nuove cie con la seguente modifica:
sostituire
comTag.CheckTag(0x60).Child(0, new byte { 0x5f, 0x01 }).Verify(ASCIIEncoding.ASCII.GetBytes(“0107”));
con
ASN1Tag comTag2 = ASN1Tag.Parse((byte[])efCOM, false);
try
{
comTag.CheckTag(0x60).Child(0, new byte[] { 0x5f, 0x01 }).Verify(ASCIIEncoding.ASCII.GetBytes("0108"));
}
catch (Exception )
{
comTag2.CheckTag(0x60).Child(0, new byte[] { 0x5f, 0x01 }).Verify(ASCIIEncoding.ASCII.GetBytes("0107"));
comTag = comTag2;
}
permette di gestire le cie di nuova generazione: 0x01 0x08 indica la versione del LDS
![]()
Nel caso in cui sul pc è attivo CIEID, come consiglia Fabio Ottavi nel forum, mettere dopo la sc.connect la sc.Reconnect
sc.Reconnect(Share.SCARD_SHARE_EXCLUSIVE, Protocol.SCARD_PROTOCOL_T1, Disposition.SCARD_UNPOWER_CARD);
altrimenti i comandi di selezione file per esempio del cardaccess
00 A4 02 0C 02 01 1C
non funzionano, in quanto viene settato dal cieid aid_ias
Salve a tutti,
sto cercando informazioni su come leggere il certificato della CIE, che permetterebbe poi di autenticarsi sui servizi online, tramite comandi APDU. Se ho capito bene si tratterebbe di leggere la chiave privata della tessera, ma non trovo indicazioni su come farlo. Seguendo la documentazione ufficiale sono già riuscito ad implementare sia il BAC che il PACE per la lettura dei vari Data Group. Qualcuno potrebbe darmi indicazioni in merito o, almeno, suggerirmi la documentazione da utilizzare?
Grazie.
Per quel pochissimo che conosco del settore la chiave privata non viene mai letta o estratta in chiaro. E’ utilizzata per un algoritmo eseguito sulla CIE stessa (o altra smart card) in risposta a un input esterno e il cui risultato deve essere corretto. Nel caso piu’ semplice si tratterebbe di decodificare un messaggio codificato con la chiave pubblica, quella leggibile.
Se fosse possibile leggere la chiave privata diventerebbe possible clonare la CIE, con tutte le conseguenze del caso.
Magari non si fa tramite chiave privata ma la cosa dovrebbe essere fattibile. Leggendo i vecchi post mi sembra sia già stato fatto ma utilizzando le librerie del middleware-cie. Io avrei bisogno di farlo invece direttamente con comandi APDU.
Ciao Fabrizio, se non ho capito male leggi sia via pace che bac. Io invece leggo la cie via pace ma non il passaporto via bac. Sto utilizzando l’esempio mrtd sdk .net. Tu in che ambiente sei riuscito ? Grazie
Ciao, io ho fatto riferimento sia all’mrtd sdk in .net sia all’equivalente per linux in c++ ma, dovendo sviluppare in java, mi sono affidato principalmente alla documentazione ufficiale, il documento ICAO 9303 p11. Ci sono degli esempi abbastanza dettagliati sul BAC. Essendo entrambi mrtd non dovrebbe esserci differenza tra cie e passaporto, ma non ho mai avuto a che fare con quest’ultimo.