Questo articolo estende il precedente Utilizzare CNS e CIE con Firefox su Linux relativo all'utilizzo delle CNS tramite il chip integrato sulla scheda, utilizzando il browser Firefox su sistemi Linux.
Le nuove tessere sanitarie emesse recentemente hanno la possibilità di essere utilizzate come CNS (Carta Nazionale dei Servizi) per attestare la propria identità in maniera digitale nel web.
Con una CNS, ad esempio, è possibile accedere a portali istituzionali come quello dell'INPS, dell'Agenzia delle Entrate, al nuovo portale dell'Anagrafe Nazionale Popolazione Residente (ANPR) oppure al fascicolo sanitario elettronico.
Le nuove tessere sanitarie emesse hanno, oltre al chip presente anche nelle precedenti versioni, la possibilità di utilizzarle tramite un lettore NFC (Near Field Communication) e quindi con tecnologia contactless.
In questo articolo verrà mostrato come configurare il browser Firefox su piattaforma Linux per utilizzare la nuova tessera sanitaria in modalità contactless per accedere ad un qualsiasi servizio on-line che permette l'accesso tramite CNS.
Il lettore
Per quanto riguarda il lettore NFC utilizzato nei test, la scelta è ricaduta sul lettore ACS ACR122U (suggerito anche dal portale della CIE - Carta di Identità Elettronica, anche essa dotata di tecnologia contactless) in quanto rispondente alla specifica internazionale PC/SC, alla norma ISO 7816-3 e alle specifiche CCID come indicato nei requisiti minimi presenti sul portale Sistema Tessera Sanitaria.
Il costo di questo lettore è ridotto (il solo lettore è acquistabile on-line a poco più di 20€) ed arriva fornito di un CD-Rom (in formato 80mm, quindi più piccolo del formato standard da 120mm) contenente i driver, compresi quelli per Linux.
Qualora il PC in uso non avesse un lettore CD-Rom oppure se lo stesso non fosse in grado di gestire i dischi da 80mm è possibile effettuare il download on-line dei driver dal sito del produttore.
I driver consistono di un singolo pacchetto installabile con il package manager della propria distribuzione che – nel caso dei test effettuati – è stato il pacchetto deb per Ubuntu e derivate.
Questa operazione è sufficiente per installare i driver necessari a far comunicare correttamente il sistema operativo con il lettore ACR122U: per testare se il lettore è correttamente riconosciuto e funzionante è possibile lanciare l'utility da linea di comando pcsc_scan
; è possibile installare questo software tramite il package manager della propria distribuzione o da riga di comando. Nel caso dei test effettuati (su distribuzione Linux Mint) è stato sufficiente lanciare il comando:
sudo apt-get install pcscd pcsc-tools
Installati anche i tool dello standard PC/SC lanciando il comando pcsc_scan
(dopo aver collegato il lettore) sarà possibile monitorare il corretto funzionamento del dispositivo che – avvicinando la tessera – ne rileverà la presenza e mostrerà le caratteristiche; contestualmente, se i driver sono stati installati correttamente, avvicinando la tessera il led presente nella parte superiore del dispositivo cambierà colore da rosso a verde.
Se tutte queste operazioni vanno a buon fine il dispositivo è stato correttamente installato ed è quindi possibile passare alla sua configurazione all'interno del browser Firefox, in modo da poter utilizzare la tessera sanitaria per effettuare l'accesso ai vari portali della pubblica amministrazione.
Qualora invece il lettore non fosse riconosciuto e venisse ritornato l'errore:
Unable to claim USB interface (Permission denied)
significa che il kernel sta già utilizzando il modulo per l'interfacciamento ai dispositivi NFC, che impedisce a libnfc
di rilevare correttamente il dispositivo (questo potrebbe accadere con kernel di versione maggiore alla 3.5).
In questo caso ci sono due possibili soluzioni: per disabilitare temporaneamente il modulo del kernel e quindi far rilevare correttamente il lettore è possibile utilizzare il seguente comando:
sudo modprobe -r pn533_usb
Questa soluzione però – come indicato – è temporanea e non persiste dopo il riavvio del sistema operativo. Per una soluzione definitiva, che persista anche dopo il riavvio, è possibile inserire il modulo nella blacklist, aggiungendo pn533_usb
in /etc/modprobe.d/blacklist-libnfc.conf
.
Il software SafeDive2020
La procedura per aggiungere il nuovo lettore all'elenco dei dispositivi da cui poter leggere i certificati personali è analogo a quello utilizzato nell'articolo Utilizzare CNS e CIE con Firefox su Linux, salvo variare la libreria contenente i driver per la lettura dei certificati dal dispositivo NFC (invece che dal card reader del precedente articolo).
Prima di procedere con la configurazione di Firefox è necessario effettuare un ulteriore dowload dal sito del Sistema Tessera Sanitaria, nello specifico quello che si trova alla voce STMICROELECTRONICS della tipologia di carta, chiamato SafeDive2020 (ovviamente nella versione per Linux).
All'interno del file compresso scaricato è presente uno script (ed un file di istruzioni) da eseguire per estrarre all'interno di una directory del proprio PC un software per la verifica della corretta lettura della carta (SafeDive2020) ma anche la libreria che servirà impostare all'interno di Firefox per la lettura del certificato personale presente nella carta.
Le istruzioni di installazione sono minimali e si riassumono nella semplice esecuzione dello script indicando una directory target dove estrarre i file: se si vuole estrarre tutti i file nella stessa directory in cui è stato scaricato lo script di installazione sarà sufficiente aprire il terminale all'interno di tale directory e digitare:
./SafeDive2020.sh --target .
Qualora venga indicato che non è possibile eseguire lo script è necessario controllare i permessi ed eventualmente aggiungere i permessi di esecuzione per l'utente corrente con:
chmod u+x SafeDive2020.sh
Verifica del corretto funzionamento della lettura
Prima di passare alla configurazione di Firefox è possibile sfruttare il software SafeDive2020 per effettuare una ulteriore verifica e controllare se il lettore riesce a leggere correttamente la tessera sanitaria in modalità contactless: per effettuare il test è sufficiente avviare il software con il comando:
./go.sh
e successivamente avvicinare la tessera al lettore: se tutte le operazioni precedenti sono state effettuate con successo, la carta verrà riconosciuta ed i suoi dati mostrati a schermo (in maniera simile a quanto ottenuto tramite il tool spsc_scan
utilizzato in precedenza).
Configurare Firefox per l'uso del lettore ACR122U
Questo passo è analogo a quello indicato nell'articolo Utilizzare CNS e CIE con Firefox su Linux, salvo variare la scelta della libreria da utilizzare per l'utilizzo del cerficato presente nella tessera sanitaria.
- Scegliere la voce Preferenze dal menu principale
- Cercare Certificati nel box di ricerca (per arrivare rapidamente alla voce interessata, altrimenti cercarla all'interno della sezione Privacy delle impostazioni)
- Premere il pulsante Dispositivi di sicurezza e successivamente - nella finestra che verrà aperta - premere il pulsante Carica
- Inserire un nome mnemonico per identificare il nuovo dispositivo (ad esempio Lettore NFC): la scelta di questo nome non pregiudica il corretto funzionamento della procedura e può essere assegnato a piacere
-
Nell'input field sottostante al nome del nuovo dispositivo, premere Sfoglia e scegliere il file libstpkcs11.so presente nella directory outerlibs del software SafeDive2020. Ad esempio, se SafeDive2020 è stato scompattato in
/home/utente/SafeDive2020
il percorso completo del file sarà/home/utente/SafeDive2020/outerlibs/libstpkcs11.so
.
Effettuate queste operazioni, il browser sarà in grado di accedere ai certificati contenuti nella tessera sanitaria, previo inserimento del PIN di sicurezza.
Verifica di corretta configurazione
Per verificare se la procedura di configurazione di Firefox ha avuto buon esito, ancor prima di effettuare un tentativo di accesso in uno dei siti che prevedono l'uso della tessera sanitaria come CSN per l'autenticazione, è possibile verificare se Firefox è in grado di leggere il certificato presente nella tessera.
Per effettuare il test è sufficiente:
- Collegare il proprio lettore ed avvicinare (o appoggiare sopra) la tessera sanitaria
- Aprire le Preferenze dal menu principale e inserire Certificati nel box di ricerca
- Selezionare la voce Mostra Certificati
-
Nella scheda relativa ai propri certificati sarà presente una voce relativa al lettore NFC collegato al PC; cliccando sopra di essa verrà attivato il pulsante (nel lato destro della finestra) per effettuare il login.
Questa operazione non farà altro che richiedere il PIN della scheda che – una volta inserito correttamente – farà elencare i certificati contenuti all'interno della tessera sanitaria.
Se il pulsante di login non fosse cliccabile ma lo fosse quello di logout significa che l'accesso con PIN è già stato effettuato e quindi questo passo non è da effettuare nuovamente.
Qualora dopo il login venga mostrato correttamente il certificato presente dentro la tessera sanitaria allora il browser sarà in grado di utilizzarlo sui siti della pubblica amministrazione che prevedono l'uso di una CNS come credenziale per l'accesso.