giovedì 19 febbraio 2015

Processo Civile Telematico: guida al calcolo dell'hash (o impronta)

L'11 febbraio 2015 è entrato in vigore il D.P.C.M. 13.11.2014 che nel predisporre nuove regole tecniche relative all'attuazione del Codice dell’Amministrazione Digitale (CAD – D.Lgs. 82/2005) ha aggiunto un altro tassello alla digitalizzazione dell'apparato amministrativo statale.

Il regolamento (artt. 4 e 6) al fine di garantire con certezza assoluta la rispondenza della copia all'originale (degli atti nativi digitali e di quelli acquisiti da supporto analogico), detta nuove regole che trovano applicazione (benché la questione sia ad oggi controversa) anche nel più ampio contesto del Processo Civile Telematico.

Pertanto, gli avvocati che si avvalgono della facoltà di notificare in proprio a mezzo PEC (il D.L. 90/2014, che ha modificato l'art. 1 della l. 53/1994, ha abolito la preventiva autorizzazione del COA), dovranno attenersi a nuove modalità operative, che consistono nel calcolo dell'hash (o "impronta" come la chiamano le fonti legislative) del documento informatico e nella sua menzione nella relata di notifica.

Per quanto riguarda gli aspetti strettamente giuridici della questione rinvio ai numerosi siti che lo trattano, in modo particolare il blog dell'avv. Maurizio Reale (dove è possibile trovare anche degli interessanti modelli di relata conformi alle nuove notificazioni) o il gruppo Facebook PCT processo civile telematico.

Ciò che andremo invece ad affrontare è riguarda tutto ciò che attiene al calcolo dell'hash - impronta su Linux.


Cosa è l'hash?
Semplificando al massimo, si definisce hash una funzione matematica che, partendo da un qualunque file, produce una stringa alfanumerica.
Poiché ciascun file restituisce sempre la stessa stringa, l'indicazione di quest'ultima consente di avere un immediato riscontro matematico della sua integrità, intesa anche come non alterazione. Anche la più insignificante modifica (es. il cambio del nome file) modifica la stringa.
Nel nostro caso il file (il più delle volte pdf) è naturalmente l'atto giudiziario da notificare.

Esistono numerose funzioni hash, quello che attenzioneremo è la funzione SHA-256, che si contraddistingue per essere una delle più sicure.


Come calcolarlo? sha256sum e Gtkhash
Anche se su internet si trovano numerose web app gratuite in grado di calcolarlo facilmente, il buon senso dovrebbe indurre a preservare con particolare attenzione atti e documenti contenenti informazioni personali e riservate, ragione per la quale sconsiglio nel più categorico dei modi l'ausilio di questi mezzi a distanza.

Ubuntu Linux integra già un'apposita utility da terminale, ovvero il comando sha256sum.
La sintassi è la seguente: 

$ sha256sum nomefile

Come si intravede dalla schermata, che riporto solo per gli amici più tradizionalisti, il file Atto Citazione.pdf ha generato come hash Sha-256 la stringa: 
3544f5998f0cee43b14f3fb5dd7d86984cafcbcf74afadb304cc15a2002d78c5





Fortunatamente esistono anche utility grafiche, che consiglio per la loro semplicità, come l'ottimo Gtkhash, che trovate già nei PPA di Ubuntu.

sudo apt-get install gtkhash


Gtkhash è in grado di calcolare gli hash contemporaneamente secondo più funzioni.
E' sufficiente selezionare il documento dalla finestra File e in meno di un batter d'occhio avrete tutte le funzioni pronte da copiaincollare.



Da come si evince, Gtkhash calcola anche secondo gli algoritmi MD5 e SHA-1. Quella che a noi interessa è l'ultima, ovvero il menzionato SHA-256 che dovrà essere indicato nella relata di notifica.
Come è possibile vedere la stringa è assolutamente identica a quella calcolata dal terminale.

Naturalmente è possibile calcolare l'hash dei file ricevuti al fine di controllare la rispondenza a quello indicato nella relata.

giovedì 12 febbraio 2015

Processo Civile Telematico: installazione e configurazione del redattore SL pct su Ubuntu e derivate



Nella scorsa guida abbiamo spiegato come predisporre una macchina Linux per il corretto funzionamento della firma digitale e dell'interfaccia al Polisweb nazionale.
In questa guida verrà illustrato come installare il software imbustatore (o redattore) SL pct.
La distro di riferimento è Ubuntu 14.04 LTS.

SL pct è un software gratuito, open source, multipiattaforma programmato in linguaggio Java.
Lo potete scaricare qui, ricordandovi di fare una piccola donazione nel caso il software fosse di vostro gradimento.


1. Installazione ambiente Java (JRE)

Il primo adempimento, preliminare a qualunque operazione, consiste nell'installazione dell'ambiente Java.
Nel caso in abbiate già provveduto passate direttamente al punto 2.
Se invece non siete sicuri, basterà scrivere nel terminale il seguente comando di verifica:
$ java -version 

Se la risposta è un messaggio di errore allora occorrà provvedere all'installazione.
In caso contrario la consolle restituirà un messaggio simile:





Prima di procedere con l'installazione occorre sapere che l'ambiente Java fornito nei PPA di Ubuntu è l'ambiente Open JDK. Si tratta di una versione non ufficiale e completamente open source, e differisce dal più celebre Oracle Java, pure questo open, soltanto dal fatto che in quest'ultimo sono implementate alcune tecnlogie proprietarie.
Nella maggior parte dei casi Open JDK risulta essere un ottimo sostituto di Oracle Java, tuttavia nel funzionamento di SL pct potrebbe causare problemi.
Per questo motivo è necessario preliminarmente disinstallare, se presente, Open JDK.

Oracle Java non è presente nei PPA per problemi di licenza.
Per la sua installazione occorrerà pertanto scaricare il pacchetto dal sito ufficiale. La versione è pacchettizzata soltanto in RPM. Se non disponete di una distro rpm based (es. Fedora) bisognerà scaricare e installare i binari.

Fortunatamente, alla poca lungimiranza di Oracle, hanno rimediato gli amici di WebUpd8, che ne hanno pacchettizzato in modo autonomo una versione in comodi deb.
Le istruzioni da seguire, che consistono nell'aggiungere il PPA appositamente creato si riassumono nei seguenti comandi da impartire nel terminale:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

Per il momento sconsiglio di passare a Java 8, in quanto potrebbero verificarsi dei problemi sia con SL pct che con il software di firma Aruba Sign (nel caso disponiate chiavette Aruba).




2. Installazione di SL pct

Dopo avere scaricato SL pct dal link indicato sopra (o dal sito ufficiale ww.slpct.it) si procede scompattando l'archivio. Per questa semplice operazione ometto qualsivoglia riferimento dalla riga di comando in quanto oramai la procedura può tranquillamente essere effettuata da modalità grafica.

Prima di avviare l'installazione bisogna dare i permessi di esecuzione all'installer principale, ragione per cui, dopo esseri portati all'interno della cartella diamo il seguente comando.

sudo chmod +x slpctinstall 

Procediamo pertanto con l'installazione avviando il classico comando:

sudo ./slpctinstall

A questo punto troverete SL pct è installato all'interno della cartella Home, mentre un collegamento verrà creato nel desktop, ma non abbiamo ancora finito.

SL pct dispone di una funzione di aggiornamento automatico alle nuove versioni.
E' bene precisare sin d'ora che per quanto riguarda Linux questa funzione è limitata solo agli alert. Ogni nuova versione dovrà pertanto essere scaricata e installata da zero secondo le modalità pocanzi esposte.


3. Installazione delle JCE (Java Cryptograpy Extension)

L'installazione di queste librerie supplementari è fondamentale in quanto, in loro assenza Java, e conseguentemente SL pct, non riusciranno a gestire le implementazioni di firma.

Al primo avvio di SL pc comparirà quindi un messaggio di avviso che ne segnala la mancanza.

Questo pacchetto va scaricato a parte dal sito ufficiale di Oracle Java (n.b. il presente link vale solo per Oracla Java 7).

L'interno dell'archivio è composto dalla cartella "UnlimitedJCEPolicy", che contiene i seguenti file:


Occorre copiare solo i file local_policy.jar e US_export_policy.jar all'interno del seguente percorso (sono necessari i permessi root):

/usr/lib/jvm/java-7-oracle/jre/lib/security

Vi raccomando di non copiare la cartella che li contiene ma direttamente i singoli file.



4. Abilitare SL pct alla firma digitale

Come ho scritto più sopra SL pct funziona principalmente da "imbustatore" del fascicolo e degli atti di parte. Questo pertanto presuppone che l'atto principale o la procura alle liti siano già state precedentemente firmate digitalmente (estensione .p7m) con i software di firma appositamente rilasciati dai vari gestori (Aruba Sign, Dike) prima di essere caricate nella busta.

Ciò è ovviamente possibile, tuttavia, al fine di facilitare le operazioni, si può abilitare SL pct alla firma degli atti (utilizzandolo a tutti gli effetti come software di firma), che così in questo caso non necessitano di essere preventivamente processati con gli appositi software, con un notevole risparmio di tempo.

Dando per scontato che abbiate già proceduto a scrivere il vostro atto giudiziario da depositare ed esservi muniti della procura ad litem, lì dove richiesto, avviate SL pct e cominciate a caricare i dati e impostare gli atti secondo il suo normale funzionamento.

Giunti al punto raffigurato nella schermata sottostante, premete il tasto Firma.




Si aprirà questa ulteriore schermata:




Presupponendo che abbiate regolarmente installato il driver del vostro lettore e il corretto middleware della vostra smart card (le operazioni sono già state spiegate nella precedente guida), si procede come segue:

Nel primo rigo, basterà inserire il path dove abbiamo installato il middleware. Nel caso specifico si tratta della libreria libbit4xpki.so, valida per la smartcard Incard.
Sarà necessario effettuare questa operazione solo la prima volta, per tutte quelle successive SL pct manterrà le impostazioni.

Il rigo slot può essere lasciato anche vuoto, posto che il programma riconoscerà automaticamente quello corretto.

Nel terzo rigo bisogna inserire la password della smartcard, e occorrerà farlo per ogni singola operazione, in quanto non è possibile salvarla.

A questo punto premendo il tasto "Firma", se tutto è andato bene, la spia del vostro dispositivo di firma comincerà a lampeggiare dando avvio alla procedura.