CNS, CRS, firma digitale, slpct con Linux

CNS,CRS, firma digitale e slpct con Linux? Autenticarsi con CNS nei portali online, firmare digitalmente documenti è tutt'altro che complicato. Smentendo chi sostenga che un desktop Linux non sia adatto per "cose importanti".
Vediamo alcuni lettori di smart card compatibili, istruzioni su come procedere e chiariamo alcuni meccanismi.

Creo questo tutorial non per promuovere i lettori USB tramite i link in affiliazione con Amazon. Ricevo l'1% del suo costo a parità di prezzo per te se ne acquisti uno dai miei link, e viste le percentuali in relazione ai lettori, per ora, non mi pare un grande investimento.

Lo faccio perché, una delle ragioni per cui ho finora mantenuto una partizione Windows, è quella di non aver avuto altra scelta che sfruttare la smart-card con Carta Nazionale dei Servizi e firma digitale, se non in una soluzione prevista assieme ad un lettore e software che funzionano a dovere solo con Windows. Vorrei documentare una mia recente esperienza fatta per esigenze personali. Ho avuto conferma che basta usare la carta con un lettore USB compatibile con Linux! Ne ho cercato uno per usare CNS, CRS e firma digitale, con software differenti da quelli forniti con la mia soluzione. Ho spesso bisogno di accedere a portali telematici di giustizia ed effettuare operazioni con documenti firmati digitalmente.

Non parlo di CIE (Carta di Identità elettronica) con Linux ma sappi che i lettori USB per chip contactless, come quello che serve per autenticarsi tramite CIE, sono di solito differenti dai lettori di smart-card. Vedo su internet che in tanti comprano e restituiscono lettori commettendo questo errore. A meno che un lettore non preveda espressamente di farti inserire una smart-card CNS o CRS e avvicinare una CIE per autenticarti, compatibile con Linux, li troverai come lettori differenti. Nelle mie rapide ricerche non ne avevo notati, ma un amico del canale YouTube mi ha segnalato un lettore bit4id forse non più in commercio ma che ha un sostituto. Il lettore bit4id Minilector CIE Plus. Ma puoi fidarti dei marchi di lettori di smart card CNS e CRS che cito oltre e di cui ho trovato driver anche per i lettori senza contatto per la Carta di identità elettronica.

Cosa serve

Il primo requisito essenziale è il possesso di una CNS (Carta Nazionale dei Servizi) e/o CRS (Carta Regionale dei Servizi) contenente certificati per l'autenticazione e la firma, in corso di validità. Do per scontato che tu sia certo che essa funzioni e che tu sia in possesso del suo PIN.

Io ho una CNS fornita da Aruba con Aruba Key. La card è una sim, inserita in adattatore in formato smart-card. Si recidono le linguette che tengono la sim per inserirla nella Aruba Key. Ma la sim può essere riposta nell'adattatore con nastro adesivo sul lato opposto a quello del chip per essere usata di nuovo come card intera. Volevo mettere in un cassetto la Aruba Key, la cui soluzione software e supporto per Linux lascia a desiderare e usare Carta Nazionale dei Servizi e firma digitale con un lettore compatibile.

Il secondo requisito è infatti quello di un lettore di smart card compatibile con Linux. Per un lettore eventualmente già in tuo possesso non prometto niente. Ma potresti verificare il dischetto o comunque il driver che ti sia stato fornito per Windows. Nel caso in cui il programma di installazione mostri file o scritte che riportano bit4id, potresti avere fortuna anche installando il medesimo driver che uso più avanti con il lettore da me testato. O con uno scaricato dalla pagina di driver di bit4id o altro produttore. Altrimenti, con circa € 15 ti procuri un lettore nuovo come quelli che consiglio.

Giorni fa mi sono procurato, un lettore economico, riportato come certamente compatibile con Linux. Ho comprato e testato questo lettore LETTORE uTrust 2700 R, ben documentato e con un sito all'altezza delle aspettative. Confermo la presenza di informazioni e driver per Linux. Si installa da un solo file, senza necessità di configurazione alcuna. Lo suggerisco volentieri perché è l'unico che ho provato personalmente.

Ma ne suggerisco altri come alternativa, dopo attenta ricerca, lettore per lettore, nel sito del produttore. Per tutti ho verificato la presenza di driver per Linux e informazioni per installarli.

Al momento posso dire che, tutti quelli basati su soluzioni Internavigare, bit4id, Identiv, uTrust, sembrano compatibili con Linux e sono talvolta basati sui medesimi chip.

Confermo la presenza di driver in formato .deb per ambienti Debian, Ubuntu e Linux Mint, con cui ho fatto i miei test. I lettori bit4id prevedono un archivio che contiene pacchetto .deb, rpm e i file per l'installazione manuale del driver.

I link alle pagine Amazon dei singoli lettori consigliati qui di seguito, potrebbero non apparire se hai un ad-blocker attivo sulla pagina.


Mi sentirei di considerarli piuttosto sicuri per l'acquisto ed il funzionamento su Linux. Se scegli un altro lettore, prima dell'acquisto, verifica che sia chiaramente specificata la compatibilità con Linux o, anche se poi non lo compri lì, cerca tra le domande e risposte nella pagina Amazon del prodotto. Usa la parola chiave linux nel campo di ricerca e vedi cosa viene fuori. Oppure cerca su un motore "modello di lettore driver linux" o anche senza "linux" per vedere se trovi la pagina di supporto per il download di driver e accertare in anticipo la presenza di driver per Linux.

Cosa vogliamo fare

Quello che vogliamo fare è:

  • Consentire al sistema di riconoscere il lettore smart card collegato, come dispositivo per la gestione di certificati di sicurezza; e ciò installando il giusto driver per Linux. Talvolta si installa separatamente anche il driver specifico per il tipo di microchip della card;
  • Importare i certificati in Firefox, che è in grado di collegarsi al lettore. In questo modo, nei portali di servizi che richiedono l'autenticazione tramite CNS o CRS, accedendo con Firefox e il lettore installato e collegato, viene mostrata una piccola finestra in cui inserire il PIN della carta per l'identificazione;
  • Installare il software di InfoCert per Linux: software che consente di firmare digitalmente in formato PDF o p7m (Pades e Cades), apporre eventuali marche oltre verificare e consultare file firmati digitalmente;
  • Solo ed eventuale, per CTU o altri interessati al processo civile telematico: installare slpct in ambiente Linux.

Visto che parliamo di particolari esigenze di sicurezza, aggiorna Firefox e la tua distribuzione Linux quanto prima, appena sono rilasciati aggiornamenti. I difetti che l'ultima versione risolve, diventano di dominio pubblico e finché non aggiorni, la tua sicurezza potrebbe essere a rischio maggiore.

Scaricare ed installare il driver

Come indicato nella confezione e nel foglietto all'interno del lettore uTrust 2700 R, Linux è supportato. Trovi informazioni chiare ed un indirizzo web (https://www.internavigare.com/utrust2700r/). Qui si scarica un driver per il lettore in formato .deb (per Ubuntu, Mint, elementary, Zorin, Pop_OS!, Debian,...). Poi sono mostrati i vari tipi di chip presenti nelle smart card: differiscono per il particolare disegno dei contatti. Serve infatti anche il driver adeguato per la card. Nel caso della mia carta InCard, per Linux Mint, mi basta il primo file .deb scaricato. Se però usi una distribuzione linux che supporta pacchetti .rpm, nei link agli archivi con driver dei singoli chip, più in basso nella pagina, trovi anche quelli.

Scaricato il pacchetto .deb, basta fare doppio clic per avviare estrazione e installazione. Vengono segnalati eventuali pacchetti supplementari che potrebbero essere installati per il funzionamento del driver. Si tratta di c.d. librerie per la gestione di dispositivi e protocolli di sicurezza e cifratura, spesso coinvolte in questo genere di servizi in ambito Linux.

Al termine della installazione consigliata, riavvia il computer.

Adesso la prova del fuoco per capire se tutto è a posto. È molto semplice. Se hai prima bisogno di autenticarti in un portale con CNS, prosegui con l'importazione dei certificati in Firefox. Se devi firmare o verificare un documento con firma digitale, installa GoSign.

Importare i certificati CNS e firma digitale in Firefox per Linux

Il passo fondamentale per autenticarsi con CNS, CRS o Tessera Sanitaria nei portali di servizi online, è che il browser informi il sito web della disponibilità di certificati digitali per l'identificazione certa. In questo modo il portale richiederà l'identificazione tramite il PIN della carta. E questo darà accesso a tutti i servizi relativi. E ci vuole Firefox in ambiente Linux. Non ho verificato Opera o altri browser Linux, ma chromium e Google Chrome non consentono di gestire il modulo di sicurezza PKCS#11.

