Configurare la nuova tessera sanitaria (CPS/CNS) su Linux

Pubblicato il 27/05/2022

Antefatto

Pochi giorni fa mi è stata recapitata la nuova tessera sanitaria che a breve sostituirà quella in scadenza.

Lo scopo di questo articolo è riassumere i passaggi che ho seguito per far funzionare la nuova tessera sanitaria su Linux.

Alcuni dati di contesto:

  • L’operazione è stata eseguita su un sistema Ubuntu 20.04 (Ubuntu Mate nel dettaglio).
  • Avevo già il lettore configurato e funzionante con la vecchia tessera, utilizzando le librerie OpenSC disponibili nei repository di Ubuntu.
  • La tessera nuova è modello ST2021, mentre la vecchia è una AC2014.
  • Il lettore che utilizzo è un bit4id messo a disposizione dall’azienda sanitaria della mia zona.
  • Vivo in provincia di Trento.

Come trovo il modello della mia tessera?

Il modello della tessera sanitaria si trova sul lato frontale, nell’angolo in alto a sinistra: c’è una piccola sigla scritta in verticale, nel mio caso ST2021.

Primo passo

Il primo passo è abilitare la nuova tessera. Se la vecchia non è ancora scaduta è possibile fare questo passaggio online senza doversi recare presso gli uffici dell’azienda sanitaria.

Ho trovato nel sito della Provincia Autonoma di Trento una pagina dove nell’ultima FAQ si presentano le istruzioni per il rinnovo in autonomia.

Ho trovato comunque le istruzioni inesatte. I passaggi da fare sono:

  1. Visitare il sito https://sistemats1.sanita.finanze.it/portale/area-riservata-cittadino.
  2. Collegare il lettore e inserire la vecchia tessera.
  3. Cliccare su Registra CNS.
  4. Accedere con TS/CNS.
  5. Cliccare “Vai al servizio” nel box Attivazione TS-CNS.
  6. Inserire le ultime 6 cifre del codice della nuova tessera e la data di scadenza.
  7. Confermare i dati.

Verranno generati i codici da utilizzare con la nuova tessera e la possibilità di scaricare un PDF con queste informazioni.

Autenticarsi con la nuova tessera

Se a questo punto provassimo ad autenticarci ad un servizio con la nuova tessera (per esempio il Portale dei servizi online della Provincia di Trento) otterremo come errore il messaggio: Certificato non trovato.

Questo accade perché la nuova tessera funziona in modo diverso dalla vecchia e la versione ufficiale di OpenSC al momento non la supporta.

Grazie al contributo di uno sviluppatore è stata fornita una patch per supportare la nuova tessera. Alla data attuale la patch non è stata ancora integrata nel ramo principale del codice, quindi bisogna compilare i sorgenti con la patch per poterla utilizzare.

Le istruzioni:

  1. Controllare se sul pc è già installato OpenSC:
sudo dpkg -l | grep opensc

Nel mio caso ho trovato due risultati opensc e opensc-pkcs11

  1. Provvedere alla rimozione dei pacchetti opensc installati
sudo apt remove opensc opensc-pkcs11
  1. Installare i pacchetti richiesti alla compilazione
sudo apt-get install pcscd libccid libpcsclite-dev libssl-dev libreadline-dev autoconf automake build-essential docbook-xsl xsltproc libtool pkg-config git
  1. Clonare il repository del progetto OpenSC
git clone https://github.com/OpenSC/OpenSC.git
  1. Scaricare la patch per supportare la tessera di tipo ST2021
wget https://github.com/OpenSC/OpenSC/pull/2483.patch
  1. Copiare la patch nella cartella del progetto
mv 2483.patch OpenSC
  1. Spostarsi nella cartella dei sorgenti
cd OpenSC
  1. Applicare la patch
patch -p1<2483.patch
  1. Compilare i sorgenti
./bootstrap
./configure --prefix=/usr --sysconfdir=/etc/opensc
make
  1. Se il processo è andato a buon fine, installare il programma compilato
sudo make install

La mia situazione post installazione

find /usr -iname "*opensc*.so"
/usr/lib/onepin-opensc-pkcs11.so
/usr/lib/pkcs11/onepin-opensc-pkcs11.so
/usr/lib/pkcs11/opensc-pkcs11.so
/usr/lib/opensc-pkcs11.so
/usr/lib/libopensc.so

Configurare Firefox

A questo punto bisogna caricare il nuovo modulo su Firefox.

  1. Accedere a Impostazioni > Privacy e sicurezza > Dispositivi di sicurezza

Firefox Screen

  1. Eliminare se presente il vecchio modulo OpenSC utilizzando il pulsante Scarica (forse una traduzione in italiano poco azzeccata). Nel mio caso il vecchio modulo aveva come path /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so

  2. Caricare il nuovo modulo utilizzando il pulsante Carica, path del modulo: /usr/lib/opensc-pkcs11.so

Finalmente ho potuto autenticarmi correttamente sia con la vecchia tessera che con la nuova.

Ringraziamenti

Non sarei riuscito a scrivere questo articolo nè ad avere nuovamente una tessera sanitaria funzionante senza l’aiuto dei membri del LinuxTrent, il lug della mia zona.

  • I contenuti di questo articolo sono rilasciati con licenza CC-BY 4.0
  • Eventuali spezzoni di codice presentati seguono, dove non dichiarato, licenza MIT