Key Store (Firma Digitale)

La funzionalità Firma Digitale aggiunge funzionalità di firma PDF alla piattaforma LogicalDOC. Fornisce anche la generazione di certificati utente, necessari per la firma dei documenti.

LogicalDOC consente agli utenti di:

  • scaricare il PDF per l'anteprima,
  • scaricare il certificato di root per installare all'interno del visualizzatore PDF per verificare eventuali certificati futuri,
  • passare alla generazione del certificato,
  • firmare il PDF,
  • visualizzare i certificati esistenti senza aprire il PDF firmato.

Concetti

Generalità

  • I documenti sono firmati per proteggerli dalla modifica, soprattutto nelle fasi critiche del loro ciclo di vita.
  • Documentazione e certificazione utente in LogicalDOC seguono i principi della crittografia asimmetrica, PKI e gli standard X.509.
  • Per firmare un documento, un utente richiede un certificato personale.
  • Ogni utente può creare il proprio certificato.
  • I certificati vengono rilasciati dalle Autorità di certificazione (CA).

Che cos'è una firma digitale?

Le firme digitali identificano in modo univoco il firmatario del documento. Forniscono una simile funzionalità alle firme scritte a mano sulla carta e costituiscono un'alternativa conveniente per la firma e la scansione dei documenti quando è richiesta una versione digitale di un documento. Le firme digitali sono intese a garantire l'autenticità e l'integrità dei documenti, vale a dire verificare che l'originatore del documento o il firmatario sia quello che essi sostengono di essere e per accertare che un documento non sia stato manomesso tra il momento della firma e il successivo la visualizzazione.

Che cos'è un Certificato Digitale?

Prima di firmare un documento è necessario un certificato digitale. I certificati sono allegati ai documenti per verificare l'identità del firmatario, vale a dire che la persona che firma il messaggio è chi pretende di essere. I certificati sono rilasciati da Autorità di certificazione (CA, noto anche come emittente). Per verificare che un certificato non sia stato manomesso, deve essere convalidato contro la chiave pubblica CA. Se questa verifica è passata significa che la CA certifica l'autenticità del firmatario. I certificati digitali vengono formattati utilizzando standard PKI, il più comune di essi è X.509, che viene utilizzato anche in LogicalDOC.

Autorità di certificazione locali e root

Autorità di certificazione Root

I certificati di livello più elevato vengono creati da Autorità di certificazione Root (CA) che dovrebbero essere attendibili pubblicamente. Nessuna autorità superiore può certificare i certificati di base: questi sono i certificati di primo livello. Puoi vedere esempi di quelli nel tuo browser, sotto la sezione Autorità di certificazione / CA.

Ecco alcune delle più popolari:

  • Equifax Secure CA,
  • Autorità di certificazione primaria pubblica di classe 3 di VeriSign,
  • Visa eCommerce Root,
  • Deutsche Telekom Root CA 2.

Autorità di certificazione Locale

L'autorità di certificazione locale (CA) verrà utilizzata per firmare i certificati utente. Il certificato CA locale può essere firmato da un'autorità di certificazione di livello superiore oppure essere autoscritta. Un certificato CA locale può essere creato all'interno dell'istanza LogicalDOC.

Attenzione

Anche se LogicalDOC può creare una CA locale per te, è destinato ad essere solo un certificato di esempio da utilizzare per il test di installazione iniziale e non dovrebbe essere utilizzato per la firma dei documenti di produzione.

 

Catene di Certificazione

Ora consideriamo le seguenti relazioni:

  • La firma del documento include => il certificato del firmatario (certificato utente).
  • Il certificato utente è stato firmato con => il certificato CA locale.
  • Il certificato CA locale è stato firmato da => un certificato CA di livello superiore.
  • Il certificato CA di livello superiore è stato firmato da => un certificato CA ancora più elevato (... e così via ... ... e poi, infine).
  • Un certificato CA di alto livello è stato firmato da => il certificato CA principale.
  • Il certificato CA principale chiude la catena che porta al certificato dell'utente.
  • Ora, invece di verificare tutti i certificati intermediari, è sufficiente che il tuo visualizzatore PDF abbia l'autorità di certificazione di root verificare per te, attraverso la sequenza di CA intermedie.