Collega il lettore, inserisci la card dal lato corretto, con il chip in alto con il mio lettore uTrust e apri Firefox. Apri il menu Impostazioni e vai su Privacy e Sicurezza e in fondo alla pagina troverai Dispositivi di sicurezza.

Clicca su Carica e metti se vuoi un nome profilo personalizzato o lascia Nuovo modulo PKCS#11. Poi devi cliccare su Sfoglia per guidare Firefox fino al file principale del driver installato. Il percorso parte dalla radice del File system. È a partire dalla cartella / che si trova al di sopra di Home nella struttura Linux. Con il file manager, da Computer o con apposita vista File system, devi poi entrare su lib poi bit4id e selezionare il file libbit4xpki.so. Il percorso completo dalla radice del file system Linux è /lib/bit4id/libbit4xpki.so. Conferma e chiudi.

Da questo momento, per i portali web che richiedono l'autenticazione, Firefox mostra la finestra di inserimento del PIN nel momento in cui accedi al sito web e sei in grado di effettuare il login dopo essere stato già autenticato. Questo se il lettore è installato a dovere, i certificati validi, la card funzionante ed il PIN corretto 🙂

Installare Dike GoSign come software di firma digitale in Linux

La soluzione più diffusa per firmare, leggere e verificare documenti firmati digitalmente e altre operazioni come la gestione di certificati, e l'apposizione di marche temporali, è quella proprietaria ma gratuita di InfoCert. Giunto ad una ridefinizione con il nuovo nome GoSign Desktop che sostituisce il precedente Dike6. Il file per l'installazione in Linux si trova su https://www.firma.infocert.it/installazione/. Scaricato e fatto doppio clic, l'installazione si avvia.

Finestra di Dike GoSign per Linux

Completata l'installazione, trovi il collegamento a GoSign nella categoria Accessori del menu programmi.
Collega prima il lettore poi inserisci la scheda prima di avviare GoSign. Avviato il programma, dalla barra a comparsa sulla sinistra, entra su Elenco certificati. Se il lettore è installato, la card funzionante e i certificati attivi, dovresti trovare sia quello per la firma digitale che per l'autenticazione con codice fiscale.

Non spiego come usare GoSign perché sarebbe fuori tema ed è comunque un programma dall'uso molto intuitivo e ben documentato.

Slpct in Linux

Avvocati, magistrati e consulenti si cimentano quotidianamente con una amministrazione della giustizia sempre più digitalizzata. A loro rivolgo questa parte finale del tutorial per mostrare quanto la gestione da una postazione Linux di questi servizi non richieda operazioni complesse e possa contribuire a liberarsi da Windows senza ansie. E lo dico da CTU insoddisfatto dalla Aruba Key che, in prossimità degli impegni giudiziari, mi rendeva necessario operare con Windows.
Slpct per Linux si scarica dal sito ufficiale. E consente la redazione di atti e buste telematiche nel formato richiesto dal Processo Telematico. Scaricato il file SLpct_linux.tar.gz, scompattalo e con il clic del pulsante destro su slpctinstall apri le Proprietà. Poi in Permessi, Consenti l'esecuzione come programma.

Adesso, dovrebbe bastare il doppio clic sul file slpctinstall per avviare l'installazione. Se invece il file si apre con un editor di testo, nel file manager, nella stessa cartella, clicca con il pulsante destro in un punto qualunque (non un file specifico). Scegli l'opzione Apri nel terminale. Digita il comando sudo sh slpctinstall e indica la password amministrativa. Stai dicendo al computer che vuoi installare il programma tramite la shell di Linux, con privilegi di amministrazione del sistema.

Indicata la password, in un istante, troverai sul desktop l'icona per l'avvio di Slpct che scaricherà certificati e uffici aggiornati. E adesso puoi eliminare la cartella di installazione e tutto il suo contenuto.

finestra di Slpct in Linux

Questo non è un manuale sull'utilizzo di slpct. Ma ecco l'indirizzo per scaricare la corposa guida ufficiale a Slpct in PDF.

