Carta Nazionale/Regionale dei Servizi
Versioni Compatibili Debian 7 "wheezy" Debian 8 "jessie" Debian 9 "stretch" Debian 10 "buster" |
Introduzione
La CNS/CRS è una smart card che permette l'accesso a servizi online forniti da diversi enti pubblici italiani.
Questa guida illustra la procedura che permette di usufruire di questi servizi utilizzando esclusivamente software libero presente nei repository ufficiali Debian.
Prerequisiti
- Sistema operativo Debian Wheezy o superiore
- Lettore per smart card compatibile con Debian
- Una CNS/CRS
- PIN associato alla tessera
Installazione dei driver del lettore
Collegare il lettore ad una porta USB.
$ lsusb [cut] Bus 004 Device 002: ID 072f:9000 Advanced Card Systems, Ltd ACR38 AC1038-based Smart Card Reader
In questo caso si tratta del lettore bit4id che è stato fornito ai cittadini italiani da alcune pubbliche amministrazioni, ad esempio da Regione Lombardia.
Il pacchetto da installare per far funzionare questo lettore è libacsccid1
:
# aptitude install libacsccid1
Se si dispone di un altro modello, effettuare una ricerca in questa pagina del Wiki di Debian per trovare il driver da utilizzare.
Verifica del funzionamento del lettore
Per verificare che il lettore funzioni correttamente, installiamo pcscd
e pcsc-tools
:
# aptitude install pcscd pcsc-tools
A questo punto lanciare pcsc_scan
:
$ pcsc_scan
Può capitare di ottenere questo messaggio:
PC/SC device scanner V 1.4.17 (c) 2001-2009, Ludovic Rousseau <ludovic.rousseau@free.fr> Compiled with PC/SC lite version: 1.5.5 Scanning present readers... Waiting for the first reader...
Ciò avviene in genere quando si collega il lettorino a PC acceso e demone già avviato. Occorre allora chiudere il programma con Ctrl+C e riavviare il demone:
# /etc/init.d/pcscd restart
Se invece si ottiene quest'altro messaggio, va tutto bene:
PC/SC device scanner V 1.4.17 (c) 2001-2009, Ludovic Rousseau <ludovic.rousseau@free.fr> Compiled with PC/SC lite version: 1.5.5 Scanning present readers... 0: ACS ACR38U 00 00 Tue Apr 10 15:17:27 2012 Reader 0: ACS ACR38U 00 00 Card state: Card removed,
Si provi ad inserire ed estrarre delle tessere: dovrebbero essere viste senza problemi:
Card state: Card inserted, Shared Mode, [cut] Italian healtcare card (TS) National Service Card (CNS)
Per uscire, basta digitare Ctrl+C.
Configurazione del browser
Queste funzionalità sono fornite sia da Iceweasel/Firefox che da Chromium.
Installiamo OpenSC:
# aptitude install opensc
A questo punto occorre trovare il percorso della libreria OpenSC necessaria per accedere ai portali che fanno utilizzo della tecnologia CNS; potrebbe essere diverso a seconda dell'architettura, e quindi cerchiamolo con:
$ dpkg -S opensc | grep /opensc-pkcs11.so /usr/lib/i386-linux-gnu/opensc-pkcs11.so
In questo caso sarà dunque /usr/lib/i386-linux-gnu/opensc-pkcs11.so
; appuntiamolo da qualche parte.
Iceweasel/Firefox
# aptitude install iceweasel-l10n-it
Oppure, a partire da Debian Stretch:
# aptitude install firefox-esr-l10n-it
Rimane solo da aprire Iceweasel/Firefox e poi:
- Modifica → Preferenze → Avanzate → Cifratura (o "Certificati", nelle versioni più recenti) → Dispositivi di sicurezza → Carica
- inserire nel campo "Nome modulo": CRS PKCS#11
- click su "Sfoglia" e selezionare il file che ci eravamo appuntati (nell'esempio:
/usr/lib/i386-linux-gnu/opensc-pkcs11.so
) - click su Apri → OK → OK → Chiudi
- chiudere il browser
Chromium
Installare tutto il software necessario:
# aptitude install chromium-l10n libnss3-tools
Nel caso in cui il browser fosse aperto, chiuderlo.
Inserire la smart card nel lettore, aprire un terminale e, posizionandosi nella home dell'utente, eseguire il comando
$ modutil -dbdir sql:.pki/nssdb/ -add "CNS PKCS#11" -libfile /PATH/TO/MY/LIB.so
dove al posto di /PATH/TO/MY/LIB.so
metteremo il percorso che ci eravamo appuntati (nell'esempio: /usr/lib/i386-linux-gnu/opensc-pkcs11.so
).
Verificare la corretta registrazione della libreria con
$ modutil -dbdir sql:.pki/nssdb/ -list
Utilizzo dei servizi
- Inserire la tessera nel lettore
- Attendere che la tessera venga letta (in genere basta osservare il led)
- Avviare il browser: se tutto va bene in genere il led smette di lampeggiare e rimane fisso acceso
- Accedere alla pagina interessata: si dovrebbe aprire una finestra che richiede il PIN
- Usufruire dei servizi
- Chiudere il browser e aspettare che il led torni a lampeggiare
- Estrarre la tessera
Lettura dei dati pubblici sulla tessera
La tessera sanitaria contiene sul filesystem alcuni dati pubblici che si possono leggere sia con la interfaccia smartcard sia con un lettore contactless per le tessere sanitarie più recenti (post 2018 almeno).
I dati pubblici (codice fiscale, nome e cognome, numero di tessera) sono sufficienti nei totem di pagamento delle prestazioni sanitarie in Emilia Romagna, ad esempio.
Chi ha ruby può avere un'idea del contenuto con lo script di prova.
Problematiche aperte
Rimpiazzare il CRS Manager
Trovare un modo per rimpiazzare il CRS Manager di Regione Lombardia, necessario per modificare il PIN o sbloccare la carta se si sbaglia a digitarlo 3 volte.
Firma elettronica
Trovare un software per la firma elettronica dei documenti. Potrebbe essere OpenSignature, che però non è presente nei repository ufficiali Debian. Vedi anche qui.
Ringraziamenti
Un grazie sentito a tutti gli sviluppatori di software libero che hanno reso accessibile l'utilizzo di queste tecnologie a ogni utente Debian. Un pensiero particolare va ad Emanuele Pucciarelli, autore della patch per OpenSC grazie alla quale anche le tessere italiane sono divenute compatibili.
Fonti
Guida scritta da: Stemby | Debianized 60% |
Estesa da: | |
Verificata da: | |
Verificare ed estendere la guida | Cos'è una guida Debianized |