Firma digitale PDF e P7M direttamente da PHP

archiviazione sostitutivaSKNT AllSign è l'utility per la firma digitale da PHP interamente sviluppata dal Team di SKNT per

  • la firma digitale di documenti PDF con o senza apposizione del marcatore temporale
  • la firma in formato p7m di qualsiasi documento

Il formato p7m è il formato PKCS7 valido per la firma digitale elettronica di documenti da utilizzare nei rapporti con la Pubblica Amministrazione.

SKNT AllSign può essere utilizzato:

  • direttamente da riga di comando
  • attraverso script
  • da PHP mediante la classe CSigner.php anche  attraverso applicazioni web

SKNT All Sign può prelevare i certificati di firma da smart card connesse direttamente al server di firma, su server remoti  o al client remoto.

Caratteristiche tecniche e funzionali

firma digitale da php con smart cardLa firma digitale da PHP con i prodotti della famiglia SKNT AllSign,  non è mai stata così semplice.

All Sign è una libreria/utility per la firma digitale sviluppata in Java, richiede che sia installato l'ambiente JAVA versione 1.6 o successiva.

Inoltre è compatibile con qualsiasi Sistema Operativo come, ad esempio, Windows, Linux e MacOS X.

Accetta certificati SSL X509 sia auto firmati che firmati da Autorità di Certificazione che divengono utilizzabili una volta esportati in formato PKCS12.

All Sign dispone di una classe OOP di incapsulamento PHP per la firma digitale che consente agli sviluppatori PHP di firmare e manipolare files di firma rimanendo nel proprio ambiente ed integrando la firma elettronica all'interno de propri prodotti.