Un generoso lettore mi suggerisce di mettere in guardia utenti su eventuali errori in fase di redazione di buste. Si tratterebbe di un problema di permessi: Slpct vorrebbe venire eseguito con privilegi di amministrazione per entrare nella cartella (protetta) del driver del lettore. Per limitare i rischi derivanti dall'utilizzo di comandi amministrativi, si può continuare ad eseguire Slpct senza permessi di root. Il trucco consiste nel copiare il file del driver (nel caso di questo tutorial libbit4xpki.so), in un percorso accessibile senza permessi di root, magari all'interno della propria cartella utente. Per poi modificare, nelle impostazioni di Slpct, il percorso del driver per il lettore.
Da CTU, in bocca al lupo!

Diffondi la conoscenza!

8 commenti su “CNS, CRS, firma digitale, slpct con Linux”

  1. Il tuo argomento è molto importante perchè quello che tu hai elencato era uno dei problemi basilari per chi utilizza le smart card per l’autenticazione, e tanti non utilizzano Linux poichè lo considerano poco standardizzato, rispetto a Windows, per questi aspetti. Io accedo ai servizi regionali, ma non tutti gli utenti utilizzano i lettori. Mi sorge spontanea una domanda: l’hai fatto solo per la recensione, l’hai fatto perchè utilizzi spesso questi servizi oppure te l’hanno chiesto degli utenti che vogliono abbandonare Windows?

    Rispondi
    • Non ho alcun interesse relativo ad eventuale acquisto del lettore che ho acquistato io. Come scrivo, non ne potevo più della Aruba Key che per Linux ha problemi e volevo provare ad usare la sim con altro lettore, rinunciando al software integrato e ho documentato questa recente esperienza. Uso spesso questo genere di servizi

      Rispondi
  2. Gentilissimo Dario, innanzitutto grazie e complimenti per l’utilissimo articolo… che dopo giorni di ricerche mi ha finalmente consentito di andare avanti con l’installazione di Slpct su Ubuntu (vorrei gradualmente abbandonare Windows, ma devo farmi prima le ossa)…
    Bastava infatti la semplice ma fondamentale indicazione – omessa sia sul sito di Slpct che su ogni altro forum – che in caso di apertura di “slpctinstall” come file di testo (ciò che appunto si verificava a me) era sufficiente fare click con il tasto destro sulla cartella per eseguirla in terminale!
    Purtroppo anche seguendo le semplicissime indicazioni successive incontro però difficoltà… in quanto il terminale mi dice: “chmod: impossibile accedere a ‘/root/Desktop/slpctrun1.desktop’: Non è una directory”
    Ho controllato e tutte le altre stringhe sono conformi a quelle pubblicate sul video youtube.
    Sono disperato!! Cosa occorre fare ancora?
    Grazie per le indicazioni che vorrai fornirmi.

    Rispondi
    • Salve Carmine e grazie e per i tuoi apprezzamenti. Non conosco lo specifico errore ma pare cercare quel file .desktop che è presente nella cartella di slpct in un percorso preciso. Con il file manager prova ad aprire il percorso partendo da Filesystem, e arrivando nella cartella /root/Desktop. Prova a copiarci il file slpctrun1.desktop. Per entrare su /root viene chiesta la password. Fammi sapere

      Rispondi
  3. Grazie mille per le tue guide. Da avvocato, sono oramai decenni che ho lasciato Windows per abbracciare la libertà di Linux. Grazie a te, sono passato da Ubuntu a Mint. Un consiglio a chi utilizza SLPCT e, pur puntando bene il programma sulla libreria necessaria alla creazione della busta crittografata, ottiene sempre il medesimo errore: siccome in Linux SLPCT non viene eseguito da Amministratore (come invece in Windows), non sarà sufficiente individuare il file libreria corretto (/lib/bit4id/libbit4xpki.so), perché contenuto in una cartella protetta. Per aggirare il problema è sufficiente creare una copia del file in una cartella non protetta e puntare il programma SLPCT su quella cartella. Funzionerà alla perfezione.

    Rispondi
    • Ciao Paolo, sono cresciuto tra avvocati, destinato ad esserlo ma cambiato percorso già in corsa… E ne sono ancora circondato ma non ne conosco tanto avanti da usare Linux!
      Io non ricordo di aver avuto problemi di cui parli ma approfondirò e comunque integrerò certamente la tua preziosa segnalazione!
      Grazie!

      Rispondi

Lascia un commento