TS-CNS con nuovo chip STMicrosystems

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
gian_d
Linux 3.x
Linux 3.x
Messaggi: 556
Iscritto il: mer 16 lug 2014, 17:35
Nome Cognome: Giancarlo Dessì
Slackware: 64 current
Kernel: 5.19.xx
Desktop: KDE 5.25
Località: Sardinia
Contatta:

TS-CNS con nuovo chip STMicrosystems

Messaggio da gian_d »

Per chi fosse interessato (per praticità io uso molto più la CNS invece dello SpID)

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
3. Creare una directory di servizio per i log esattamente come indicato qui sotto. Questa directory deve avere i permessi di accesso in lettura e scrittura:

Codice: Seleziona tutto

$ mkdir /tmp/stP11Logs
$ chmod 777 /tmp/stP11Logs
4. A questo punto, nella root della directory target in cui è stato scompattato il contenuto dello script, ci sono due file eseguibili a cui dare i permessi di esecuzione (se non si vuole usare sh)

Codice: Seleziona tutto

$ cd directory_di_destinazione
$ chmod a+x go.sh
$ chmod a+x PIN\ Manager
Non so se è necessario, io comunque ho modificato il contenuto dello script go.sh perché punta alla libreria della dipendenza pcsc-lite in un percorso differente da quello della slackware, presumo basato sull'architettura di Ubuntu. In ogni modo, questo è il testo del file che ho modificato:

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
Nell'installazione da slackbuild la libreria libpcsclite.so.1 è infatti installata in /usr/lib64 come contemplato nello standard della Slackware

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
Per chi usa Firefox bisogna andare in Impostazioni > Privacy e Sicurezza > Certificati > Dispositivi di sicurezza
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.

Rispondi