facciamo i backup!


Una delle funzioni più nascoste di sinekarta riguarda il riversamento diretto.

La normativa prevede questa funzione e la descrive in questi termini : “[art.1 comma 1 lettera n] riversamento diretto: processo che trasferisce uno o più documenti conservati da un supporto ottico di memorizzazione ad un altro, non alterando la loro rappresentazione informatica. Per tale processo non sono previste particolari modalità;

In parole povere questo processo permette di eseguire un duplicato del vostro archivio conservato a norma, ovvero un backup.

I problemi che si nascondono dietro ad un backup sono diversi (se volete un’infarinatura generale vi consiglio di partire da wikipedia), la normativa li complica ulteriormente aggiungendo alcuni oneri a carico del Responsabile della Conservazione Sostitutiva (RCS).

Vediamo di riassumere le caratteristiche principali del sistema di backup (o riversamento diretto) di sinekarta :

– è possibile effettuare backup a caldo

Utilizzando le API di Alfresco per “scaricare” su file system i documenti PDF/A archiviati, è possibile eseguire il processo in qualunque momento, anche da server remoti, unico vincolo la possibilità  di connettersi via HTTP al server di Alfresco.

– i documenti vengono esportati da Alfresco e copiati su file system, è poi possibile riversarli sul supporto preferito

Una volta scaricati i documenti PDF/A conservati è possibile utilizzare il “supporto ottico di memorizzazione” preferito, che sia un CD, un hard disk esterno, una chiavetta USB, un nastro, etc.

– non è necessario un software particolare per leggere i documenti backuppati, basta il reader pdf

I documenti “scaricati” restano sempre e comunque dei PDF/A. Gli stessi ai quali accedereste tramite Alfresco. Basta quindi avere un lettore PDF per consultare (verificando firma digitale e marca temporale) i documenti backuppati. Se proprio avete paura che in un futuro non esisteranno più software in grado di leggere il formato PDF potete copiare sul dispositivo anche una versione di Acrobat Reader.

– il backup viene realizzato utilizzando parametri specificati dall’utente

L’utente (tipicamente il RCS) può utilizzare diversi parametri per determinare quali documenti backuppare. Il più importante è il nome del percorso (all’interno del repository di Alfresco) da cui partire; lo script scaricherà  tutti i documenti presenti in tutte le cartelle (e sottocartelle) specificate, senza limite di profondità .

– il processo di backup è “scriptabile” ed integrabile con altri processi aziendali

Per rendere il processo di backup personalizzabile e indipendente dal sistema operativo è stato scelto Apache ANT come infrastruttura di lavoro. Questo strumento è veramente potente e permette infiniti metodi di integrazione.

Unico difetto (se così si può chiamare) : il backup di sinekarta NON è lanciabile da interfaccia web ma solo tramite shell (es. prompt del DOS).

Quasi dimenticavo… lo script che esegue il backup dell’archivio sinekarta si trova in <Alfresco>sinekartaant e si chiama riversamentoDiretto.bat. Questo batch lancia uno omonimo script ANT (riversamentoDiretto.xml) che potete utilizzare come base per eventuali personalizzazioni.

Annunci

smart card per negati


La firma digitale basata su smartcard ha delle enormi possibilità  ma non sempre un utente che si trova ad usare la propria smart card per la prima volta riesce a districarsi nella complessità  di questa tecnologia.

Questo articolo vuole essere una mini guida (spero alla portata di qualsiasi lettore) per capire il mondo delle smart card.

Anche se molti concetti di cui parlerò si applicano esclusivamente al mondo della firma digitale, altri sono validi per qualsiasi smart card, : SIM telefoniche, Carte di credito, etc..

Prima di tutto : cosa è¨ una smart card?

Una carta a microprocessore (una smart card appunto) è un computer miniaturizzato, con tanto di memoria, sistema operativo e quant’altro.

Questo minuscolo computer può comunicare con altri dispositivi tramite i contatti, la parte in rame visibile sulla tessera di plastica.

