[gl-como] CRS appunti su come leggerla

Jio jiojio74@gmail.com
Lun 14 Nov 2011 11:28:30 CET


Ed eccomi coi primi risultati, magari qualcuno può darmi qualche riscontro:
Innanzitutto deve esserci pcsc-lite installato.
Io ho il lettore della regione della bit4id
lanciando pcsc_scan si può tener traccia se la carta è inserita o meno.
Ho notato che la prima volta che la si inserisce spesso non viene
riconosciuta, riprovate più volte sintanto che il led non rimane fisso
e/o pcsc_scan non mostra che è riconosciuta:
"Card state: Card inserted," ecc...
con pcsc_lite c'è scriptor che serve per comandare la crs.
scriptor può ricevere un file di comandi.
Questo è quello che ho preparato:
$nano leggiEF.Dati_Personali

reset
00 A4 00 00 02 11 00 00
00 A4 00 00 02 11 02 00
00 B0 00 00 08
00 B0 00 08 08
00 B0 00 10 08
00 B0 00 18 08
00 B0 00 20 08
00 B0 00 28 08
00 B0 00 30 08
00 B0 00 38 08
ecc...

La prima riga è il reset che riporta i puntatori dei file al MF
(l'equivalente della root)
La seconda seleziona la cartella DF1 (0x1100) l'identificativo della
cartella è contenuto nel terzultimo e penultimo byte
La terza seleziona il file EF.Dati_Personali (0x1102) anche qui l'id
del file è nel terzultimo e penultimo byte
Dalla quarta riga in poi vengono letti i dati: i primi due byte sono
il comando di lettura del file corrente (ox00 B0), poi ci sono due
byte per indicare l'offset ed il quinto è quanti byte leggere (0x08)
non so se è una limitazione di scriptor o della carta, ma non si
possono leggere più di 8 byte per volta.
Dando il file in pasto a scriptor, eliminando un pò di roba che non ci serve:
$scriptor leggiEF.Dati_Personali |grep "Normal"
No reader given: using Pertosmart Card Reader 00 00
Using given file: provaleggicrs
< 30 30 30 30 36 38 30 34 90 00 : Normal processing.
< 36 30 33 30 30 38 30 35 90 00 : Normal processing.
< 31 30 32 30 31 30 30 38 90 00 : Normal processing.
< 30 35 31 30 32 30 31 36 90 00 : Normal processing.
< 30 36 54 49 52 4F 4E 49 90 00 : Normal processing.
< 30 37 47 49 4F 53 55 45 90 00 : Normal processing.
< 27 30 38 32 31 30 35 31 90 00 : Normal processing.
< 39 37 34 30 31 4D 30 30 90 00 : Normal processing.
...
Ecco il nostro bellissimo file e all'offset 0x0022 trovo il mio
cognome in ascii!
Le righe iniziano col carattere "<" seguito dagli 8 byte dei dati
richiesti, poi c'è 0x9000 che credo sia un codice di ritorno, ":" e la
descrizione del codice

Ora, visto che sono una ciofeca con le espressioni regolari, se
qualche anima pia mi facesse uno scriptino per prendere questo output,
tirasse fuori solo gli 8 byte di dati e li convertisse in ascii, si
potrebbero identificare tutti i campi.
L'idea balorda che ho in mente è quella di sostituire un timbratore
con uno sheevaplug o un dreamplug o un eeepc o un vecchio portatile,
collegarlo ad un lettore CRS ed alla rete ed avere un timbratore
digitale per crs alla metà del prezzo.
Che ne dite?

2011/11/11 Jio <jiojio74@gmail.com>:
> Oggi mi sono dilettato un pò a cercare di leggere i dati contenuti
> nella CRS, vi premetto subito senza risultati di nota.
> Innanzitutto ho installato tempo addietro pcsc-lite e non mi ricordo
> come e non sembrava funzionare (su fedora)
> Oggi ho buttato dentro la CRS ed ho lanciato pcsc_scan e me ne sono
> andato, al ritorno vedo il led verde fisso anzichè lampeggiante e lo
> scan che riporta:
>  Reader 0: Pertosmart Card Reader 00 00
>  Card state: Card inserted,
>  ATR: 3B DF 18 00 81 31 FE 7D 00 6B 15 0C 01 81 01 11 01 43 4E 53 10 31 80 E8
>
> WOW!
> Allora cerco info e trovo
> http://www.crs.lombardia.it/ds/Satellite?c=Page&childpagename=CRS%2FCRSLayout&cid=1213352757655&p=1213352757655&packedargs=locale%3D1194453881584&pagename=CRSWrapper&rendermode=previewnoinsite
> Che dice che la CRS si rifà agli standard: ISO-7816 e ISO-14443
> Cerco in giro e trovo che in pcsc-lite c'è il comando scriptor per
> mandare comandi alle smartcard. Problema: quali comandi?
> Nel link sopra mi rimanda a digitpa.gov.it dopo un pò di ricerche ecco
> le specifiche tecniche coi comandi:
> http://www.digitpa.gov.it/node/45
> Che interessano sono i primi due file.
> Non ho capito bene come si seleziona un file, ma ho avuto giusto quei
> dieci minuti per leggere la documentazione.
> Ad ogni modo scriptor qualcosa fa perchè almeno i messaggi di errore
> hanno un senso (wrong lenght e file not found quando cerco di aprire
> un file a caso)
> Da quel che ho capito: prima devo cambiare cartella e poi leggere il
> file e qui viene in aiuto il secondo file della documentazione.
> Se qualcuno ha tempo per sperimentare mi faccia sapere.
> Ora devo scappare, ma nel w-e magari mi cimento
>


Maggiori informazioni sulla lista gl-como