INSTALLAZIONE FIRMA DIGITALE LEXTEL-NAMIRIAL NERA SU UBUNTU E DERIVATE E USO DI SLPCT/SLPW

di Pier Luigi Zulli Marcucci
12/07/2019

 

Il test è stato effettuato su Lubuntu 19.04 – 64 bit, ma la stessa procedura è applicabile sulle distribuzioni a 32 bit apportando le necessarie modifiche del caso.

FASE 1: Verifica preliminare:

a) Accendere il pc, inserire la businesskey e lanciare da terminale il comando:

lsusb

b) verificare che nell’elenco siano presenti le seguenti 2 righe:

Bus xxx Device xxx: ID 058f:6254 Alcor Micro Corp. USB Hub

Bus xxx Device xxx: ID 25dd:2311

Non importa se la prima parte delle righe risulta differente. L’importante è che siano presenti le voci sopra evidenziate in grassetto.

FASE 2: Verifica funzionamento Java e installazione librerie e drivers.

1) Verificare se è attivo Java8. Con versioni di Java più recenti non funzionano SLPCT e SLPW. Poichè adifferenza di Windows, Linux Ubuntu installa la versione 11 di default, è necessario effettuare lo switch della versione Java.

2) Nel caso sia necessario, si può usare il seguente comando da Terminale:

 sudo update-alternatives –config java

e selezionare il numero corrispondente a Java8

3) Scaricare e installare Dike 6 per Linux dal sito di Inforcert.
https://www.firma.infocert.it/prodotti/dike6.php

4) Da terminale lanciare in sequenza i seguenti comandi per installare le varie librerie:

sudo apt-get install libpcsc-perl

sudo apt-get install pcsc-tools

sudo apt-get install libccid

sudo apt-get install libacr38u (*)

sudo apt-get install libacsccid1

sudo apt-get install pcscd

5) Riavviare il pc con la chiavetta già inserita;

6) A questo punto verificare dal pannello di Dike se il sistema riconosce il dispositivo di firma;

7) In caso positivo installare SLPW e/o SLPCT e nel momento in cui viene richiesta la indicazione della libreria di lettura bisognerà indicare il seguente percorso del driver/libreria installato da DIKE

/opt/dike6/lib/libbit4xpki.so

Inserite il PIN e eventualmente lo slot, se richiesto.

A quanto pare questa libreria unifica sia il driver per le business key Lextel grige (le più vecchie), sia quello per le Lextel-Namirial nere. Sono tutte prodotte da bit4id.

 

* In base alla distribuzione Ubuntu o sua derivata, la libreria libacr38u potrebbe non essere trovata nei repository e in tal caso viene restituito a video un errore.

Si può ovviare a tale evenienza scaricando l’ultima versione *.deb per Ubuntu dal seguente indirizzo facendo attenzione alla versione 32 o 64 bit in base al sistema operativo intallato sul proprio pc.

https://pkgs.org/download/libacr38u

Si raccomanda di effettuare preventivamente un bel backup dei dati importanti contenuti sul pc e/o supporti di memorizzazione vari.

** * **

AGGIORNAMENTO: UTILIZZARE LA SEGUENTE PROCEDURA SOLO SE SI DOVESSERO RISCONTRARE PROBLEMI NEL RICONOSCIMENTO DEL DISPOSITIVO DA PARTE DI UBUNTU.

E’ capitato che il giorno successivo alla realizzazione del test sopra riportato, la firma digitale non venisse più riconosciuta da Ubuntu.
Eppure non avevo effettuato alcuna modifica.

Ho dovuto ragionarci parecchio. Era evidente che, se Ubuntu aveva riconosciuto la firma digitale il giorno prima, doveva essere “saltato” qualche settaggio.

Ringrazio fin da ora Bianca Kwey per i preziosi suggerimenti e per il supporto pazientemente prestato.

Alla fine l’abbiamo spuntata. 😉

Il problema deriva da come l’O.S. riconosce le periferiche (ccid oppure hid).

Bazzicando tra i software esistenti su internet abbiamo rilevato che dal seguente indirizzo http://postecert.poste.it/firma/download/postekey/firmaOK_Postecom_portable.zip è possibile scaricare il software della firma digitale PosteOK e che lo si può utilizzare nel seguente modo.

