Lavorare con le firme digitali

Una firma digitale è un’implementazione tecnologica delle firme elettroniche per firmare documenti e autenticare il firmatario per garantire che un documento non è stato modificato da quando è stato firmato. Ogni firma digitale è unica per ogni firmatore a causa del seguito del protocollo PKI per generare sia chiavi pubbliche che private. Segnare un documento significa creare una firma utilizzando la chiave privata del firmatario in cui viene utilizzato un algoritmo matematico per crittografare l’hash generato.

Aspose.Words consente di rilevare, contare o verificare le firme digitali esistenti, e aggiungere anche una nuova firma al documento per scoprire eventuali manomissioni in esso. È inoltre possibile rimuovere tutte le firme digitali da un documento. Utilizzare DigitalSignatureUtil classe per lavorare con firme digitali.

Questo articolo spiega come fare tutto quanto sopra per convalidare l’autenticità e l’integrità di un documento digitale.

Formati supportati

Aspose.Words consente di lavorare con le firme digitali sui documenti DOC, OOXML e ODT e di firmare il documento generato in PDF o XPS formato.

Limitazioni delle firme digitali

La tabella qui sotto descrive alcune limitazioni che si possono affrontare mentre si lavora con firme digitali attraverso Aspose.Words, così come alcune opzioni alternative.

Limitazioni Opzione alternativa
Perdita di firme digitali su un documento dopo il caricamento e il salvataggio. Pertanto, l’elaborazione di un documento a un server può causare la perdita di tutte le firme digitali senza preavviso Controllare se un documento ha firme digitali e prendere l’azione appropriata se si trovano. Ad esempio, inviare un avviso ai clienti informandoli che il documento che stanno caricando contiene firme digitali che verranno perse se viene elaborato
Aspose.Words supporta il lavoro con le macro in un documento. Ma Aspose.Words non supporta ancora le firme digitali sulle macro Esportare il documento in qualsiasi formato di Word e utilizzare Microsoft Word aggiungere una firma digitale alle macro

Rileva, conteggi e verifica firme digitali

Aspose.Words consente di rilevare la firma digitale in un documento utilizzando il DetectFileFormat metodo e HasDigitalSignature proprieta'. Vale la pena notare che tale controllo rileva solo il fatto della firma, ma non la sua validità.

Un documento può essere firmato più di una volta, e questo può essere fatto da diversi utenti. Per verificare la validità delle firme digitali, è necessario caricarle dal documento utilizzando il LoadSignatures metodo e utilizzare IsValid proprieta'. Anche Aspose.Words consente di contare un insieme di tutte le firme digitali all’interno di un documento utilizzando il Count proprieta'.

Tutto questo fornisce un modo efficiente e sicuro per controllare un documento per le firme prima di elaborarlo.

Il seguente esempio di codice mostra come rilevare la presenza delle firme digitali e verificarle:

Creare una firma digitale

Per creare una firma digitale, è necessario caricare un certificato di firma che conferma l’identità. Quando invii un documento firmato digitalmente, invii anche il tuo certificato e la chiave pubblica.

Aspose.Words consente di creare il certificato X.509, un certificato digitale che utilizza lo standard X.509 PKI riconosciuto a livello internazionale per verificare che una chiave pubblica appartiene al firmatario incluso all’interno del certificato. Per fare questo, usare il Create metodo all’interno del CertificateHolder classe.

Le sezioni successive spiegano come aggiungere una firma digitale, una linea di firma e come firmare un documento PDF generato.

Firma un documento

Aspose.Words consente di firmare un documento DOC, DOCX o ODT digitale utilizzando Sign metodo e SignOptions proprietà.

Il seguente esempio di codice mostra come firmare i documenti utilizzando un titolare del certificato e le opzioni di firma:

Aggiungi una linea di firma

Una linea di firma è una rappresentazione visiva di una firma digitale in un documento. Aspose.Words consente di inserire una linea firma utilizzando la DocumentBuilder.InsertSignatureLine metodo. È inoltre possibile impostare i parametri per questa rappresentazione utilizzando SignatureLineOptions classe.

Ad esempio, l’immagine qui sotto mostra come possono essere visualizzate firme valide e non valide.

valid-digital-signature invalid-digital-signature

Inoltre, se un documento contiene una linea di firma e nessuna firma digitale, c’è una funzione per chiedere all’utente di aggiungere una firma.

Il seguente esempio di codice mostra come firmare un documento con un certificato personale e una specifica riga di firma:

Firma un documento PDF Generato

Aspose.Words consente di firmare e ottenere tutti i dettagli di un documento PDF utilizzando PdfDigitalSignatureDetails proprietà.

Il seguente esempio di codice mostra come firmare un PDF generato:

L’immagine seguente dimostra che il documento PDF generato è aperto in Adobe Acrobat e la firma digitale è verificata come presente e valida.

create-digital-signed-pdf-aspose-words-java

Recuperare il valore della firma digitale

Aspose.Words fornisce anche la capacità di recuperare il valore della firma digitale da un documento firmato digitalmente come array byte utilizzando il SignatureValue proprieta'.

Il seguente esempio di codice mostra come ottenere il valore della firma digitale come array byte da un documento:

Rimuovere le firme digitali

Aspose.Words consente di rimuovere tutte le firme digitali da un documento firmato utilizzando il RemoveAllSignatures metodo.

Il seguente esempio di codice mostra come caricare e rimuovere le firme digitali da un documento: