giovedì 10 luglio 2014

Processo Civile Telematico su Linux (e low cost)

Riporto un utile post a firma di Luca Caldarella e pubblicato sul blog dell'Avola Linux User Group sotto licenza CC by-nc-nd. Dedicato a tutti gli avvocati che come me utilizzano una distribuzione Linux come sistema operativo principale.
Ammetto che, nonostante la spiegazione sia chiara e dettagliata, le operazioni da compiere non sono proprio alla portata di chi per forma mentis non ha molta confidenza con questioni informatiche. Ma direi che è un ottimo punto di partenza.

- - - - - - - - - - - -
 
 
 
Il 30 giugno 2014 è ufficialmente entrato in vigore (D.L. 90/2014 Misure urgenti per la semplificazione e la trasparenza amministrativa e per l’efficienza degli uffici giudiziari) - anche se per il momento non a pieno regime - il Processo Civile Telematico. Si tratta di una delle più grandi riforme che la giustizia italiana abbia mai attraversato negli ultimi anni e comporta il preciso obiettivo di raggiungere in breve alla completa digitalizzazione dei fascicoli processuali con significativi risvolti in termini di celerità ma anche di maggiore sicurezza.
In questa guida non verra illustrato il funzionamento del Processo Civile Telematico in sé. Per questo esistono già numerose guide e video guide oltre che i vademecum già predisposti dai locali consigli dell'ordine e dai distretti di corte d'appello ai quali vi rimando.

In questa guida ci si limiterà a illustrare solo l'aspetto prevalentemente tecnico per il migliore utilizzo su piattaforme Linux (la distro utilizzata in questa guida è Xubuntu 12.04 LTS) e sopratutto low cost.

Premessa

L'avvio del Processo civile telematico (d'ora in poi PCT) presuppone che il professionista si doti di un indirizzo di posta elettronica certificata (PEC) nonché di un dispositivo smart cart necessario per l'apposizione della firma digitale qualificata e per l'identificazione presso il sito istituzionale del Polisweb PCT (necessario per la consultazione telematica dei fascicoli).

Sarà necessario anche un sofware c.d. "imbustatore" (impropriamente anche detto "redattore") e preferibilmente un client di posta elettronica.



1. Il sofware c.d. "imbustatore" e il client di posta elettronica

Il mercato offre numerosissime soluzioni, a volte parecchio costose, a volte con pacchetti "all in one", comprensivo anche di agenda legale, client di posta elettronica e altri gestionali vari. Si tratta di pacchetti che indubbiamente semplificano le operazioni ma che nella stragrande maggioranza dei casi non sono compatibili con Linux.

Per il momento esiste un unico applicativo disponibile, tra gli altri, anche per Linux. E' abbastanza intuitivo e sta già riscuotendo successo anche nelle altre piattaforme, in quanto gratuito, stiamo parlando di SL pct.
SL pct è un sofware gratuito ma non open source, sviluppato per conto della Regione Toscana in linguaggio Java.

Questo software si è dimostrato funzionante con le OpenJDK.
Nel caso in cui si opti per la versione ufficiale di Oracle Java, occorre installare anche le Java Crytography Extentions (JCE)
Per quest'ultimo passaggio vi rimando all'ottima guida presente sul forum dell'Istituto Majorana.

Il client di posta elettronica non è propriamente indispensabile, ma è caldamente consigliato, in quanto il PCT a pieno regime sarà in grado di generare una mole di traffico tale da porre a saturazione nel giro di pochi mesi gli angusti spazi messi a disposizione nella maggior parte dei provider di PEC.
 
Ciò che mi sento di consigliare, in luogo del più rinomato Thunderbird, è Evolution, che a differenza del primo non risente di problemi nella gestione delle PEC, che supporta a pieno, e sopratutto è corredato di un'ottima funzione di backup integrato oltre una comoda agenda.
E' disponibile solo per Linux ed è sviluppato dalla Gnome Foundation, lo trovate comodamente nel PPA di Ubuntu e in quelli della stragrande maggioranza delle altre distro.

2. Scelta della smartcard


L'acquisto della firma digitale qualificata può essere comodamente effettuato da internet presso uno dei tanti soggetti autorizzati ad emetterle (Aruba firma digitale, Postecert, Infocert). Viene venduta in varie configurazioni (chiavetta, lettore da tavolo, firma remota) che si differenziano in genere per il prezzo e per qualche comodo accessorio.
La soluzione adottata nel caso specifico è stata l'acquisto della smart card sciolta da adoperare tramite lettore da tavolo.
Rapprenta la soluzione più economica e assieme riduce il rischio di smarrimento.
Tralascio pertanto ogni riferimento alle c.d. business key, ovvero la firma tramite chiavetta USB, anche perché allo stato attuale non sono disponibili i driver per Linux a 64 bit.

Nel caso specifico la scelta è caduta su Infocert in quanto effettua dei rilasci nativi per Linux (sotto forma di pacchetti deb testati su Ubuntu 10.04 e 12.04, a 32 e 64 bit) del suo software di firma (gratuito ma proprietario), DikeL.
E' bene tenere a mente che DikeL, per il momento, supporta ufficialmente solo Ubuntu 10.04 e 12.04.

Faccio altresi presente che anche le smart card rilasciate da Aruba (che ultimamente pare avere tagliato i prezzi) si prestano al nostro scopo, in quanto il software di firma Aruba Sign gira su tutti i sistemi operativi, compreso Linux 64 bit. Si tratta di un sofware scritto in Java, e perfettamente funzionante con le OpenJDK.

3. Scelta del lettore

In questo caso il consiglio quello di diffidare sempre da quelli forniti in pacchetti "tutto compreso" e procedere piuttosto in proprio l'acquisto di quello maggiormente supportato.

Premetto che ad oggi sono numerosi i dispositivi supportati da driver specifici (tra i tanti anche l'ottimo MiniLector di bit4id).
Nel caso specifico è stato scelto il lettore Gemalto Gem PC USB, peraltro in uso presso le cancellerie di numerosi tribunali, che risulta anche essere tra quelli più a buon mercato.
Lo potete trovare per una decina di Euro on line presso i siti specializzati, su Amazon o nei negozi di forniture per ufficio, e ha altresì il vantaggio di essere compatibile anche con la Carta Nazionale dei Servizi (tessera sanitaria) e con la Carta Regionale dei Servizi della Regione Lombardia, oltre che con le smart card di firma digitale rilasciate dagli altri enti certificatori.

4. Installazione lettore smart card Gemalto Gem PC USB

I driver di questo lettore sono open source e sopratutto sono comodamente disponibili nei PPA di Ubuntu oltre che in quelli di numerose distro (tra le quali anche Fedora).
Per coloro che preferiscono ancora l'approccio tradizionale sarà necessario impartire i seguenti comandi e il gioco è fatto:

apt-get install libccid

apt-get install pcscd


E' tuttavia consigliabile installare anche i seguenti pacchetti:

apt-get install libusb-dev libusb++-0.1-4c2

apt-get install libpcsclite1

apt-get install libpcsclite-dev


Pacchetti facoltativi che ci torneranno utili solo per le verifiche sono:

apt-get install libpcsc-perl

apt-get install pcsc-tools


A questo punto la spia del lettore dovrebbe iniziare a lampeggiare, segno che tutto è andato bene. In ogni caso è bene controllare tramite il solito comando lsusb che il sistema lo abbia riconosciuto.


A questo punto la smart card dovrebbe essere pienamente funzionante e in grado di firmare digitalmente i vostri documenti.
Gemalto GEM PC è un lettore standard, e pertanto viene risconosciuto senza problemi da tutti i sofware di firma.

5. Il sofware di firma

Il processo firma è gestito da un apposito software che dovete installare a parte.
Sfortunatamente non esistono ancora soluzioni open, in quanto il progetto Open Signature sembrerebbe essere abbandonato da anni, e perciò ci si deve affidare a soluzioni prevalentemente proprietarie.

Come già specificato in premessa Dike è il sofware sviluppato per conto di Infocert.
Lo trovate già pacchettizzato in deb ma supporta ufficialmente solo Ubuntu 10.04 LTS e 12.04 LTS, sia a 32 che 64 bit. E' un sofware gratuito ma con versioni plus a pagamento.
Faccio tuttavia presente che numerosi utenti Linux hanno riscontrato problemi in quanto non sempre funzionante nelle operazioni di firma.


Aruba Sign è il sofware sviluppato da Aruba. E' in grado di leggere anche le smart card rilasciate da Infocert, ragione per la quale è la soluzione consigliata nel caso in cui Dike dovesse dare problemi. Aruba Sign è sviluppato in linguaggio Java e supporta tutte le piattaforme, a 32 e di recente anche Linux a 64 bit. E' gratuito.


File Protector è il sofware firma sviluppato da Actalis per conto di Infocamere. Funziona anche con smart card diverse ed è distribuito nei comodi pacchetti deb.
Specifico che taluni utenti hanno riscontrato malfunzionamenti.


Apache Open Office/Libre Office, hanno integrato, a partire dalle loro ultime versioni (v. 4.0) la possibilità di firmare digitalmente i documenti senza necessità di adoperare sofware esterno. Vi rimando, a tal proposito, alle rispettive guide invitandovi all'aggiornamento qualora non lo aveste ancora effettuato.

6. Accesso al Polisweb PCT: installazione del middleware della smart card

Per potere operare il riconoscimento web (e quindi Polisweb) con la nostra smart card sarà necessario installare anche l'apposito middleware.
Premetto sin d'ora che ogni smartcard ha il proprio middleware, che può differire non solo in base al produttore (es. Athena, InCard, Oberthur) ma anche in base al numero di serie della stessa.
Alcuni middleware sono disponibili nella sezione download di Aruba, e sono funzionanti anche per le smart card rilasciate da terzi
Potete conosce con esattezza il tipo di scheda accedendo a Dike-Util (fornito al corredo di DikeL) alla voce "verifica smart card".
Vi rimando al sito del vostro gestore per il download del middleware esatto.
Ricordandovi di operare con i permessi di root, dovrete semplicemente copiare il file middleware (riconoscibile per l'estensione .so) nella cartella

/usr/lib

o a seconda della distribuzione

/usr/local/lib

7. Accesso al Polisweb PCT: configurazione browser Firefox

L'ultimo passaggio necessario per potere interfacciare la smart card al web e la configurazione del brower.
Premetto che questa operazione è possibile (con qualche passaggio in più) anche con Chrome/Chromium. Se avete una business key potete saltare interamente questo passaggio in quanto le stesse dispongono delle versione preconfigurata di Firefox portable.
Su altri siti trovate analoghe guide relizzate con Firefox 3.x. Tali guide sono comunque valide, anche se la procedura è leggermente diversa.
Nel caso specifico è utilizzato Firefox v. 30.0.
Passo 1: installazione certificato

Preliminaremente dovete procurarvi il certificato rilasciato dal gestore della vostra smart card.
Nel caso di smart card Infocert i certificati (.cert) sono scaricabili qui.
Andiamo su Preferenze, tabella Avanzate, scheda Certificati.

Premiamo il tasto Mostra Certificati (linguetta Autorità) e, dopo avere scompattato l'archivio contenente i certificati, selezioniamoli col tasto Importa.
Se tutto è andato bene il certificato apparirà nella lista in ordine alfabetico.
Passo 2: installazione middleware
Dalla medesima schermata, anziché premere Mostra Certificati, premiamo Dispositivi di Sicurezza.
Premiamo sulla destra il tasto Carica:

Potetre mettere il nome modulo che più vi aggrada, mentre occorrera selezionare correttamente il path del middleware precedentemente installato all'interno di /usr/lib/ (o /usr/local/lib).
Nella successiva schermata spuntate tutte le caselle libere (in numero di tre).

Se al termine di questa operazione vi verrà chiesto di inserire la password ella vostra smart card vuol dire che tutto è andato a buon fine.
Riepilogo brevemente i middleware forniti da Infocert (i numeri indicano le iniziali del codice identificativo smart card).
ipmpki32.so per smartcard: 1201.., 1202.., 1203..,
bit4ipki.so per smartcard: 7420.., 1204.., 1205.., 6090..
bit4opki.so per smart card Oberthur: 170.., 190..
cvP11_M4.so per smartcard: 16..
si_pkcs11.so per smartcard: 1401.., 1402.., 1501.., 1502..
cmp11.so per smart card: 1503..
A questo punto il dispositivo è perfettamente configurato ed è possibile autenticarsi in rete, avendo cura di tenere la smart card inserita nel lettore. 
 
 

8 commenti:

Anonimo ha detto...

DiKeL c'è anche per Fedora 32 e 64 bit, e va una bellezza, senza perdere un colpo, questione di dedicare un pò di tempo alla configurazione.
Tetato comunque anche sulla Xu 14.04. Idem.

Eolo w@acm.org

kenno ha detto...

Sulla mia Xubuntu 14.04 ho avuto problemi con Dikel che, pur vedendo i certificati della carta, in fase di firma mi dava gli errori"Nessun certificato di firma presente sul Dispositivo di Firma
Impossibile recuperare il certificato dal dispositivo di firma".
A tal proposito ho risolto installando il software Arubasign che, sviluppato in java, funziona egregiamente con tutte le carte e i lettori di smartcard, compresi quelli non Aruba. Se si avessero problemi di installazione basta comunque lanciare direttamente il relativo file .jar che funziona benissimo con le OpenJDK.
Unica indicazione è quella di installare le librerie del proprio lettore e smartcard.

Luca Caldarella ha detto...

Ciao ragazzi, sono l'autore della guida.
Anche sul forum ufficiale di Ubuntu sono in parecchi ad avere lamentato il problema che Dike non legge i certificati all'atto della firma.
Chiedo a Eolo (che però si è firmato anonimo) se ha seguito qualche procedura in particolare per farlo andare su Xubuntu 14.
Il fatto che su Fedora funzioni mi fa pensare che il problema sia forse limitato alle derivate di Ubuntu....

Anonimo ha detto...

A me purtroppo non funziona ne Arubasign ne DikeL, ed ho xubuntu 14.04...

kenno ha detto...

Per precisione su Xubuntu 14.04 ho creato un avviatore che punta direttamente allo script (il file arubasign64.sh) che avvia a sua volta il file jar di arubasign poi gli ho messo l'icona originale che trovi qui:
http://img.informer.com/icons/png/48/5184/5184848.png

Puoi anche creare un avviatore che punta al path dove hai scompattato arubasign e che esegue direttamente i comandi contenuti nello script
arubasign64.sh

Elia Notarangelo ha detto...

Scusate ma non riesco a far funzionare Arubasign su *buntu 14.04 (ho provato un po' tutti i DE e le derivate come linuxmint) a 64 bit.
Scarico il file compresso per 64 bit, scompatto ed avvio il file eseguibile arubasign.sh.
Il programma in java si avvia e funziona tutto egregiamente, ad eccezione della firma: il processo va apparentemente a buon fine, con l'ok, ma il file .p7m di output non viene generato.
Stesso problema si presenta con Arch, Fedora, Debian, sempre con arch. a 64 bit.
A voi funziona l'output?
Dike mi funziona senza grossi problemi (l'unico dramma è la verifica dei file .p7m, perché mi dà sempre un falso errore di certificati scaduti).

Elia Notarangelo ha detto...

Io uso una *buntu 14.04 64 bit (il DE e le derivate le cambio spesso).
Ho scaricato Arubasign per l'architettura corretta e sembra funzionare, ma quando mi dà l'ok sulla firma di un .pdf, non mi trovo l'output nella cartella di destinazione scelta (non trovo nulla nemmeno in /tmp o nella cartella di origine).
A voi accade lo stesso?

psychotrain ha detto...

Salve, non sono un avvocato ma mi occupo dello studio "tutto linux" (da quasi 10 anni!) di mia moglie... Confermo il problema con ArubaSign (2.9.1) di mancanza di output su Ubuntu 12.04 LTS 64 bit, su un'altra distribuzione (OpenSUSE 13.1) va anche peggio... In compenso con l'attuale software in download sul sito Aruba funziona la ArubaKey anche su distribuzioni 64 bit... Peccato però che anche con la procedura di "Installazione certificato" la modalità ccid (che permette per esempio la firma con slPCT) non funzioni, a meno di ripetere tutte le volte la procedura di diagnosi. In questo caso tutto miracolosamente comincia a funzionare.
Ma non mi sono accontentato e mi sembra di aver trovato una soluzione (non chiedetemi come: intuizione e prove, ed un po' di… fortuna!): sono andato nella cartella della chiavetta ArubaKeyLinux/Main-lnx/drivers ed ho copiato i files convert-ak.exe, convert.64.exe e convert.64.exe.svc nella cartella /usr/local/sbin, dando i permessi di esecuzione. Ho poi modificato il file /etc/udev/rules.d/99-hid-ak-devices.rules con il seguente contenuto: ATTRS{idVendor}==”2021″, ATTRS{idProduct}==”0002″, MODE=”0666″, RUN:=”/usr/local/sbin/convert-ak.exe”. Ho ricaricato le regole udev con udevadm control –reload-rules e… Miracolo! Eseguendo in un terminale pcsc_scan mostra in bella vista chiavetta e certificati, che sono regolarmente visti anche da Firefox e Thunderbird. Se monto la chiavetta e provo a firmare funziona, ed una volta smontata è sempre lì in modalità ccid fin quando non la estraggo…
La procedura di “installazione certificato” è indispensabile perché la chiavetta esegue una modifica del file Info.plist del driver ccid; per un altro sistema 64 bit (sempre una OpenSUSE 13.1) ho preferito “lavorare pulito” e compilare ccid nella versione SVN, in cui il lettore AK910 è già presente… Funziona anche lì!
Curiosità: facendo un lsusb la chiavetta che prima era 2021:0002, ora è 2021:0001, che probabilmente identifica la modalità ccid…
L’unico rammarico è: ma perché dobbiamo fare tanta fatica? Quali segreti ci sono in queste chiavette per non pubblicare i sorgenti? E soprattutto, la mia soluzione è valida solo per caso? Mah…
Spero di essere stato utile…