Guida alla Firma Digitale per Ubuntu Linux

La firma digitale sta lentamente prendendo piede, nel solito caos di leggi, regolamenti, infiniti pseudo-standard, etc. In realtà, le tecnologie esistono e sono usate da almeno dieci anni, e sarebbe stato semplicissimo implementarle se non ci si fossero messi di mezzo Stato, Regioni ed Enti vari, oltre che decine di soggetti privati che ne hanno voluto approfittare per guadagnarci, e sgomitando hanno solo creato entropia.

In tutto questo caos, poiché ormai sta diventando obbligatorio usare la firma digitale (che, forse fra un’altra decina d’anni, mostrerà i suoi reali vantaggi), cerchiamo di fare un po’ di chiarezza, soprattutto per i (pochi) utenti di linux che non hanno a disposizione i pacchetti di installazione “chiavi in mano” dei vari produttori di smart-card (a quanto pare, chiunque non usi winzozz è considerato un paria…).

Cominciamo col chiarire che smart-card, lettore e software per la firma sono tre cose totalmente indipendenti, grazie a quei pochi standard che, nonostante gli sforzi per creare entropia, i vari soggetti coinvolti sono stati costretti a rispettare. In altri termini, posso tranquillamente usare la smart-card delle poste con un lettore comprato su amazon, con il software Dike della camera di commercio.

Diciamo anche subito che solitamente nelle smart-card della Carta Nazionale dei Servizi esistono due distinti certificati: uno per la firma e la cifratura dei documenti, l’altro per l’autenticazione (ad es. per i siti web dell’agenzia delle entrate e dell’inps). In realtà non c’è alcuna necessità tecnica per creare due distinti certificati, se ne poteva fare uno solo, ma ringraziamo il nostro caro legislatore…

Un consiglio, a questo punto, per risparmiare tempo (e soldi), è di NON affidarsi ad Aruba o alle Poste per ottenere la propria CNS, bensì andare direttamente alla Camera di Commercio. Senza dover autenticare firme, inviare raccomandate, attendere buste coi pin, in dieci minuti si presentano documento, codice fiscale, si pagano brevi manu 25 euro (o gratis per le aziende iscritte), e si ha in mano la smart-card perfettamente funzionante. Ma senza lettore.

Chi usa winzozz può a questo punto entrare in un qualsiasi negozio ed acquistare un qualsiasi lettore. Chi usa linux deve stare più attento, poiché molti lettori hanno i driver solo per winzozz. Per esperienza diretta, consiglio i lettori della Gemalto (acquistabili a due soldi su amazon), che seguono nativamente lo standard CCID e che quindi sono perfettamente compatibili con linux.

A questo punto, basta installare il tutto. Tramite synaptic (Sistema -> Gestore pacchetti) o tramite riga di comando (sudo apt-get install), occorre installare un po’ di pacchetti: pcscd, pcsc-tools, libccid, opensc.

Questo in teoria già basterebbe per usare la smart-card, tuttavia dover usare la riga di comando per ogni operazione è alquanto fastidioso. Per questo, esistono dei software per semplificare le operazioni più comuni, come ad esempio la firma dei documenti e la verifica delle firme.

Se avete “acquistato” la smart-card alla camera di commercio, la guida acclusa vi consiglia di andare sul sito di Aruba (che è il vero emettitore della CNS) per scaricare software e driver. Potete risparmiarvi mezza giornata di difficili operazioni di installazione ed inutili parolacce, in quanto “FileProtector” non funziona.

Purtroppo, per quanto ne sappia, non esistono software open-source per la firma digitale (un vecchio progetto purtroppo non è più compatibile con le nuove librerie), ma per fortuna esistono molte alternative comunque gratuite, benché “closed-source”. Quella che consiglio (anche per altri motivi, vedi sotto) è Dike, che tra i vari vantaggi, ha anche un pacchetto “.deb” già pronto all’installazione. Scegliete quello per la vostra architettura (32 o 64 bit), ed installatelo al solito modo (cioè facendo doppio clic sul file scaricato).

Nel menu, sotto “Altro”, dovreste trovare due nuovi programmi: “Dike” (per la firma e la verifica) e “DikeUtil” (per cambiare il pin e sbloccare la smart-card).

Ma poiché abbiamo fatto trenta, possiamo fare trentuno. La CNS infatti, come dicevamo prima, oltre che per firmare digitalmente i file, può essere usata anche per autenticarsi sui siti internet della pubblica amministrazione (e non solo, ad es. inps), senza dover seguire le noiose e lunge procedure di registrazione (mezzo pin via sms, mezzo via raccomandata, il codice utente tramite piccione viaggiatore…).

Per fare ciò, occorre configurare il browser. La configurazione di Firefox è molto semplice, quella di Chromium è molto complicata e raramente funziona, per questo non la riporto proprio.

