Giorni fa mi è arrivata la nuova tessera sanitaria in sostituzione di quella scaduta, perciò l'ho abilitata come CNS. Fatto questo mi accingo ad usarla ma scopro che il lettore non funzionava. Firefox accettava regolarmente la nuova password usando il modulo PKCS#11 del precedente middleware, ma al momento dell'autenticazione per l'accesso ai siti il responso era di assenza della CNS.
Ravanando è saltato fuori che le nuove tessere rilasciate (penso dal 2021) hanno un nuovo chip, per il quale occorre un driver diverso da quello compatibile con i chip Athena o altri delle vecchie tessere ( https://tscns.regione.sardegna.it/articoli/linux ).
La procedura di installazione è un po' diversa da quello del driver che usavo in precedenza (IdProtectManager), ma come al solito i pacchetti rilasciati dall'Agenzia delle Entrate possono essere installati solo su Ubuntu.
Comunque problemini superabili, questa è la procedura (da eseguire come utente senza privilegi di root):
1. Dipendenze: necessaria una libreria contenuta in openssl (libcrypto.so.1.1) e pcsc-lite (installabile tramite slackbuild). Per libcrypto c'è una versione standalone nel pacchetto scaricato dall'Agenzia delle Entrate, in ogni modo io l'ho collegato alla libreria già presente nel sistema
2. Scompattare il file zip in una directory utente. Nell'archivio c'è solo uno script sh piuttosto corposo (una sessantina di Mega). Questo script crea tutti i file necessari. In pratica bisogna lanciare il comando
Codice: Seleziona tutto
$ sh SafeDive2022-4.6.0_x64.sh --target directory_di_destinazione
Codice: Seleziona tutto
$ mkdir /tmp/stP11Logs
$ chmod 777 /tmp/stP11Logs
Codice: Seleziona tutto
$ cd directory_di_destinazione
$ chmod a+x go.sh
$ chmod a+x PIN\ Manager
Codice: Seleziona tutto
./jre/bin/java -Dsun.security.smartcardio.library=/usr/lib64/libpcsclite.so.1 -cp ./plugin/safediveui2.jar:./lib/* -Djava.library.path=./outerlibs it.incard.icil.view.Launcher
5. A questo punto è stato fatto tutto. Se non ci sono problemi, basta lanciare lo script go.sh oppure l'eseguibile binario PIN Manager. Si aprirà una semplice interfaccia grafica basata su un ambiente di runtime Java standalone (tutto compreso nel pacchetto). Questa interfaccia permette di gestire la smart card (cambio del PIN oppure sblocco della carta con l'inserimento del PUK in caso di blocco)
6. Per usare la CNS con i browser web bisogna caricare il modulo PKCS#11 specifico puntando al driver. Per la precisione, il driver si trova in questo percorso:
Codice: Seleziona tutto
directory_di_destinazione/outerlibs/libstpkcs11.so
Nella finestra che si apre bisogna eseguire le seguenti operazioni:
Click su Carica > Nuovo modulo PKCS#11
Date un nome al nuovo modulo e riportate come modulo da caricare il percorso al driver libstpkcs11.so che ho indicato qua sopra
Questo è quanto.
A margine: pensando di fare una cosa utile, ieri ho preparato uno slackbuild completo da inviare a SBo. Lo slackbuild funziona regolarmente, installa il tutto in /opt e imposta tutti i permessi come previsto (chmod 755 per gli eseguibili e chmod 777 per la directory dei log) impostando comunque come proprietario root per l'intera installazione. Tuttavia l'avvio dell'eseguibile PIN Manager si arresta perché salta fuori un messaggio che dice che per ragioni di sicurezza non è possibile lanciare l'applicazione. Non riesco a capire il motivo. In sostanza ogni account utente può installare come standalone il driver e l'utility ma non è ammesso farlo come root e rendere disponibile un'unica installazione per tutti gli account. Con la precedente tessera, invece, avevo installato il driver e l'utility (IdProtectManager) con uno slackbuild ad hoc per un'unica installazione.