La firma digitale con All Sign rende possibile utilizzare il token per la firma acquisendolo in uno qualsiasi dei seguenti modi:

  • Certificato locale (file, Smart Card, Token USB eccetera)
  • Smart Card PKCS11 per l'apposizione della firma digitale come, ad esempio, le Smart Card di Infocamere, collegata al SERVER
  • Smart Card PKCS11 collegata remotamente ad un client
  • Token USB locale (p.e. Aruba Key, Token USB)
  • Servizio online di firma digitale (è possibile richiedere l'elenco dei servizi di firma certificato da SKNT)
  • Certificato remoto del cliente (versione Bridge)

Versioni disponibili del prodotto

Sknt All Sign è il prodotto per la firma digitale in grado di risolvere qualsiasi problematica di firma per gli sviluppatori.

Le versioni disponibili sono le seguenti:

  • All Sign Standalone: consente di firmare digitalmente localmente su una qualsiasi workstation. Adatta al singolo utilizzatore
  • All Sign Server: consente di apporre firma digitale su un server cui sia connesso un token di firma, un provider di firma esterno, o ai client remoti dotati di apposita licenza
  • All Sign Client: consente di firmare su un server locale utilizzando un token (smart card o altro) connesso ad un client remoto. Ogni client remoto deve disporre di una licenza client valida
  • All Sign Bridge: in congiunzione con All Sign Server permette ad un server remoto (p.e. cloud) di firmare qualsiasi file prelevando il token da un server fisico remoto cui sia connesso il token (p.e. server remoto del cliente).

Le versioni Standalone, Server e Bridge consentono il passaggio programmatico del PIN senza richiedere OTP

Formati di uscita

Nel caso si tratti di un file in formato PDF è possibile eseguire la firma digitale del documento secondo lo standard del formato ADOBE.

In tale caso la firma è verificabile con un qualsiasi visualizzatore PDF come Adobe Reader.

E' possibile aggiungere firma elettronica in modo visibile ed invisibile, ed allegare al PDF una pagina di dettaglio riportante il sommario dei dati di firma (tipo nome azienda, motivo della firma ecc.).

Per qualsiasi file è possibile applicare la firma digitale in formato PKCS7, altresì noto come p7m:il formato della firma digitale approvato e riconosciuto dalla Legge Italiana per la trasmissione di documenti e per la conservazione sostitutiva.

SKNT AllSign supporta firme digitali multiple sul medesimo documento (firma , controfirma ecc.).

La validità della firma può essere verificata con qualsiasi software idoneo come, ad esempio, Dike.

Client Remoti

SKNT All Sign, consente di apporre firme digitali attraverso client remoti, sia su rete locale che connessi attraverso internet, che dispongono della propria smart card.

In questo modo è possibile apporre più firme digitali (ad esempio di uffici diversi) anche da sedi geografiche distanti e connesse attraverso internet.

Parametri accettati per la firma digitale di un PDF o di un qualsiasi file

SKNT AllSign accetta i seguenti parametri:

Parametri SKNT AllSign
-b <args> Blocco firma visibile  (yes o no - default no)
-c <args> Commento alla firma
-e <arg> Incorpora firma
-f <arg> Finalizza il documento (non potrà più essere ulteriormente firmato)
-i <arg> Percorso ad una eventuale immagine (png o jpg) contenente il logo fa inserire nella tabella riassuntiva di firma
-l <arg> Campo Location per la firma
-n <arg> Mostra la tabella riassuntiva di firma su una pagina che sarà aggiunta al PDF firmato
-o <arg> Percorso completo del file che rappresenterà il PDF firmato
-ownerpwd <arg> Eventuale password per leggere il documento da firmare (inserita direttamente sulla riga di comando)
-ownerpwdfile <arg> Eventuale percorso al file che contiene la password di lettura del PDF da firmare (il parametro -ownerpwd se presente  ha la precedenza)
-p <arg> Password per decrittare il certificato di firma
-pwdfile <arg> Percorso al file contenente la password  per decrittare il certificato di firma (il parametro -p se presente ha la precedenza)
-r <arg> Campo Reason del PDF firmato
-s <arg> Percorso al certificato PCKS12 da utilizzare per la firma
-t <arg> Percorso del file PDF che deve essere firmato
-tsa_url <arg> URL completa di http o https del TimeStamp server da utilizzare per la firma del PDF
-tsa_user Nome utente (se richiesto dal Server) per accedere al TimeServer
-tsa_password Password (se richiesta dal Server) per accedere al TimeServer

Come firmare un PDF da riga di comando

Il comando per firmare digitalmente un PDF da riga di comando è semplicissimo

java -jar PdfSign -s path_certificato -o miofile-firmato.pdf -t miofile-dafirmare.pdf -p password_certificato

Come firmare un file da PHP

Per la firma con PHP viene fornito un apposita classe che deve essere configurata con il percorso del certificato la password ed i dati dell'eventuale timeserver

Quindi il codice PHP di firma diventa:

$obj = new CPdfSign("miofile_dafirmare.pdf);

$obj->doSign("miofile-firmato.pdf');

Licenza

SKNT AllSign viene concesso in licenza in svariati modi:

Tipo Licenza Destinatario Dettagli licenza
A licenza singola workstation Sviluppatori / End User SKNT AllSign può essere utilizzato su di una singola installazione senza limiti ma non in ambito server
A licenza singola server intranet Sviluppatori/End User SKNT AllSign può essere utilizzato su di una singola installazione senza limiti  in ambito server all'interno di una intranet Aziendale
A licenza Server Internet Sviluppatori/End User SKNT AllSign può essere utilizzato su di un singolo server accessibile da Internet
A volume Sviluppatori / End User SKNT AllSign può essere utilizzato su di un numero di postazioni sino a  50-100 o illimitate
A popolazione Pubbliche Amministrazioni / Aziende SKNT AllSign può essere utilizzato per l'erogazione di servizi al pubblico

Cosa è compreso nella licenza?

Con ogni licenza si riceve:

  • il file .jar per eseguire la firma dei PDF  e di qualsiasi altro file con TimeStamp  completo di tutte le librerie
  • la classe CSKNTSign.php completa del codice sorgente per l'implementazione della firma PDF/P7M direttamente dall'interno di uno script o web application PHP
  • un file di testo contenente la documentazione
  • il supporto tecnico a mezzo email valido per 12 mesi dal momento dell'acquisto della licenza

La licenza ha la durata di 12 mesi con tacito rinnovo e comprende tutti gli aggiornamenti del prodotto ed il supporto tecnico da parte del Team di sviluppo.

Cosa occorre in aggiunta per utilizzare SKNT AllSign con i files PDF?

Per firmare digitalmente un file PDF occorre:

  • un certificato X509 convertito in PCKS12 auto firmato o firmato da una autorità di certificazione (istruzioni su come generare un certificato SSL auto firmato con OpenSSL ed il relativo file di verifica per i client incluse nella documentazione)
  • uno qualsiasi dei supporti contenenti il token (in caso di Smart Card occorrono anche le relative librerie crittografiche del lettore normalmente incorporate nel driver).
  • opzionalmente un account valido ad un servizio di certificazione temporale per l'apposizione del marcatore (la firma può essere apposta anche senza il marcatore temporale)

Per l'individuazione delle librerie crittografiche SKNT All Sign incorpora numerosi driver, in continuo aumento, mediante auto configurazione, lasciando comunque la possibilità di utilizzarne di diverse.

Esempio di utilizzo di SKNT AllSign

In questo screencast è possibile assistere all'apposizione di una firma digitale mediante l'utilizzo di AllSign all'interno del software di archiviazione documentale SKNT Optical

Informazioni e Personalizzazioni

Se ti occorrono più informazioni, un'offerta personalizzata per grandi volumi o l'introduzione di personalizzazioni di qualsiasi tipo, non esitare a contattare l'Ufficio commerciale.