In pratica la vera scoperta è che il lettore hardware di Lextel-Namirial e quello di Poste sono identici. Hanno ID Vendor e ID Product identici e lo si può verificare lanciando da terminale il comando lsusb.
Vi ricordate delle seguenti  due righe di cui si è parlato all’inizio dell’articolo?

Bus xxx Device xxx: ID 058f:6254 Alcor Micro Corp. USB Hub

Bus xxx Device xxx: ID 25dd:2311

** * **

SOLUZIONE 1 (per i meno esperti)

Scompattare il contenuto del file ZIP e salvarlo su una cartella denominata Posteok, e copiarla sulla pendrive.

NON rimuovete assolutamente le cartelle e/o files già presenti sulla chiavetta.
Infatti non vi è alcuna interferenza tra i software precaricati e quelli che si vanno a copiare sulla chiavetta.
Inoltre, quelli precaricati sono comunque utili al funzionamento della firma digitale su O.S. Windows.

All’interno della nuova cartella Posteok, seguiamo il seguente percorso utilizzando il filemanager:

/System/Firma4NG_Linux/Firma4

Una volta posizionati su questa cartella, aprite un terminale e lanciate il seguente comando:

sudo ./convert.exe (si tratta di un eseguibile linux camuffato)

A questo punto il programma rileverà se si tratta di OS a 32 o 64 bit e applicherà la modalità di rilevamento del dispositivo di firma digitale impostandolo su CCID.
Se tutto è andato come dovrebbe, Dike rileverà il dispositivo regolarmente, e ovviamente funzioneranno perfettamente anche SLpct e SLpw.

Va detto che questa soluzione, ossia l’utilizzo del software di PosteOk non pone al riparo da eventuali bug presenti negli aggiornamenti futuri.

** * **

SOLUZIONE 2 (per i più esperti)

La seconda soluzione permette invece di rendere stabile il sistema di switching.
Essa rende il sistema capace di riconoscere la firma digitale ad ogni avvio, senza necessità di appoggiarsi al software presente sulla cartella Posteok sulla chiavetta.
Il vantaggio non trascurabile di questa soluzione è che, in caso di aggiornamenti del software di Posteok, si evitano problemi che possano derivare da eventuali bug dell’aggiornamento stesso.

I passaggi da effettuare sono i seguenti:
a) Avviare il pc e, una volta entrati nel sistema , inserire la chiavetta;

b) Aprire il terminale e digitare i seguenti comandi:
sudo cp /media/$USER/FirmaCerta/Posteok/System/Firma4NG_Linux/Firma4/convert.64* /usr/local/sbin/

e subito dopo:

echo ‘ATTRS{idVendor}==”25dd”, ATTRS{idProduct}==”2311″, RUN:+=”/usr/local/sbin/convert.64.exe”‘ | sudo tee /etc/udev/rules.d/99-hid-ck-switch.rules

c) A questo punto entrare mediante il filemanager nella cartella /etc/udev/rules.d/ e verificare che sia stato creato il file  denominato 99-hid-ck-switch.rules

Se presente, aprire questo file con Leafpad o altro editor testuale (personalmente utilizzo Notepadqq) e verificare che il suo contenuto sia:

ATTRS{idVendor}==”25dd”, ATTRS{idProduct}==”2311″, RUN:+=”/usr/local/sbin/convert.64.exe”

d) A questo punto resta solo da lanciare da terminale il seguente comando che serve a fare il reload di UDEV, il gestore dei dispositivi su Linux:

sudo udevadm control –reload

e) Riavviare il pc e una volta entrati nel sistema aprire Dike. Nella sezione “Dispositivi” verificare che il lettore sia stato correttamente rilevato.

N.B.: Nel caso si utilizzi Ubuntu o distribuzioni derivate a 32 bit, in tutte le righe di comando indicate fin qui, il numero 64 andrà sostituito con il numero 32 in quanto il percorso deve puntare al file specifico per quel tipo di sistema.

N.N.B.: Se deciderete di utilizzare i metodi sopra indicati sarà a vostro esclusivo rischio e pericolo. Non ci assumiamo nessuna responsabilità.
Si raccomanda un bel backup preventivo, come sempre.

Sono sempre ben accetti suggerimenti relativi a passaggi correttivi/migliorativi delle procedure.

Buon lavoro.

 

TORNA A GUIDE E ARTICOLI