Per permettere alla nostra carta a microprocessore di comunicare con il nostro computer sono necessarie due cose :

  1. un adattatore che “converta” il formato dei contatti
  2. un software che sia in grado di parlare la stessa lingua della carta

Il primo aspetto è quello meno difficile da comprendere : quasi tutti i computer in circolazione hanno bisogno di un congegno che permetta la “conversione” dello schema elettrico dei contatti in rame della carta in un formato collegabile ad un computer.

Stiamo parlando del lettore : un dispositivo che permette alla smartcard di comunicare con il PC attraverso, ad esempio, una porta USB (buona vecchia USB).

Ovviamente, come qualsiasi dispositivo USB, per il corretto funzionamento è necessaria l’installazione di un driver che, di solito, è fornito insieme al lettore.

Il secondo aspetto è quello più complesso; necessita di un po’ di pazienza per essere sviscerato.

Abbiamo detto che la smart card è un piccolo computer, come qualsiasi computer è in grado di eseguire operazioni che gli vengono richieste tramite un linguaggio. Chiunque voglia chiedere al microprocessore della carta di eseguire una determinata azione deve conoscere questo linguaggio (ecco i riferimenti : ISO/IEC 7816-4).

Il problema di qualsiasi linguaggio è che, a seconda di chi lo parla (o lo ascolta), ci possono essere delle lievi differenze : i vari dialetti. A seconda di chi ha realizzato l’interprete del linguaggio (il produttore della smart card), ci possono essere delle piccole differenze (spesso solo sfumature) nel modo in cui vengono capiti ed eseguiti i comandi.

Quindi, in soldoni, nonostante esista uno standard di riferimento per questo linguaggio, a seconda del produttore della carta ci possono essere delle piccole differenze nel modo in cui la carta accetta ed esegue i comandi.

Per questo (e per altri motivi troppo tecnici per essere spiegati in questo articolo) è spesso necessario non usare direttamente il linguaggio del microprocessore ma utilizzare un software (fornito dal produttore della smart card) che semplifica la comunicazione con la carta. Entrare nel dettaglio di questo software è veramente troppo complesso, diciamo semplicemente che il nome di questa componente è “modulo che implementa l’API PKCS11”, per gli amici driver PKCS11. E’ importante inoltre dire che il driver PKCS11 elimina i problemi di dialetto.

Qualsiasi applicazione, di qualsiasi produttore software, può quindi parlare con qualsiasi carta, di qualsiasi produttore, se utilizza il driver PKCS11.

Veniamo ora a sinekarta. Ho spiegato in un precedente articolo, qualche tempo fa, come sinekarta permetta di applicare la firma digitale tramite il browser dell’utente. Ma come può sinekarta accedere alla smart card tramite il browser?

Si, bravi, avete capito bene! sinekarta accede alla smart card passando per il driver PKCS11!!

Ma non correte troppo, purtroppo manca un tassello al puzle. Il browser interpreta e visualizza pagine HTML, tramite l’HTML (o javascript) non è possibile accedere ad alcun driver.

Per riuscire ad accedere al driver PKCS11 da un browser, viene utilizzata una APPLET. Una APPLET è un pezzo di software (di sinekarta in questo caso) che viene caricato nella pagina web (esattamente come un’immagine o un filmato). La prima volta che un utente, tramite browser, accede alle funzionalità  di firma digitale di sinekarta, gli viene richiesto di installare questa APPLET. (Se sei un tecnico, non ti preoccupare. So benissimo di avere detto una grande inesattezza ma sto semplificando 😉 ).

La APPLET però non è in grado di accedere in modo semplice al driver PKCS11 perchè il driver è esposto in modo differente a seconda del sistema operativo dell’utente (windows, linux, mac, etc…). L’ultimo pezzettino quindi risolve questo problema tecnologico. Dopo avere installato l’APPLET è necessario scaricare e salvare in una directory del sistema un programma di utilità (PKCS11WRAPPER) che permette di accedere al driver PKCS11 del proprio sistema operativo.

Per fortuna queste ultime attività  devono essere fatte solo al primo utilizzo delle funzioni di firma di sinekarta.