I certificati root sono di solito già presenti nei visualizzatori PDF e nei browser più diffusi e, se no, possono essere aggiornati automaticamente a condizione che il software sia stato impostato correttamente.

CA-Signing contro Self-Signing

Se il certificato CA locale è stato firmato da un'autorità di certificazione, gli utenti di solito non devono installare il certificato della propria azienda nei propri browser per verificare i documenti firmati.

D'altra parte, se la tua CA locale è stata auto-firmata, il certificato CA deve essere installato manualmente nel visualizzatore PDF prima di verificare le firme. Questo deve essere fatto solo una volta per programma di visualizzazione PDF.

Configurare il Key Store

LogicalDOC gestisce un Key Store Java per ogni tenant e lo usa per mantenere tutti i certificati.

Impostare un certificato Root Locale

Entra nella sezione Amministrazione > Impostazioni > Key Store

Qui metti:

  • l'alias per il certificato di root (diciamo root)
  • una password per proteggere l'intero portachiavi
  • informazioni sulla tua organizzazione

Controlla che i percorsi dei comandi esterni Keytool e OpenSSL siano corretti e premere il pulsante Generare nuovo Key Store.

Impostare un certificato CA da un'autorità di terze partiy

Per questa attività è necessario il seguente software:

  • keytool: il keytool viene fornito con l'installazione JDK (Java Development Kit).
  • openssl: Apri SSL

1. Crea un paio di chiavi (con alias root in questo esempio).

keytool -genkey -keyalg RSA -alias root -keypass password -validity 365 -keysize 1024 -dname "cn=PDF-CA, ou=Headquarters, o=Example Organization, c=US" -keystore pdfca-keystore.jks

Ciò crea un paio di chiavi(chiave privata e pubblica) e auto-firma automaticamente.

2. Crea una richiesta di firma del certificato (CSR).

keytool -keystore pdfca-keystore.jks -storepass aaaaaa -alias alternatekey -keypass password -certreq -file pdfca.csr

3. Invia il CSR ad una nota Autorità di certificazione di terze parti di tua scelta per firmarlo.

4. Quando si riceve il pdfca.crt certificato firmato, importarlo nella propria libreria utilizzando un nuovo alias (root in questo esempio).

keytool -import -trustcacerts -alias root -file pdfca.crt -keystore pdfca-keystore.jks

Attenzione

Seguire la guida fornita dalla CA per sapere esattamente  come installare i certificati in un Key Store Java

5. Ora è possibile importare l'archivio chiave facendo clic su Importa, inserire l'Alias CA locale nello stesso alias usato nel Key Store in modo che LogicalDOC possa trovare il tuo certificato

Personalizzazione

Facoltativamente puoi scegliere di avere la firma visibile come un timbro nel documento.

Se è selezionata l'opzione Visuale, il nome dell'utente che ha firmato il file verrà visualizzato nella prima pagina del documento e queste sono le impostazioni che è possibile definire per la firma:

  • Opacità: 100 significa completamente opaco, 0 significa completamente trasparente
  • Dimensione carattere: dimensione del carattere
  • Colore: colore del testo
  • Expr. X: espressione che definisce la coordinata orizzontale, è possibile utilizzare le variabili che verranno calcolate dinamicamente
  • Expr. Y: espressione che definisce la coordinata verticale, è possibile utilizzare le variabili che verranno calcolate dinamicamente
  • Larghezza: dimensione della firma

Variabili per Expr. X, Expr. Y e Larghezza

  • PAGE_WIDTH
  • PAGE_HEIGHT
  • PAGE_CENTER
  • PAGE_MIDDLE

Per fare riferimento a una variabile, basta inserire il segno del dollaro seguito dal nome della variabile, per centrare la firma si potrebbe scrivere così:

Expr. X: $PAGE_CENTER
Expr. Y: $PAGE_TOP + 5