Se avete installato Dike, avrete una bella sorpresa, in quanto sono incluse anche le librerie “bit4id” per accedere alla smart-card di Aruba. Altrimenti, dovrete scaricarle (driver Incard) e scompattarle dentro /usr/lib. Questo perché la libreria “opensc”, che in teoria andrebbe benissimo, ha qualche problema con la CNS. Per questo, nel successivo passaggio, non useremo la libreria “opensc-pkcs11.so”, ma bensì “libbit4ipki.so”.

Dentro Firefox, aprire le Preferenze, andare nella scheda “Avanzate”, sottoscheda “Certificati” e cliccare su “Dispositivi di sicurezza”. Cliccare il pulsante “Carica”, inserire un nome a piacere (ad es. “SmartCard”) e poi cercare, dentro “/usr/lib” la libreria “libbit4ipki.so”. Per verificare che il certificato funzioni, cliccare su “Mostra Certificati”. Se il lettore è collegato e la smart-card inserita, verrà richiesto il pin, e poi mostrati i due certificati. Un ultimo passaggio consiste nell’installare il certificato dell’autorità di certificazione InfoCert, necessario per la contro-autenticazione dei server. Dopo aver scaricato il certificato, ed aver cliccato su “Mostra Certificati”, andiamo nella scheda “Autorità”, clicchiamo “Importa” e selezioniamo il file appena scaricato.

A questo punto possiamo autenticarci con la nostra smart-card su molti siti della pubblica amministrazione.

C’è da aggiungere che in teoria la CNS potrebbe essere usata anche per firmare (e cifrare) la posta elettronica, e che in teoria Thunderbird dovrebbe supportarla. Tuttavia un bug ampiamente conosciuto e mai risolto, non consente di usare i certificati su smart-card per firmare e/o cifrare i messaggi di posta elettronica con Thunderbird. In ogni caso, data l’attuale legislazione, questo non è un grosso problema, poiché siamo comunque costretti ad usare la PEC, e ad inviare come allegato i documenti firmati digitalmente (tramite, ad esempio, Dike).

A questo punto mi preme fare una piccola digressione sulla sicurezza dei certificati che ci costringono ad acquistare ed usare. I sistemi crittografici usati in questi certificati sono vecchi di 15 anni ed è ampiamente dimostrato che sono attaccabili. Finché li si usa per la firma digitale, si corre un rischio relativamente nullo (in teoria governi e servizi segreti potrebbero falsificare una firma, ma a che pro?), ma personalmente non li userei mai per cifrare un documento segreto. Ma d’altronde, che possano essere usati anche per cifrare e decifrare dei file, non lo sa quasi nessuno…

Altra piccola digressione può essere utile per dire che molte regioni, da qualche anno a questa parte, stanno inviando le nuove Tessere Sanitarie con dentro un microchip, che altro non è che una smart-card, utilizzabile come CNS. Tuttavia, la procedura per attivare tale smart-card è in genere complicata. In compenso, c’è di buono che è totalmente gratuita.

Se ti è piaciuta questa guida, per favore impiega un attimo di tempo per firmare la petizione per attivare il servizio di infomobilità QuandoPassa.it anche nella tua località. Il servizio permette finalmente anche ai comuni medi e piccoli (costa davvero poco adottarlo!) di far sapere ai propri cittadini dove è l’autobus in tempo reale (lo vedi muoversi sulla mappa sul tuo cellulare!) e dopo quanto arriva alla fermata. Puoi anche trovare la fermata più vicina col Gps del cellulare (oltre che con il codice della fermata o il QR code sulla palina) così non occorre cuocersi al sole o gelarsi sotto la pioggia, ma si può uscire giusto in tempo per prendere il bus. E poi tanti altri servizi utili, tipo il sito con tutti gli orari e i percorsi dei bus, tutte le informazioni disponibili anche su Google Maps e Bing Maps, e tanto tanto altro. A te non costa nulla, al tuo Comune costa pochissimo, ed aiuta tutti ad usare l’autobus invece della macchina. Dai, firma anche tu e condividi con i tuoi amici!

logoQuandoPassa

2 thoughts on “Guida alla Firma Digitale per Ubuntu Linux

  1. Giuseppe Barichello

    Articolo molto interessante.
    A proposito di software open per firmare: hai visto j4sign?
    Sto provando a pensare ad un modo per automatizzare la firma digitale di grosse quantità di documenti e mi stavo chiedendo cosa intendessi con “Questo in teoria già basterebbe per usare la smart-card, tuttavia dover usare la riga di comando per ogni operazione è alquanto fastidioso. ”
    Io vorrei proprio usare la riga di comando. Mi daresti un’imbeccata?

    Grazie in anticipo!

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

2 + = 10

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>